SlideShare a Scribd company logo
三都物語でAmazon SWFと握手!
夏のJAWS-UG
三都物語 2014
• 片山 暁雄
• アマゾンデータサービスジャパン
• 部長/ソリューションアーキテクト
• 大阪府池田市出身
• Twitter
• @c9katayama
• #ヤマン
• 好きなAWSサービス
• Amazon SWF
自己紹介
本日のテーマ
Amazon Simple Workflow Service
(Amazon SWF)
エスダブルエフ/スウィフ
• Amazon SWFのメカニズム
• デモ
• まとめ
• Amazon SWFのメカニズム
• デモ
• まとめ
Amazon SWFとは
Amazon SWFは
• 「処理のステート管理」
• 「タスク間のコーディネート」
を行うためのフルマネージドサービス
いわゆる「承認を行うアプリ」ではない
Amazon SWFとは
Amazon SWFはシステム構築における以下の問題を解消
スケーラビリティ
アベイラビリティ
並列処理の制御
ネットワーク/FW越しの連携
例えば:動画の処理
ユーザーが動画
をアップロード
サムネイルの
作成
エンコード処理
(スマホ向け)
エンコード処理
(PC向け)
不正動画検出
サイト公開
元動画の保存
動画インデッ
クスの更新
メタデータ
埋め込み
ユーザー情報
の更新
例えば:動画の処理(アーキテクチャその1)
ユーザーが動画
をアップロード
サムネイルの
作成
エンコード処理
(スマホ向け)
エンコード処理
(PC向け)
不正動画検出
サイト公開
元動画の保存
動画インデッ
クスの更新
メタデータ
埋め込み
ユーザー情報
の更新
1つのアプリケーションで逐次処理を実装すれば、システ
ムとしての作りは簡単
ただし・・・
• 全体の処理が長くなる
• 性能向上はスケールアップしかない
• 途中でエラーになった場合にリカバリできない
動画の処理(アーキテクチャその1)
public static void main(String[] args) throws Exception {
AWSCredentials credentials = new PropertiesCredentials(
RemoveNonUsedSecurityGroup.class.getResourceAsStream("/AwsCredentials.prope
AmazonEC2Client ec2 = new AmazonEC2Client(credentials);
ec2.setRegion(Region.getRegion(Regions.SA_EAST_1));
DescribeInstancesResult result = ec2.describeInstances();
Set<String> idSet = new HashSet<String>();
for (Reservation reservation : result.getReservations()) {
for (Instance instance : reservation.getInstances()) {
for (GroupIdentifier sg : instance.getSecurityGroups()) {
idSet.add(sg.getGroupId());
}
}
}
DescribeSecurityGroupsResult describeSecurityGroupsResult =
ec2.describeSecurityGroups();
List<SecurityGroup> sgList = new ArrayList<SecurityGroup>();
for (SecurityGroup sg : describeSecurityGroupsResult.getSecurityGroups()) {
if (idSet.contains(sg.getGroupId()) == false) {
if (sg.getIpPermissions().size() > 0) {
for (IpPermission ip : sg.getIpPermissions()) {
for (UserIdGroupPair pair : ip.getUserIdGroupPairs()) {
pair.setGroupId(null);
}
}
try{
ec2.revokeSecurityGroupIngress(new RevokeSecurityGroupIngressRequest(
sg.getGroupName(), sg.getIpPermissions()));
}catch(Exception e){}
}
sgList.add(sg);
}
}
for (SecurityGroup sg : sgList) {
if (sg.getGroupName().equals("default") == false) {
ec2.deleteSecurityGroup(new DeleteSecurityGroupRequest()
例えば:動画の処理(アーキテクチャその2)
ユーザーが動画
をアップロード
サムネイルの
作成
エンコード処理
(スマホ向け)
エンコード処理
(PC向け)
不正動画検出
サイト公開
元動画の
保存
動画インデック
スの更新
メタデータ
埋め込み
ユーザー情報
の更新
キュー
各タスクを分割して、キューでつなぐ
• 途中でプロセスエラーになっても落ちても、プロセス復
帰後は直前のキューまで戻れる
• 各タスクを別のサーバに乗せることが可能
• スケールアウトと冗長化を実現
ただし・・・
• 全体の処理は長いまま
• 各タスクが、次のタスクを意識しないといけない
エンコード処理
(スマホ向け)
エンコード処理
(スマホ向け)
動画の処理(アーキテクチャその2)
EC2
EC2
例えば:動画の処理(アーキテクチャその3)
ユーザーが動画
をアップロード
サムネイルの
作成
エンコード処理
(スマホ向け)
エンコード処理
(PC向け)
不正動画検出
サイト公開
元動画の保存
動画インデック
スの更新
メタデータ
埋め込み
ユーザー情報の
更新
キュー
タスクの制御
「タスクの制御」処理を導入
• タスク実行の順序をこの処理に集めることで、タスク間を疎結合に
• この処理が状態管理をすることで、タスクの並列実行が可能に
• タスクの戻り値で次のタスクを変えたりできる
• 処理の履歴を記録できる
ただし・・・
• 状態管理や処理履歴記録など、複雑な実装が必要
• 「タスクの制御」処理自体がSPOFで、かつスケーラビリティに欠ける
動画の処理(アーキテクチャその3)
タスクの制御
例えば:動画の処理(アーキテクチャその4)
ユーザーが動画
をアップロード
サムネイルの
作成
エンコード処理
(スマホ向け)
エンコード処理
(PC向け)
不正動画検出
サイト公開
元動画の保存
動画インデック
スの更新
メタデータ
埋め込み
ユーザー情報の
更新
出来る奴
次のタスクを
決める
キュー
「タスクの制御」を分割する
• 「タスクの制御」のうちでめんどくさいものは「出来る奴」にやって
もらう
• 状態管理、次タスクへのキューイング、タスク終了の補足、実行履歴の
記録、エラーの補足、etc…
• やることを決める部分だけをステートレスに作る
動画の処理(アーキテクチャその4)
= Amazon SWF出来る奴
Amazon SWF = 出来る中間管理職
Amazon SWFの利点
データを3か所のアベイラビリティで保存
1つのタスクが1つのアプリケーションでしか処理されない
ことを保証
ワークフローは最大1年間継続、実行履歴は最大3か月間保
持
ポーリングベース
次のタスクを
決める
次のタスクを
決める
ユーザーが動画
をアップロード
次のタスクを
決める
各種タスク
ワークフロー
スターター
デサイダー
アクティビティ
デシジョン
タスクリスト
アクティビティ
タスクリスト
ポーリング
ポーリング
ドメイン
ワークフロー
エグゼキューション
ワークフロー
エグゼキューション
ワークフロー
エグゼキューション
SWF用語
ワークフロースターター
• ワークフローをキックするプログラム
• キックするたびに「ワークフローエグゼキューション」が作成される
ワークフローエグゼキューション
• ワークフローのインスタンス
• 各ワークフローエグゼキューションごとに以下のような情報を保持
• WorkflowID:ユーザー採番の任意ID
– 決済番号や請求書番号などを設定(重複時はエラー)
• RunID:自動生成IDされるユニークID
• ワークフローヒストリー:入出力情報含むタスクの実行履歴
• 開始時間
• タイムアウト設定
SWF用語
ドメイン
• この区分ごとに、ワークフローエグゼキューションやタスクリストが管理さ
れる
• プログラム言語でいう「ネームスペース」のような概念
タスクリスト
• デサイダー/アクティビティがポーリングをするためのキュー
• デサイダーとアクティビティごとにキューを設定
• タスクリストに入った1つのタスクは、1つのデサイダー/アクティビティし
か取得しないことを保証
• タスクリストは、ドメイン内で共有
• 異なるワークフロースターターから始まる処理にも利用可能
エンコード処理
画像タスク
タスクリスト=処理キュー
ユーザーが動画
をアップロード
動画タスク
ユーザー認証
ワークフロー
エグゼキューション
ワークフロー
エグゼキューション
ユーザーが画像
をアップロード
理
エンコード処理
課金ユーザー
無料ユーザー
共通処理
SWF用語
デサイダー
• 次のタスクを決めるタスク
• タスクリストをポーリングして、タスクがあった場合に、
次に実行するアクティビティを指定
アクティビティ
• ワークフロー内の個別のタスクの処理
• デサイダーと同様、タスクリストをポーリングするため、
オンプレミスや既存DCでの動作も可能
• 人手を介する処理でもOK
ここまでのまとめ
Amazon SWFは中間管理職
• デサイダーとアクティビティのコーディネート
• ステート管理
SWFのアーキテクチャでシステムを構築すると、以下の問題
が解決できる
スケーラビリティ
アベイラビリティ
並列処理の制御
ネットワーク/FW越しの連携
NASA JPL
火星
AWS
[JAWS-UG 三都物語 2014] 三都物語でAmazon SWFと握手!
AWS SDK
• Java, C#, Ruby, PHP, Python
Flow Framework
Java, Ruby
• Amazon SWFのメカニズム
• デモ
• まとめ
本日のデモは音系です
ド レ ミ ファ
ソ ラ シ
アクティビティ(鳴る奴)
デサイダー
(演奏する奴)
ド レ ミ ファ
ソ ラ シ
ド!ド!
はい
本日のデモは音系です
マイニングブラウニー 得上さん
@tottokug
“まだ一度も成功したことは無いけれど、
SWFでのオーケストラはもうやめて
2014年はKinesisでオーケストラに方向転換することに
しました。”
-かれ4ブログより-
デモ1
ド レ ミ ファ
ソ ラ シ
デモ2
ド レ ミ ファ ソ ラ シ
デモ3
ド
ミ
ソ
ラ
ド
ミ
ソ
シ
レ
ファ
ラ
シ
© 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified or distributed in whole or in part without the express consent of Amazon.com, Inc.
34
いざ本番
• Amazon SWFのメカニズム
• デモ
• まとめ
[JAWS-UG 三都物語 2014] 三都物語でAmazon SWFと握手!
詳しくは・・・
• AWS クラウドサービス活用資料集
• Googleで検索!
• AWS Black Belt Tech Webinar
– ほぼ毎週水曜18:00から
AWS Summit Tokyo 2014
• 2014年7月17日(木) 〜 18日(金)
• グランドプリンス新高輪 (国際館パミール)
• 来場無料 (要事前登録)
• http://www.awssummittokyo.com/
- 申し込み受付中!
• 登壇企業様多数
- すかいらーく様、HGST様、クオリカ様、 積水化学工業様、コー
セー様、良品計画様、SAPジャパン様、NTTデータ様、日通情報
システム様、NTTドコモ様、日立製作所様、丸紅様、ソニー銀行
様、他多数
AWS認定資格の大阪受験会場が開設!
• 中之島に受験会場を設立
• 以下の試験の受講が可能
– AWS 認定ソリューションアーキテクト – アソシエイト
– AWS 認定デベロッパー – アソシエイト
– AWS 認定システムオペレーション(SysOps)アドミニスト
レーター – アソシエイト
• http://aws.amazon.com/jp/certification/
関西のAWSソリューションアーキテクト募集中!
• 特にゲーム/ソーシャル/スタート
アップに興味のある方!
• 詳しくはお近くのソリューション
アーキテクトまで!
ありがとうございました

More Related Content

PPTX
XAML & XAML
PDF
JAWSUG Kansai Simple Workflow Service (SWF)
PDF
Prism + ReactiveProperty入門
PDF
Movable Type for AWS - JAWS-UG 沖縄 CMS祭り!
PPTX
Lt 20120901
PPTX
中小企業向けWindows Server OSの基本とTips
PPTX
serverless
PPTX
WebAssembly text format で画像処理を書くぞ
XAML & XAML
JAWSUG Kansai Simple Workflow Service (SWF)
Prism + ReactiveProperty入門
Movable Type for AWS - JAWS-UG 沖縄 CMS祭り!
Lt 20120901
中小企業向けWindows Server OSの基本とTips
serverless
WebAssembly text format で画像処理を書くぞ

What's hot (20)

PPTX
20120128
PDF
JAWS FESTA Tohoku 2014 WordPressとAWSの素敵な関係
PDF
まわいくどい更新情報機能
PDF
Sales Force Episode VI ~ Return of Ajax Toolkit ~
PDF
MT東京03 - Movable Type for AWS
PDF
ASP.NET シングル ページ アプリケーション (SPA) 詳説
KEY
確認スペシャル!
PDF
WordPress on movable type(WordCamp Kobe 2013)
PDF
Movable Type for AWS を用いた環境構築のポイント
PPTX
AWS EC2の自動リブート
PDF
AWS 初心者向けWebinar アマゾンウェブサービスをご検討時によくいただく質問集
PDF
Microsoft flow 勉強会資料 2019/09/01
PDF
SORACOM UG 九州 #9 LT
PDF
AWS EC2 making experience
PDF
20201017 JAWS-UG Fukuoka AWS Storage Gateway
PDF
AWS S3 making experience
PDF
densan2014-late01
PDF
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
PDF
第7回rest勉強会 バリデーション編
PPTX
MT DDC Tokyo テーマ編 - 森和恵
20120128
JAWS FESTA Tohoku 2014 WordPressとAWSの素敵な関係
まわいくどい更新情報機能
Sales Force Episode VI ~ Return of Ajax Toolkit ~
MT東京03 - Movable Type for AWS
ASP.NET シングル ページ アプリケーション (SPA) 詳説
確認スペシャル!
WordPress on movable type(WordCamp Kobe 2013)
Movable Type for AWS を用いた環境構築のポイント
AWS EC2の自動リブート
AWS 初心者向けWebinar アマゾンウェブサービスをご検討時によくいただく質問集
Microsoft flow 勉強会資料 2019/09/01
SORACOM UG 九州 #9 LT
AWS EC2 making experience
20201017 JAWS-UG Fukuoka AWS Storage Gateway
AWS S3 making experience
densan2014-late01
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
第7回rest勉強会 バリデーション編
MT DDC Tokyo テーマ編 - 森和恵
Ad

Similar to [JAWS-UG 三都物語 2014] 三都物語でAmazon SWFと握手! (20)

PDF
[AWSマイスターシリーズ]Amazon Simple Workflow Service (SWF)
PDF
Amazon Simple Workflow Service (SWF)
PDF
SWF
PPTX
Amazon SimpleWorkflowのご紹介
PPTX
Clrh 110827 wfho
PDF
20170726 black belt_stepfunctions
PPTX
Stream processing on AWS
PDF
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
PDF
AWS Black Belt Online Seminar 2017 AWS re:Invent 2017速報
PDF
Eight meets AWS
PDF
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
PDF
AWS初心者向けWebinar .NET開発者のためのAWS超入門
PPTX
Lt 110416
PDF
AWS Black Belt Online Seminar 2017 AWS WAF
PDF
スタートアップでのAWS(Amazon Web Services)活用事例
PDF
SWF+FlowFrameworkを使ってみた@JAWS-UG高尾山 2015.09.27
PDF
[AWS初心者向けWebinar] 利用者が実施するAWS上でのセキュリティ対策
PDF
AWS Black Belt Techシリーズ AWS Data Pipeline
PDF
[AWS Developers Meetup 2017] Developerのための ライブAWSウォークスルー 〜 AWS SDKの使い方 〜
PDF
いまさらながらの Windows Workflow 入門
[AWSマイスターシリーズ]Amazon Simple Workflow Service (SWF)
Amazon Simple Workflow Service (SWF)
SWF
Amazon SimpleWorkflowのご紹介
Clrh 110827 wfho
20170726 black belt_stepfunctions
Stream processing on AWS
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
AWS Black Belt Online Seminar 2017 AWS re:Invent 2017速報
Eight meets AWS
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
AWS初心者向けWebinar .NET開発者のためのAWS超入門
Lt 110416
AWS Black Belt Online Seminar 2017 AWS WAF
スタートアップでのAWS(Amazon Web Services)活用事例
SWF+FlowFrameworkを使ってみた@JAWS-UG高尾山 2015.09.27
[AWS初心者向けWebinar] 利用者が実施するAWS上でのセキュリティ対策
AWS Black Belt Techシリーズ AWS Data Pipeline
[AWS Developers Meetup 2017] Developerのための ライブAWSウォークスルー 〜 AWS SDKの使い方 〜
いまさらながらの Windows Workflow 入門
Ad

More from Akio Katayama (20)

PPTX
AWS Elastic BeanstalkとAWS Lambdaのご紹介
PPTX
SORACOMでのJava/AWS活用
PPTX
IAMでまもれ僕らのAWS(JAWS-UG 初心者支部)
PDF
3つのS3バケット
PDF
前座Lambda
PDF
AWS Mahjong
PDF
JAWS-UG名古屋 Lambda-LT
PDF
AWS Cloud Design Pattern for Enterprise
PPTX
あたらしいCloud Design Pattern
PDF
AWS re:Invent 2013 参加報告(新サービスとセッション)
PDF
AWS上で使えるストレージ十番勝負
PDF
AWSの共有責任モデル(shared responsibility model)
PPTX
PHP on Cloud
PDF
AWSマイスターシリーズReloaded(AWS Beanstalk)
PDF
CDP Night #1 静的コンテンツ配信編
PDF
AWSマイスターシリーズReloaded(AWS Cloudformation)
PDF
Aws meister-cloud formation-summit2012
PDF
Aws elastic beanstalk-handson-summit2012
PDF
AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -
PPTX
AWSマイスターシリーズ(Elastic Beanstalk)
AWS Elastic BeanstalkとAWS Lambdaのご紹介
SORACOMでのJava/AWS活用
IAMでまもれ僕らのAWS(JAWS-UG 初心者支部)
3つのS3バケット
前座Lambda
AWS Mahjong
JAWS-UG名古屋 Lambda-LT
AWS Cloud Design Pattern for Enterprise
あたらしいCloud Design Pattern
AWS re:Invent 2013 参加報告(新サービスとセッション)
AWS上で使えるストレージ十番勝負
AWSの共有責任モデル(shared responsibility model)
PHP on Cloud
AWSマイスターシリーズReloaded(AWS Beanstalk)
CDP Night #1 静的コンテンツ配信編
AWSマイスターシリーズReloaded(AWS Cloudformation)
Aws meister-cloud formation-summit2012
Aws elastic beanstalk-handson-summit2012
AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -
AWSマイスターシリーズ(Elastic Beanstalk)

[JAWS-UG 三都物語 2014] 三都物語でAmazon SWFと握手!