grosse Live-Events mit CloudFront HTTP-Streaming und Flash Media Server 4.5

Seit der Version 4.5 des Adobe Flash Media Servers (demnächst ohne Flash im Namen … nur noch Adobe Media Server) wird HTTP-Streaming für Live- und VOD-Szenarien für den Flash Player und iOS Devices unterstützt. Das Gute daran ist, das der Flash Media Server über entsprechende URL Aufrufe die vorhandenen VOD-Videodateien oder einen Live-Stream on-the-fly in das entsprechende HTTP-Streaming Format (HDS oder HLS) konvertiert und ausliefert. Seit neuestem unterstützt Amazon AWS CloudFront auch HTTP-Streaming, so dass sich hier nun die Frage stellt, wie viele concurrent User kann ich mit einem oder zwei Flash Media Server und vorgeschaltetem CloudFront bei z.B. einem Live-Szenario unterstützen, ohne das es zu einer Überforderung der zugrunde liegenden Flash Media Server kommt …

Ohne HTTP-Streaming mit dem klassischen RTMP-Streaming (Adobe eigenes proprietäres Streaming Protokoll) brauchte man für 30.000 bis 50.000 User eine ganze Serverfarm (ca. 40-50 Server) mit einem Origin-Edge-Server Konzept und einem RTMP-fähigen Load-Balancer …

Nach Rücksprache mit dem Amazon CloudFront- und dem Adobe Flash Media Server Team können nun mehrere 10K User mit einem, besser aber mit zwei Flash Media Servern und Amazon AWS CloudFront bedient werden, da die Manifest-Dateien und die darin referenzierten HTTP-Streaming Pakete sehr gut von CloudFront gecacht werden und nur sehr wenige HTTP-Requests zu den Flash Media Servern durchkommen.

Also für einen Live-Event mit 20.000 bis 50.000 Usern könnte folgendes Szenario vollkommen ausreichend sein …

  • Einspielen eines Live-Streams über den Flash Media Live Encoder direkt an zwei Flash Media Server (FMS-URL und Backup-URL definieren, dann werden zwei FMS Server angesteuert und mit einem Live-Stream bedient)
  • Aufsetzen von zwei Flash Media Serven als EC2-Instanzen (mindestens „large“)
  • Definition eines Load-Balancers, der die HTTP-Requests zwischen den beiden EC2-Instanzen aufteilt
  • Definition einer CloudFront Download-Distribution, die gegen den Load-Balancer konnektiert

Das müsste so prima funktionieren, nur getestet habe ich es noch nicht, da mir die 50.000 concurrent User fehlen …

6 thoughts on “grosse Live-Events mit CloudFront HTTP-Streaming und Flash Media Server 4.5

  1. Das heisst, ich kann mit diesem Setup mit einem oder zwei Large-Instancen mit FMS deutlich mehr als die 100 bzw. 200 Concurrent Users bedienen (Eine Large-FMS EC2 Instanz ist auf 100 User begrenzt)?
    Irgendwie finde ich da bei Amazon nichts, was die Frage wirklich beantwortet…

  2. Hallo Boris,
    diese Begrenzung die dort angegeben ist, bezieht sich nur auf das RTMFP Protokoll. Das braucht man nur, wenn man ein P2P Netzwerk auf Basis von UDP aufbaut … solange man nur RTMP- und HTTP-Streaming macht, ist das lizenztechnisch unbegrenzt, allerdings gibt es da die Begrenzung der Bandbreite der EC2-Netzwerkkarte …

    • Ach, alles klar. Das beantwortet meine Frage. Vielen Dank für die Hilfe. Ich war das etwas verwirrt… Das Setup mit FMS und CloudFront tönt sehr spannend für meine Bedürfnisse. Werde das bald mal testen…

  3. Danke für den Denkanstoss. Leider funktioniert das nicht out-of-the box weil Amazon aus welchen Gründen auch immer es leider nicht erlaubt einen LB vor paid-AMIs zu hängen. Mit einer weiteren kleinen Apache (proxypass) Schicht ist das aber lösbar.
    Also Client->Cloudfront->Loadbalancer->Apache ProxyPass->FMS
    Getestet und für gut befunden.

    • Oder halt von uns eine FMS Lizenz kaufen und die nehmen. Ich finde diese Adobe Paid-AMIs auch nicht so dolle …

      • Für unseren Use-Case sind die paid-AMIs wunderbar.
        pay-as-you-go ist ein schönes Konzept wenn man nur alle zwei-drei Monate mal ein event streamt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.