Amazon Simple Workflow Service (Beta)

Amazon Simple Workflow Service (Amazon SWF) ist ein Workflow-Service zum Erstellen skalierbarer, ausfallsicherer Anwendungen. Ganz gleich, ob es um Geschäftsprozesse für Anwendungen aus dem Finanz- oder Versicherungswesen, das Erstellen anspruchsvoller Datenanalyseanwendungen oder die Verwaltung von Cloud-Infrastruktur-Services geht – Amazon SWF koordiniert zuverlässig alle Verarbeitungsschritte in einer Anwendung.

Bei traditionellen Entwicklungsansätzen ist es sowohl zeitaufwendig als auch kostenintensiv, Verarbeitungsschritte, die zu verschiedenen Zeiten ausgeführt werden und unterschiedlich lange dauern, zu erstellen und nachzuhalten und dabei gleichzeitig sicherzustellen, dass sie zuverlässig und ohne Duplikate ablaufen. Wenn die Ausführung von Anwendungen über mehrere Systeme verteilt ist, stellt die Koordination der Verarbeitungsschritte über diese Systeme hinweg eine zusätzliche Herausforderung dar. Mit Amazon SWF können Entwickler die verschiedenen Verarbeitungsschritte in einer Anwendung als "Tasks" strukturieren, die die Arbeit in verteilten Anwendungen steuern, und Amazon SWF koordiniert diese Tasks in einer zuverlässigen und skalierbaren Weise. Amazon SWF verwaltet Abhängigkeiten, Zeitplanung und Gleichzeitigkeit der Task-Ausführung basierend auf der Anwendungslogik des Entwicklers. Der Service speichert Tasks, sendet diese zuverlässig an die Anwendungskomponenten, hält deren Fortschritt nach und speichert ihren jeweiligen Status.

Amazon SWF ist ein vollständig verwalteter Service, ohne Hardware oder Software, die verwaltet, skaliert, optimiert, gepatcht oder aktualisiert werden muss. Amazon SWF stellt einfache API-Aufrufe bereit, die von Code ausgeführt werden können, der in einer beliebigen Sprache geschrieben sein und sich in Ihren EC2-Instanzen oder auf beliebigen Computern mit Internetzugang an jedem Ort der Welt befinden kann. Unternehmensinterne Computer brauchen lediglich eine Internetverbindung herzustellen, um Tasks von den SWF-APIs anzufordern. Es sind keine Änderungen an Firewall-Regeln erforderlich. Über die AWS Management Console ist eine detaillierte Berichterstattung über den aktuellen Status und den Ausführungsverlauf Ihrer Workflows verfügbar.

Im Blog-Beitrag von Werner Vogels, CTO von Amazon, über Amazon SWF finden Sie Informationen dazu, wie Sie mithilfe von Amazon SWF in Ihren Anwendungen verteilte und asynchrone Verarbeitung nutzen können.
Kostenfreie erste Schritte mit
AWS

Das kostenlose Kontingent für AWS umfasst 10 000 Aktivitäten, 30 000 Workflow-Tage und 1 000 ausgelöste Workflow-Ausführungen in Amazon Simple Workflow (SWF).

Details zum kostenlosen Kontingent für AWS anzeigen »

Amazon SWF – Übersicht

Abbildung: Amazon SWF – Übersicht


Introduction to Amazon SWF
Das AWS Flow Framework


Diese Seite enthält folgende Informationskategorien. Klicken Sie auf den Link, um zu dem Thema zu gelangen:

Amazon SWF – Funktionalität

Die Verwendung von Amazon SWF zum Verwalten von Workflows in Ihrer Anwendung ist einfach. Der Amazon SWF-Service dient als Koordinierungs-Hub für alle verschiedenen Komponenten Ihrer Anwendung:

  • Verwalten des Anwendungsstatus
  • Nachhalten von Workflow-Ausführungen und Protokollieren des jeweiligen Fortschritts
  • Bereithalten und Senden von Tasks
  • Steuern, welche Tasks den Anwendungs-Hosts zur Ausführung zugewiesen werden
So können Sie Amazon SWF nutzen:
  • Mit der AWS Management Console oder den Amazon SWF-APIs legen Sie die Namen von Workflows fest.
  • Mit den Amazon SWF-APIs "starten" Sie einen neuen Workflow, was dazu führt, dass eine bestimmte Folge von Workflow-Tasks, eine so genannte "Workflow-Ausführung", aktiviert wird.
  • Sie verwenden die Amazon SWF-APIs von Ihren Worker-Computern aus (ein "Worker" ist eine Komponente Ihrer Anwendung, die bestimmte Tasks verarbeitet), um die Task-Reihenfolge festzulegen, bedingte Arbeitsabläufe zu verwalten und Schleifen für eine Workflow-Ausführung auszuführen.
  • Sie verwenden die Amazon SWF-APIs von Ihren Worker-Computern aus, um Workflow-Tasks in der Cloud oder auf unternehmensinternen Computern anzufordern und auszuführen.
  • Sie überwachen Status und Fortschritt der Workflow-Ausführungen und der zugehörigen Tasks in der AWS Management Console.
Der Beispielrundgang in der AWS Management Console führt Sie durch die Schritte zum Registrieren und Ausführen einer Beispielanwendung. In der Dokumentation finden Sie weitere Einzelheiten zum Amazon SWF-Service und den APIs.

Servicemerkmale

Einfach – Amazon SWF ersetzt komplexe individuell kodierte Workflow-Lösungen und Prozessautomatisierungssoftware durch einen vollständig verwalteten Web-Service. Dadurch entfällt für die Entwickler die Notwendigkeit, die Infrastrukturinstallationen der Prozessautomatisierung zu verwalten, und sie können ihre Energie in die einzigartige Funktionalität ihrer Anwendung investieren.

Skalierbar – Amazon SWF lässt sich nahtlos skalieren und an die Nutzung Ihrer Anwendung anpassen. Es ist keine manuelle Verwaltung des Workflow-Services erforderlich, wenn Sie weitere Workflows zur Anwendung hinzufügen oder die Komplexität Ihrer Workflows erhöhen.

Flexibel – Mit Amazon SWF können Sie die Anwendungskomponenten und Koordinierungslogik in jeder beliebigen Programmiersprache erstellen und wahlweise in der Cloud oder auf unternehmensinternen Computern ausführen.


Preise

Zahlen Sie nur für das, was Sie auch tatsächlich nutzen. Es gibt keine Mindestgebühr. Kalkulieren Sie Ihre voraussichtliche Monatsrechnung mit dem einfachen Monatsrechner.

Kostenloses Nutzungskontingent*

Als Teil des kostenlosen Nutzungskontingents von AWS macht Amazon SWF jeden Monat neuen und vorhandenen Kunden folgendes Angebot:

  • 1.000 Workflow-Ausführungen können kostenlos gestartet werden
  • 10.000 Tasks, Timer, Signale und Marker können insgesamt ohne weitere Kosten verwendet werden
  • 30.000 Workflow-Tage können ohne weitere Kosten genutzt werden. Ein Workflow-Tag bezieht sich auf jeden 24-Stunden-Zeitraum, während dem eine Ausführung entweder geöffnet oder in Amazon SWF aufbewahrt wird.
Ein kostenloses Nutzungskontingent für die Datenübertragung ist im Rahmen des kostenlosen Nutzungskontingents von AWS verfügbar**

Workflow-Ausführungen

Ein Workflow ist eine Reihe von Tasks, die in einer bestimmten Reihenfolge ausgeführt werden (manchmal mit einer Reihe bedingter Arbeitsabläufe oder Schleifen). Immer wenn ein Workflow ausgeführt wird, wird dies als eindeutige Workflow-Ausführung betrachtet. Sie zahlen für Workflow-Ausführungen, sobald sie gestartet werden (also sobald die erste Task für Anwendungs-Hosts zum Ausführen verfügbar wird) und für jeden 24-Stunden-Zeitraum, bis sie abgeschlossen sind. Die ersten 24 Stunden der Workflow-Ausführung sind kostenlos.

Tasks, Marker, Timer und Signale

Bis zum Abschluss einer Workflow-Ausführung führen Ihre Worker oder Client-Computer zusätzliche Tasks aus. Sie können zudem "Marker" (benutzerdefinierte Protokolleinträge für Workflow-Ausführungen) hinzufügen, Timer starten oder Signale empfangen. Für alle diese Elemente zahlen Sie:

Alle Gebühren werden täglich aufgezeichnet und monatlich in Rechnung gestellt.

Datenübertragung**

Die Bezeichnungen "eingehende" und "ausgehende" Datenübertragung beziehen sich auf die Datenübertragung innerhalb von Amazon SWF. Datenübertragungen zwischen Amazon SWF und anderen AWS-Services innerhalb einer einzigen Region (z. B. Amazon EC2, bei dem Worker und Entscheider bereitgestellt werden dürfen) sind kostenlos (d. h. die Gebühr beträgt 0,00 USD pro GB). Datenübertragungen zwischen Amazon SWF und anderen AWS-Services in verschiedenen Regionen werden auf beiden Seiten der Übertragung zu den Tarifen der Internet-Datenübertragung berechnet.

* Ihr kostenloses Kontingent wird jeden Monat berechnet und automatisch in die Rechnung einbezogen – kostenlose Kontingente können nicht akkumuliert werden.

** Im Rahmen des kostenlosen Nutzungskontingents für AWS erhalten AWS-Kunden für ein Jahr kostenfrei 15 GB ausgehenden Datenverkehr pro Monat, zusammengefasst für alle AWS-Services.

*** Die Kosten für ausgehende Datenübertragung beinhalten die ausgehenden Datenübertragungen auf Amazon EC2, Amazon S3, Amazon RDS, Amazon SimpleDB, Amazon DynamoDB, Amazon SWF, Amazon SQS, Amazon SNS, AWS Storage Gateway und Amazon VPC.

Beispielkostenkalkulation

Zur Veranschaulichung der Amazon SWF-Preisgestaltung nehmen wir als Beispiel eine einfache Videoverarbeitungsanwendung mit drei Tasks: Herunterladen, Verschlüsseln und Speichern des verschlüsselten Videos in Amazon S3. Diese Anwendung wird genutzt, um 10.000 Videos zu verschlüsseln. Jedes umfasst eine eindeutige Workflow-Ausführung. Die Worker und Entscheider in dieser Anwendung werden alle unter Amazon EC2 in derselben Region wie Amazon SWF ausgeführt. Die für die Ausführung von 10.000 Workflow-Ausführungen entstehenden täglichen Kosten belaufen sich auf 1,75 USD und setzen sich wie folgt zusammen:

  • 1,00 USD für den Start von 10.000 Workflow-Ausführungen (10.000 mal 0,0001 USD)
  • 0,75 USD für die Initiierung von Tasks (0,000025 USD pro Task mal 3 Tasks pro Workflow-Ausführung mal 10.000 Workflow-Ausführungen)
  • Wir nehmen an, ein Video kann in weniger als 24 Stunden verschlüsselt und in S3 hochgeladen werden. Daher wird die Workflow-Ausführung innerhalb von 24 Stunden nach dem Start abgeschlossen und es fallen keine weiteren Gebühren für die Workflow-Ausführung an.

Nehmen wir an, Sie möchten, dass Amazon SWF Daten über die Verschlüsselungs-Workflow-Ausführungen bis zu 7 Tage nach deren Abschluss aufbewahrt. Die Kosten für die Aufbewahrung von Daten der Workflow-Ausführungen betragen 0,35 USD (0,000005 USD pro Tag pro Ausführung mal 7 Workflow-Tage lang Aufbewahrung mal 10.000 Workflow-Ausführungen).

Insgesamt betragen die Amazon SWF-Kosten für die Koordination der Verschlüsselung und des Hochladens von 10.000 Videos und zum Aufbewahren der Daten zu den entsprechenden Workflow-Ausführungen und die Verarbeitungsschritte für 7 Tage: 2,10 USD (1,75 USD zum Ausführen der Workflow-Ausführungen + 0,35 USD für die Aufbewahrung der zugehörigen Daten).


Detaillierte Beschreibung

Amazon SWF ist ein vollständig verwalteter Workflow-Service zum Erstellen skalierbarer, ausfallsicherer Anwendungen. Amazon SWF stellt einfache API-Aufrufe bereit, die von Code ausgeführt werden können, der in einer beliebigen Sprache geschrieben sein und sich in Ihren EC2-Instanzen oder auf beliebigen Computern mit Internetzugang an jedem Ort der Welt befinden kann.

Amazon SWF dient als Koordinierungs-Hub mit dem Ihre Anwendungs-Hosts interagieren. Sie erstellen die gewünschten Workflows mit den zugehörigen Tasks und sämtlicher Bedingungslogik, die Sie anwenden möchten, und speichern sie in Amazon SWF. Jede einzelne Ausführung eines Workflows wird als eigene Workflow-Ausführung behandelt. Sie programmieren Ihre Anwendungskomponenten so, dass sie verschiedene Tasks anfordern, die in Ihrer Workflow-Ausführung ablaufen sollen, und Amazon SWF koordiniert die Erledigung dieser Tasks, und zwar in der angegebenen Reihenfolge und auf Ihren Hosts (ganz gleich, ob diese Hosts sich in der Cloud oder im Unternehmen befinden). Anwendungen kommunizieren mit Amazon SWF über APIs, um Erfolg oder Misserfolg der einzelnen Tasks zu erfassen. Amazon SWF setzt dann entweder die Folge der Tasks fort, indem es einem Anwendungs-Host die nächste Workflow-Task zuweist oder indem es eine fehlgeschlagene Task entsprechend Ihrer Geschäftslogik erneut ausführt.

Zum Starten einer Amazon SWF-Workflow-Ausführung melden Sie sich bei der AWS Management Console an. Alternativ dazu können Sie eine Workflow-Ausführung auch über Ihre Amazon SWF-APIs starten. Amazon SWF verwendet eine benutzerfreundliche und äußerst flexible Web-Service-Oberfläche:

  • StartWorkflowExecution: Startet eine Folge von Workflow-Tasks und stellt die erste Task für einen Ihrer Anwendungs-Hosts bereit.
  • DescribeWorkflowExecution: Gibt den Status Ihrer Workflow-Ausführungen und -Tasks an.
  • PollForActivityTask: Ihre Anwendungs-Hosts (in der Cloud oder im Unternehmen) fordern ununterbrochen Workflow-Tasks an und führen diese aus.
  • RespondActivityTaskCompleted: Ein Anwendungs-Host teilt Amazon SWF mit, dass er eine Task erfolgreich abgeschlossen hat. Amazon SWF setzt die Workflow-Ausführung daraufhin fort, indem die nächste Task für einen Anwendungs-Host verfügbar gemacht wird.
  • TerminateWorkflowExecution: Beendet die Fortsetzung einer bestimmten Workflow-Ausführung. Amazon SWF weist dem Anwendungs-Host keine Tasks dieser speziellen Workflow-Ausführung mehr zu.

Erste Schritte

Um einen umfassenden Einblick in Amazon SWF zu erhalten, lesen Sie die Dokumentation. Mit der Funktion Beispielrundgang starten in der AWS Management Console können Sie einen Beispiel-Workflow starten, der die grundlegenden Konzepte von Amazon SWF verdeutlicht.


Vorgesehene Verwendung und Einschränkungen

Die Nutzung dieses Service unterliegt der Kundenvereinbarung von Amazon Web Services.

©2013, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.