20120303 jaws summit-meister-06_sns-sqs

48
AWSマイスターシリーズ SQS, SNS, SWF (#jawsug #マイスター) 2012年03月03日 大谷 晋平 (@shot6 ) ソリューションアーキテクト

Upload: amazon-web-services-japan

Post on 05-Dec-2014

1.298 views

Category:

Documents


2 download

DESCRIPTION

2012.3.3 JAWS SUMMIT 2012 マイスターリターンズにて紹介された資料です。

TRANSCRIPT

Page 1: 20120303 jaws summit-meister-06_sns-sqs

AWSマイスターシリーズ SQS, SNS, SWF (#jawsug #マイスター)

2012年03月03日

大谷 晋平 (@shot6 ) ソリューションアーキテクト

Page 2: 20120303 jaws summit-meister-06_sns-sqs

AWSマイスターシリーズ ~Simple Queue Service~

2012年03月03日

大谷 晋平 (@shot6 ) ソリューションアーキテクト

Page 3: 20120303 jaws summit-meister-06_sns-sqs

アジェンダ

SQSとは

SQSの機能

SQSの使いどころ

Q&A

Page 4: 20120303 jaws summit-meister-06_sns-sqs

SQS(Simple Queue Service)とは

AWSの隠し技

Page 5: 20120303 jaws summit-meister-06_sns-sqs

SQS(Simple Queue Service)とは

分散キューサービス AWSをスケールアウトして使うためのキーコ

ンポーネント

最低一度は届くことを保証

信頼性が高く、すぐに使えて、管理者不要、低コスト

2006年よりある最古参サービス

Page 6: 20120303 jaws summit-meister-06_sns-sqs

何故キューが必要か?

“分割できないものは、スケール出来ない” by Randy Shoup(eBay) スケールするには疎結合なアーキテクチャに

する必要がある

疎結合アーキテクチャに非同期通信が不可欠

非同期通信の典型例がキューシステム

Page 7: 20120303 jaws summit-meister-06_sns-sqs

SQSの機能

“分散”キューサービス

最低一度のメッセージ到達保障

シンプルなAPI

キューシステムのインストール不要、SDKから直接使える

Page 8: 20120303 jaws summit-meister-06_sns-sqs

分散キューサービス

メッセージは自動的に複数DC間でレプリケーションされる

メッセージロストを防ぐ

Persistent Message

自分で高い耐障害性を持つキューシステムを構築するのは困難

Page 9: 20120303 jaws summit-meister-06_sns-sqs

シンプルなAPIとSDK

CreateQueue

SendMessage

ReceiveMessage

ChangeMessageVisibility

DeleteMessage

バッチ処理

SDKはJava/.NET/PHP/Ruby

Page 10: 20120303 jaws summit-meister-06_sns-sqs

動作イメージ

1.キューの作成/4.キューの削除 (http://sqs.ap-northeast-1.amazonaws.com/123456789012/queue2)

管理者

メッセージ送信者 (Writer or Producer)

2.メッセージ送信

メッセージ受信者 (Reader or Consumer)

3.メッセージ受信

Page 11: 20120303 jaws summit-meister-06_sns-sqs

メッセージの到達保障

1.キューの作成/4.キューの削除 (http://sqs.ap-northeast-1.amazonaws.com/123456789012/queue2)

管理者

2.メッセージ送信 3.メッセージ受信

Visibility Timeout

Page 12: 20120303 jaws summit-meister-06_sns-sqs

Visibility Timeoutとは

Readerがメッセージを受信した場合に、ある一定期間その他のReaderがメッセージは見えなくなる

メッセージ自体はユーザが明示的に消さない限り残存する(最大2週間)

Page 13: 20120303 jaws summit-meister-06_sns-sqs

Visibility Timeoutとは(2) あるReader-Aが メッセージ1を依頼

あるReader-Dが メッセージ1を依頼

あるReader-Bが 依頼

あるReader-Cが 依頼

メッセージは 返却されない

メッセージは 返却されない

メッセージの返却 削除されていない場合 (メッセージの 返却)

この間にReader-Aは、 ・受信したメッセージを処理する ・処理出来たらメッセージを削除する

Page 14: 20120303 jaws summit-meister-06_sns-sqs

最低一度のメッセージ到達保障

At-Least-Once delivery

メッセージは複数DCにコピー

堅牢性・耐障害性にフォーカス

デメリット:稀に複数回メッセージが届くこともある

メッセージの状態管理

複数回届く前提

Page 15: 20120303 jaws summit-meister-06_sns-sqs

メッセージサンプリング

メッセージは送信後すぐに取れるとは限らない

受信リクエストを送り続ければ取れる

イベンチュアルコンシステンシ前提

サンプリングしたサーバからメッセージを順次返却 (メッセージEが含まれていない)

メッセージの受信者

SQSキューの分散されたサーバ群

サンプリング対象サーバ (グレー)

Page 16: 20120303 jaws summit-meister-06_sns-sqs

開発者に優しい無料枠と価格

月間100,000 requestまで無料

価格

10,000リクエストあたり$0.01

データトランスファーはAWSから外部に送出する場合に限り、$0.201/GBから課金

Page 17: 20120303 jaws summit-meister-06_sns-sqs

SQSのキューのセキュリティ

IAMまたはポリシーベースでユーザとアクションを制限する事が可能

{ "Statement":[{ "Effect":"Allow", "Action":"sqs:SendMessage", "Resource":"arn:aws:sqs:*:123456789012:SampleQueue" } , { "Effect":"Deny", "NotAction":"sqs:SendMessage", "NotResource":"arn:aws:sqs:*:123456789012:SampleQueue" } ] }

Page 18: 20120303 jaws summit-meister-06_sns-sqs

SQSの制約

メッセージの順序性は保証しない

メッセージの保存は最大2週間まで

メッセージのサイズは64KBまで

キュー内に入るメッセージ数には制限なし

キュー名は80文字まで

Page 19: 20120303 jaws summit-meister-06_sns-sqs

最近のSQS機能追加

CloudWatchによるメトリクス監視

AutoScalingと組み合わせやすく

マネージメントコンソールから利用可能に

ディレイキュー

メッセージタイマー

バッチAPI

Page 20: 20120303 jaws summit-meister-06_sns-sqs

SQSをいつ使うか?

AWSクラウド内での疎結合アーキテクチャを採用したい場合

コンポーネント間の依存関係を減らしたい

AWSクラウドとオンプレミスの間でのやり取りのインタフェース

受諾と処理→結果の送信の分離

Page 21: 20120303 jaws summit-meister-06_sns-sqs

顧客はいつSQSを使っているか?

Webアプリケーション/SaaS

ビッグデータや バッチ処理

ハイブリッド クラウド連携

オンプレミスとAWSクラウド連携

EMRやAWSクラウドの その他サービスとの連携に利用

イメージ処理、インデクシング等のシステム間の疎結合なやり取りに利用

Page 22: 20120303 jaws summit-meister-06_sns-sqs

SQSまとめ

AWSが提供するキューサービス

最低一度は届くことを保証

分散キューのためスケールする

高い耐障害性

シンプルにすぐに使える

セキュア

低コスト

Page 23: 20120303 jaws summit-meister-06_sns-sqs

AWSマイスターシリーズ ~Simple Notification Service~

2012年03月03日

大谷 晋平 (@shot6 ) ソリューションアーキテクト

Page 24: 20120303 jaws summit-meister-06_sns-sqs

アジェンダ

SNSとは

SNSの機能

SNSの使いどころ

Q&A

Page 25: 20120303 jaws summit-meister-06_sns-sqs

SNS(Simple Notification Service)とは

AWSの小道具

Page 26: 20120303 jaws summit-meister-06_sns-sqs

SNSとは

クラウド上の通知サービス

簡単に使えて、マルチプロトコル

従量課金制で非常に安い

インストール・管理不要ですぐに使える

Page 27: 20120303 jaws summit-meister-06_sns-sqs

SNSの機能

様々なプロトコルに対応した通知プラットフォーム

メール、SQSキュー、HTTP/HTTPSコールバック、SMS

シンプルなAPI/SDK

プッシュベースアーキテクチャ

非常に低価格

Page 28: 20120303 jaws summit-meister-06_sns-sqs

動作イメージ

1.トピックの作成/5.トピックの削除 管理者

メッセージ配信者 (Publisher)

3.メッセージ配信

メッセージ購読者 (Subscriber)

2.トピック購読

4.メッセージ受信

Page 29: 20120303 jaws summit-meister-06_sns-sqs
Page 30: 20120303 jaws summit-meister-06_sns-sqs
Page 31: 20120303 jaws summit-meister-06_sns-sqs
Page 32: 20120303 jaws summit-meister-06_sns-sqs

利用用途

様々なプロトコルを通じたアプリケーション間のフックに使う

AWSクラウド上のアプリケーション S3

ファイル

SNS

完了通知依頼

ジョブ 完了通知&ジョブ実行

Page 33: 20120303 jaws summit-meister-06_sns-sqs

利用用途

S3上からファイルが削除されたときをフック

AWSクラウド上のアプリケーション S3

SNS

削除通知依頼

削除されたことを通知

ユーザが削除

Page 34: 20120303 jaws summit-meister-06_sns-sqs

SQSとSNSの違い

SQSはポーリングモデル

1:1コミュニケーション

Producer-Consumer

SNSはプッシュモデル

1:Nコミュニケーション

Publisher-Subscriber

Page 35: 20120303 jaws summit-meister-06_sns-sqs

開発者に優しい無料枠と価格

月間100,000 requestまで無料

価格

100,000リクエストあたり$0.06

HTTPは100,000あたり$0.06

メールは100,000通あたり$2.0

100SMSあたり、$0.75

SQSにはチャージなし

Page 36: 20120303 jaws summit-meister-06_sns-sqs

SNSの制約

最大1アカウント100トピックまで

メッセージは最大8KBまで

Page 37: 20120303 jaws summit-meister-06_sns-sqs

SNSまとめ

クラウド上の通知サービス

簡単に使えて、マルチプロトコル

従量課金制で非常に安い

インストール・管理不要ですぐに使える

Page 38: 20120303 jaws summit-meister-06_sns-sqs

AWSマイスターシリーズ ~Simple Workflow Service~

2012年03月03日

大谷 晋平 (@shot6 ) ソリューションアーキテクト

Page 39: 20120303 jaws summit-meister-06_sns-sqs

アジェンダ

SWFとは

SWFの機能

Page 40: 20120303 jaws summit-meister-06_sns-sqs

SWFとは

Page 41: 20120303 jaws summit-meister-06_sns-sqs

SWFとは

AWSマエストロ

http://ja.wikipedia.org/wiki/%E6%8C%87%E6%8F%AE%E8%80%85

Page 42: 20120303 jaws summit-meister-06_sns-sqs

SWFとは

Page 43: 20120303 jaws summit-meister-06_sns-sqs

AWS/オンプレミスを使った連携を自動化

Page 44: 20120303 jaws summit-meister-06_sns-sqs

ワークフローの階層構造も可能

Page 45: 20120303 jaws summit-meister-06_sns-sqs

Flow Framework

Javaで出来たSWFを使うためのワークフローフレームワーク

DSLを実装していて、APTでコードを自動生成→コンパイル

サンプルも豊富

Page 46: 20120303 jaws summit-meister-06_sns-sqs

SWFまとめ

AWS上のコンポーネント、オンプレミス問わずオーケストレーションするサービス

分散処理をもっと手軽に、もっとやりやすく

Flow Framework

Page 47: 20120303 jaws summit-meister-06_sns-sqs

SQS、SNS、SWFを通じて

AWS SシリーズはAWSクラウドをよりよく使うためのコンポーネント

SQS=疎結合を提供する

SNS=プロトコル非依存な通知

SWF=分散処理オーケストレーション

Page 48: 20120303 jaws summit-meister-06_sns-sqs

ありがとう ございました

Copyright © 2011 Amazon Web Services