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