18
Amazon Simple Workflow アアアア アアア アアアア アアアア アアアア アアアアアアアアアアアアア アア アア

Amazon SimpleWorkflowのご紹介

Embed Size (px)

DESCRIPTION

デモのソースコードはhttps://github.com/c9katayama/AWSSampleAndDemoにあります。

Citation preview

Page 1: Amazon SimpleWorkflowのご紹介

Amazon Simple Workflow

アマゾン データ サービス ジャパン 株式会社 ソリューションアーキテクト

片山 暁雄

Page 2: Amazon SimpleWorkflowのご紹介

Amazon Simple Workflow(SWF)

SWF

利用者

AWS 上でワークフローを実現するための実行基盤 ワークフローの管理、実行タスクの管理、タスク間のルーティング、実

行履歴・状態管理は AWS 側( SWF) が担当 タスク処理の実装と、ワークフローの登録は利用者が実施

Page 3: Amazon SimpleWorkflowのご紹介

利用例

• 動画や音声のエンコーディング• 人気 E コマースサイト• バッチ処理• 途中で人手が入るワークフローらないと進まないような処理

• NASA

Page 4: Amazon SimpleWorkflowのご紹介

構成イメージ

ワークフロー

ワークフロー

アクティビティ

アクティビティ

アクティビティ

アクティビティ

アクティビティ

ドメイン

請求処理 001

請求処理 002

ワークフローエグゼキューション

実体化

Page 5: Amazon SimpleWorkflowのご紹介

用語• ドメイン

– トップレベルの論理区分。この中にワークフローやアクティビティがこの区分単位で管理される

• ワークフロー– 実行する処理の一連の流れを定義する単位

• ワークフローエグゼキューション– ワークフローをインスタンス化したもの。各エグゼキューショ

ンに任意の ID と自動生成 ID が付与される– 例えば任意の ID は、請求書番号などを採番– 実行履歴(ワークフローヒストリー)を保持

• アクティビティ– 論理的な処理の定義。ワークフローの各アクティビティごとに

タスクが発生し、紐づくワーカーが処理を行う

Page 6: Amazon SimpleWorkflowのご紹介

構成イメージ

ワークフロー

ワークフロー

アクティビティ

アクティビティ

アクティビティ

アクティビティ

アクティビティ

ドメイン

請求処理 001

請求処理 002

ワークフローエグゼキューション

実体化

ワークフロースターター

アクティビティワーカー /デサイダー

Page 7: Amazon SimpleWorkflowのご紹介

ワークフロースターター

アクティビティワーカー /デサイダー

Page 8: Amazon SimpleWorkflowのご紹介

用語(アクター編)

• ワークフロースターター– ワークフローを開始するアクター– 例えば申し込みを受け付ける Web サーバや、定期処理を行う

cron サーバ• アクティビティワーカー

– アクティビティごとに発生するタスクを実際に処理するアクター– 例えば画像変換処理や、 S3 へアップロード / ダウンロードする

処理• デサイダー

– アクティビティ間で動作する、処理のルーティングを決めるアクター

– 状況に応じて、次のアクティビティを変える

アクターとは、ワークフロー内で実際に動作するコンピューター処理のことアクターとは、SWFの外側で実際に処理を行うコンピューター処理のこと

Page 9: Amazon SimpleWorkflowのご紹介

アクティビティの中から別のワークフローをキック可能

Page 10: Amazon SimpleWorkflowのご紹介

ポイント• ワーカー・デサイダーは SWF のタスクをポーリングして取得

– ワーカーは EC2 でなくてもよい– ポーリングなのでファイヤーウォールを超えやすい

• ワークフロースターター、ワーカー・デサイダーは好きな言語、好きなシステムで実装可能– 指定の API でタスクを取得して結果を正しく返せば OK

Page 11: Amazon SimpleWorkflowのご紹介

費用

• 1ワークフロー実行ごとに $0.0001• 1ワークフロー実行の実行時間、 24 時間

ごとに $0.000005– ただし 24 時間まで無料

• 完了した1ワークフローの実行履歴を残すのに、 1 日当たり $0.000005

Page 12: Amazon SimpleWorkflowのご紹介

AWS Flow Framework

Page 13: Amazon SimpleWorkflowのご紹介

AWS Flow Framework

• ワークフローの定義とワーカー処理を実装するためのフレームワーク

• 言語: Java• アノテーションと APT を使用して、ポーリング

処理やエラー処理、分岐処理を実装から隠蔽• Junit 連動のテストツール

– ローカルでワークフローのテストが可能

Page 14: Amazon SimpleWorkflowのご紹介

NASAの例

Page 15: Amazon SimpleWorkflowのご紹介

デモ

Page 16: Amazon SimpleWorkflowのご紹介

SWF

AmazonSES

Elastic Beanstalk

Page 17: Amazon SimpleWorkflowのご紹介

まとめ

• SWF はワークフローを管理するための冗長化された基盤を提供します。

• 開発者はワークフローの状態管理を気にすることなく、各アクティビティの処理実装に注力できます。

• Flow Framework を使用すると、ワークフロー定義や分岐・ジョイント処理が容易に記述できます。

Page 18: Amazon SimpleWorkflowのご紹介