Einführung
In diesem letzten Versuch sollen Transcoding und CDN automatisiert werden. Sobald eine Quelldatei hinzugefügt wird, soll diese in die passenden Formate transcodiert werden und zum Akamai CDN hinzugefügt werden. Währenddessen sollen Statusmeldungen per E-Mail verschickt werden.
Der gesamte Worflow ist in folgendem Flowchart dargestellt:
Wird eine Datei in den Ordner ingest
hochgeladen, wird die erste Lambda-Funktion ausgelöst. Diese erstellt einen Transcoding-Auftrag und übergibt diesen an MediaConvert. Ist der Auftrag abgeschickt, soll außerdem die Statusmeldung "Auftrag erstellt" per Mail versendet werden.
Wird eine fertig transcodierte Datei zum Export
-Ordner hinzugefügt, soll eine zweite Lambda-Funktion ausgelöst werden. Diese läd die generierten Dateien via ftp zum Akamai Origin Server hoch.
Grundbegriffe
AWS Lambda
AWS Lambda ist eine Plattform, auf der anhand eines Auslösers Funktionen in verschiedenen Programmiersprachen ausgeführt werden können. Dafür ist kein Servermanagement nötig und nur die Zeit der Berechnung wird in Rechnung gestellt.
Die in Lambda erstellten Funktionen können anhand eines Auslösers ausgeführt werden und mit den richtigen Berechtigungen auf andere AWS Ressourcen zugreifen. In diesem Versuch bildet Lambda das Rückgrat der Automatisierung des Prozesses. Wird eine neue Datei im S3 Speicher abgelegt, wird dadurch eine Lambda-Funktion ausgelöst, die einen Transcoding-Auftrag erstellt und startet.
Kosten
Wie bei vielen anderen Services steigen die Kosten, je mehr die Services genutzt werden. Da Funktionen in Lambda im Normalfall keine großen Berechnungen ausführen, werden erst ab mehrerer Millionen Ausführungen pro Monat Kosten signifikant. Achtet man jedoch nicht darauf, wie oft ein Auslöser eine Funktion anstößt, können die Kosten im industriellen Umfeld schnell steigen.
AWS SNS
Über den AWS Simple Notification Service, kurz SNS, können Nachrichten von Applikation zu Applikation oder von Applikation zu Nutzer verteilt werden. SNS funktioniert über ein Pub/Sub-System, bei dem Nachrichten von einem Ersteller in einem Themen-Kanal veröffentlicht werden können (Publish) und Empfänger die Nachrichten empfangen, solange sie den entsprechenden Themen-Kanal abonniert haben (Subscribe).
Die Zustellung von einem Service zu Nutzern geschieht wahlweise über SMS- oder Push-Nachrichten, sowie via E-Mail. SNS ist nicht für z.B. Newsletter gedacht, sondern für interne Kommunikation.
Kosten
Wie auch bei Labda fallen erst Kosten ab 1 Millionen Anfragen an. Diese können in einem industriellen Umfeld anfallen, werden aber in diesem Versuch nicht ansatzweise erreicht.