amazon simpleworkflowのご紹介
DESCRIPTION
デモのソースコードはhttps://github.com/c9katayama/AWSSampleAndDemoにあります。TRANSCRIPT
![Page 1: Amazon SimpleWorkflowのご紹介](https://reader035.vdocuments.mx/reader035/viewer/2022081519/5561513ad8b42aa20d8b4ede/html5/thumbnails/1.jpg)
Amazon Simple Workflow
アマゾン データ サービス ジャパン 株式会社 ソリューションアーキテクト
片山 暁雄
![Page 2: Amazon SimpleWorkflowのご紹介](https://reader035.vdocuments.mx/reader035/viewer/2022081519/5561513ad8b42aa20d8b4ede/html5/thumbnails/2.jpg)
Amazon Simple Workflow(SWF)
SWF
利用者
AWS 上でワークフローを実現するための実行基盤 ワークフローの管理、実行タスクの管理、タスク間のルーティング、実
行履歴・状態管理は AWS 側( SWF) が担当 タスク処理の実装と、ワークフローの登録は利用者が実施
![Page 3: Amazon SimpleWorkflowのご紹介](https://reader035.vdocuments.mx/reader035/viewer/2022081519/5561513ad8b42aa20d8b4ede/html5/thumbnails/3.jpg)
利用例
• 動画や音声のエンコーディング• 人気 E コマースサイト• バッチ処理• 途中で人手が入るワークフローらないと進まないような処理
• NASA
![Page 4: Amazon SimpleWorkflowのご紹介](https://reader035.vdocuments.mx/reader035/viewer/2022081519/5561513ad8b42aa20d8b4ede/html5/thumbnails/4.jpg)
構成イメージ
ワークフロー
ワークフロー
アクティビティ
アクティビティ
アクティビティ
アクティビティ
アクティビティ
ドメイン
請求処理 001
請求処理 002
ワークフローエグゼキューション
実体化
![Page 5: Amazon SimpleWorkflowのご紹介](https://reader035.vdocuments.mx/reader035/viewer/2022081519/5561513ad8b42aa20d8b4ede/html5/thumbnails/5.jpg)
用語• ドメイン
– トップレベルの論理区分。この中にワークフローやアクティビティがこの区分単位で管理される
• ワークフロー– 実行する処理の一連の流れを定義する単位
• ワークフローエグゼキューション– ワークフローをインスタンス化したもの。各エグゼキューショ
ンに任意の ID と自動生成 ID が付与される– 例えば任意の ID は、請求書番号などを採番– 実行履歴(ワークフローヒストリー)を保持
• アクティビティ– 論理的な処理の定義。ワークフローの各アクティビティごとに
タスクが発生し、紐づくワーカーが処理を行う
![Page 6: Amazon SimpleWorkflowのご紹介](https://reader035.vdocuments.mx/reader035/viewer/2022081519/5561513ad8b42aa20d8b4ede/html5/thumbnails/6.jpg)
構成イメージ
ワークフロー
ワークフロー
アクティビティ
アクティビティ
アクティビティ
アクティビティ
アクティビティ
ドメイン
請求処理 001
請求処理 002
ワークフローエグゼキューション
実体化
ワークフロースターター
アクティビティワーカー /デサイダー
![Page 7: Amazon SimpleWorkflowのご紹介](https://reader035.vdocuments.mx/reader035/viewer/2022081519/5561513ad8b42aa20d8b4ede/html5/thumbnails/7.jpg)
ワークフロースターター
アクティビティワーカー /デサイダー
![Page 8: Amazon SimpleWorkflowのご紹介](https://reader035.vdocuments.mx/reader035/viewer/2022081519/5561513ad8b42aa20d8b4ede/html5/thumbnails/8.jpg)
用語(アクター編)
• ワークフロースターター– ワークフローを開始するアクター– 例えば申し込みを受け付ける Web サーバや、定期処理を行う
cron サーバ• アクティビティワーカー
– アクティビティごとに発生するタスクを実際に処理するアクター– 例えば画像変換処理や、 S3 へアップロード / ダウンロードする
処理• デサイダー
– アクティビティ間で動作する、処理のルーティングを決めるアクター
– 状況に応じて、次のアクティビティを変える
アクターとは、ワークフロー内で実際に動作するコンピューター処理のことアクターとは、SWFの外側で実際に処理を行うコンピューター処理のこと
![Page 9: Amazon SimpleWorkflowのご紹介](https://reader035.vdocuments.mx/reader035/viewer/2022081519/5561513ad8b42aa20d8b4ede/html5/thumbnails/9.jpg)
アクティビティの中から別のワークフローをキック可能
![Page 10: Amazon SimpleWorkflowのご紹介](https://reader035.vdocuments.mx/reader035/viewer/2022081519/5561513ad8b42aa20d8b4ede/html5/thumbnails/10.jpg)
ポイント• ワーカー・デサイダーは SWF のタスクをポーリングして取得
– ワーカーは EC2 でなくてもよい– ポーリングなのでファイヤーウォールを超えやすい
• ワークフロースターター、ワーカー・デサイダーは好きな言語、好きなシステムで実装可能– 指定の API でタスクを取得して結果を正しく返せば OK
![Page 11: Amazon SimpleWorkflowのご紹介](https://reader035.vdocuments.mx/reader035/viewer/2022081519/5561513ad8b42aa20d8b4ede/html5/thumbnails/11.jpg)
費用
• 1ワークフロー実行ごとに $0.0001• 1ワークフロー実行の実行時間、 24 時間
ごとに $0.000005– ただし 24 時間まで無料
• 完了した1ワークフローの実行履歴を残すのに、 1 日当たり $0.000005
![Page 12: Amazon SimpleWorkflowのご紹介](https://reader035.vdocuments.mx/reader035/viewer/2022081519/5561513ad8b42aa20d8b4ede/html5/thumbnails/12.jpg)
AWS Flow Framework
![Page 13: Amazon SimpleWorkflowのご紹介](https://reader035.vdocuments.mx/reader035/viewer/2022081519/5561513ad8b42aa20d8b4ede/html5/thumbnails/13.jpg)
AWS Flow Framework
• ワークフローの定義とワーカー処理を実装するためのフレームワーク
• 言語: Java• アノテーションと APT を使用して、ポーリング
処理やエラー処理、分岐処理を実装から隠蔽• Junit 連動のテストツール
– ローカルでワークフローのテストが可能
![Page 14: Amazon SimpleWorkflowのご紹介](https://reader035.vdocuments.mx/reader035/viewer/2022081519/5561513ad8b42aa20d8b4ede/html5/thumbnails/14.jpg)
NASAの例
![Page 15: Amazon SimpleWorkflowのご紹介](https://reader035.vdocuments.mx/reader035/viewer/2022081519/5561513ad8b42aa20d8b4ede/html5/thumbnails/15.jpg)
デモ
![Page 16: Amazon SimpleWorkflowのご紹介](https://reader035.vdocuments.mx/reader035/viewer/2022081519/5561513ad8b42aa20d8b4ede/html5/thumbnails/16.jpg)
SWF
AmazonSES
Elastic Beanstalk
![Page 17: Amazon SimpleWorkflowのご紹介](https://reader035.vdocuments.mx/reader035/viewer/2022081519/5561513ad8b42aa20d8b4ede/html5/thumbnails/17.jpg)
まとめ
• SWF はワークフローを管理するための冗長化された基盤を提供します。
• 開発者はワークフローの状態管理を気にすることなく、各アクティビティの処理実装に注力できます。
• Flow Framework を使用すると、ワークフロー定義や分岐・ジョイント処理が容易に記述できます。
![Page 18: Amazon SimpleWorkflowのご紹介](https://reader035.vdocuments.mx/reader035/viewer/2022081519/5561513ad8b42aa20d8b4ede/html5/thumbnails/18.jpg)