Submit Search
[AWSマイスターシリーズ] Amazon SQS / SNS
•
71 likes
•
55,657 views
Amazon Web Services Japan
Follow
1 of 61
Download now
Downloaded 216 times
More Related Content
[AWSマイスターシリーズ] Amazon SQS / SNS
1.
re:G ene AWS マイスターシリーズ Amazon
SQS / SNS rate アマゾン データサービス ジャパン株式会社 ソリューションアーキテクト ⼋八⽊木橋 徹平 篠原 英治 ⾈舟崎 健治 © 2012 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.
2.
Agenda ! Amazon
SQSとは • SQSの動作イメージ • SQSの機能の詳細 ! Amazon SNSとは • SNSの動作イメージ • SNS Mobile Push ! SQS/SNSを使った構成例例 ! まとめ ! Appendix 2 © 2012 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.
3.
そもそもメッセージキューとは? ! サーバ間、プロセス間、スレッド間での通信に使われる ソフトウェアコンポーネント •
⾮非同期型通信を提供 メッセージ キュー 送信者 3 ・送信側と受信側がメッセージキュー に同時にやりとりしなくても良い ・受信側がメッセージを取り出すまで 格納されたまま 受信者 © 2012 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.
4.
Introduction ! 「分割できないものは、スケールできない」
by Randy Shoup (eBay) • スケールするには疎結合なアーキテクチャにする必要がある • 疎結合アーキテクチャには⾮非同期処理理が不不可⽋欠 • ⾮非同期処理理の典型例例がキューシステム ! ⾃自分で⾼高い耐障害性を持つキューシステムを作るのは困難 4 © 2012 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.
5.
Amazon SQSとは 5 © 2012
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.
6.
Amazon SQS (Simple Queue
Service)とは ! 分散マネージドキュー ! ⾼高い信頼性とスケーラブルなキュー 送信者 Queue 受信者 受信者 6 © 2012 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.
7.
SQSの動作イメージ ! メッセージの送信 メッセージ 送信者 1リクエストあたり 約20ms 7 © 2012
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.
8.
SQSの動作イメージ ! メッセージの受信 メッセージ 送信者 メッセージ 受信者 8 © 2012
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.
9.
SQSの動作イメージ ! 受信したメッセージの内容を元にタスク 実⾏行行 メッセージ 送信者 メッセージ 受信者 9 © 2012
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.
10.
SQSの動作イメージ ! タスクが無事完了了したら、キューの中に ある該当メッセージを削除 メッセージ 送信者 メッセージ 受信者 10 © 2012
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.
11.
SQSの動作イメージ ! メッセージ送信 メッセージ 受信者 メッセージ 送信者 メッセージ 受信者 メッセージ 受信者 11 © 2012
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.
12.
SQSの動作イメージ ! メッセージ受信 メッセージ 受信者 メッセージ 送信者 メッセージ 受信者 メッセージ 受信者 12 © 2012
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.
13.
SQSの動作イメージ ! タスク実⾏行行 •
受信後デフォルト30秒間は他の受信者 は受信できない(Visibility Timeout 機能) メッセージ 送信者 Inflightメッセージ (=Visibility Timeoutによっ て他から見えない状態の メッセージ) メッセージ 受信者 メッセージ 受信者 メッセージ 受信者 13 © 2012 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.
14.
SQSの動作イメージ ! メッセージ削除 メッセージ 受信者 メッセージ 送信者 メッセージ 受信者 メッセージ 受信者 14 © 2012
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.
15.
SQSの動作イメージ ! 削除をしなければ、30秒経過後、再度度 1名のみ受信可能になる メッセージ 送信者 メッセージ 受信者 メッセージ 受信者 メッセージ 受信者 15 ©
2012 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.
16.
SQSの動作イメージ ! 複数の送信者 A メッセージ 受信者 B C メッセージ 受信者 メッセージ 送信者 メッセージ 受信者 16 ©
2012 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.
17.
SQSの動作イメージ ! 複数の送信者 メッセージ 受信者 A
C B メッセージ 受信者 メッセージ 送信者 メッセージ 受信者 17 © 2012 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.
18.
SQSの動作イメージ ! 複数の受信者 C メッセージ 受信者 A B メッセージ 送信者 メッセージ 受信者 順番は保障しない メッセージ 受信者 18 ©
2012 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.
19.
SQSの動作イメージ ! 1度度に最⼤大10通送信可能 x
10 メッセージ 受信者 x 10 x 10 メッセージ 受信者 メッセージ 送信者 メッセージ 受信者 19 © 2012 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.
20.
SQSの動作イメージ ! 1度度に最⼤大10通受信可能 x
10 メッセージ 受信者 x 10 メッセージ x 10 受信者 メッセージ 送信者 メッセージ 受信者 20 © 2012 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.
21.
! ! ! ! ! SQSの特⻑⾧長 ⾼高速 信頼性が⾼高い 低コスト 分散マネージドキュー スケーラビリティに優れている • 複数の送信者と受信者に対応 • メッセージが増加しても速度度劣劣化しない !
削除されなければ、メッセージはデフォルトで4⽇日間保持 される。保持期間を60秒から14⽇日の間で変更更可能 ! 1つのキューごとに最⼤大120,000通のInflightメッセージ を保持。120,000通を超えるとOverLimitエラーとなる。 ! 最⼤大メッセージサイズ: 256KB ! アクセスコントロールが可能 21 © 2012 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.
22.
SQS利利⽤用上の注意点 ! 最低1度度のメッセージ到達を保障 •
2度度以上同じメッセージを受信することがある 何回同じメッセージを受信しても同じ結果になるように実装する ! メッセージの順序は保障しない • 後に送ったメッセージが先に受信されることがある 受信順序が違っても同じ結果になるように実装する 22 © 2012 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.
23.
SQSの機能の詳細 23 © 2012 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.
24.
SQS Long Polling機能 !
メッセージが有効になるまで待つことが出来る機能 • タイムアウトがなければ、ReceiveMessageコールにより、最 低1つ、または1コールで取得可能な最⼤大数のメッセージを取得 可能(メッセージが存在する場合) ! 空もしくは取得失敗のレスポンスを削減可能 ! ReceiveMessageコールのWaitTimeSecondsの値を変 更更することでPolling可能 • 0〜~20秒の間 24 © 2012 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.
25.
Long PollingとShort Pollingの 使い分けについて !
多くの場合は、Long Pollingを推奨 • 複数のキューを使う場合は、マルチスレッドでPollingする Polling処理 スレッド1 Polling処理 スレッド2 ! Short Pollingを使う必要がある場合 • RecieveMessage呼び出し後直ちに応答が必要な場合 • (例例)複数のキューを単⼀一スレッドポーリングする場合、Long Pollingタイムアウトするまで待機するため、処理理が遅れてしまう。 Polling処理 Polling処理 スレッド1 25 © 2012 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.
26.
SQS Delay Queue機能 !
キューに送られた新しいメッセージをある⼀一定秒の間⾒見見 えなくすることが可能 • 0〜~900秒に設定可能 • 設定すると、そのキューに送信されるメッセージ全てに適⽤用 • Visibility Timeoutとは異異なる 26 © 2012 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.
27.
SQS Message Timers機能 !
個々のメッセージが送信されてから⾒見見えるようになるま での時間を設定可能 • デフォルトは0秒。すぐ⾒見見えるようになる • キュー全体ではなく、メッセージ単体に適⽤用 • Message TimersがDelay Queueの遅延時間の設定を上書きす る メッセージが見える ようになる時間 Send Message Request Message Timers 60秒 Delay Queue 30秒 27 © 2012 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.
28.
SQS Dead Letter
Queue機能 ! キューから指定回数受信後に⾃自動で別のDead Letter Queueにメッセージが移動される機能 • デフォルトは無効 • 事前に作成したキューをDead Letter Queueとして指定する • ずっと未処理理メッセージが残り続ける状況を回避するのに有効 キュー ④メッセージが 指定回数受信 後に移動 ①メッセージ受信 ②タスク失敗 ③メッセージ削除されずに キューに残り続ける Dead Letter Queue 28 © 2012 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.
29.
SQS Batch API
actions ! 1コールで最⼤大10リクエスト処理理が可能 • SendMessageBatch • DeleteMessageBatch • ChangeMessageVisibilityBatch ! 通常メッセージ1通あたり256KBまで送信可能 • 注意:SendMessageBatchシングルコールで送れるメッセージ の合計サイズも256KBまで。 29 © 2012 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.
30.
Client-‐‑‒side BufferingおよびRequest Batching !
Client-‐‑‒sideバッファが可能 • AmazonSQSBufferedAsyncClient ! 以下のリクエストをバッチに纏めることが可能 • SendMessage • DeleteMessage • ChangeMessageVisibility ! 10リクエストまでバッファ可能 ! Batchリクエストとして送信するため、SQSへのリクエ スト数を削減し、コスト削減が可能 30 © 2012 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.
31.
SQSのスケーリング ! SQSキューは⾼高いスループットを提供できる •
秒間数千メッセージ ! ⾼高いスループットを出す⽅方法 • Batch APIにより1度度に10メッセージを処理理する • 多くのメッセージ送信者と受信者を配置可能 • AWSSDK for Javaではデフォルト50コネクション • 以下のようにMaxConnectionsの値を変更更する AmazonSQS sqsClient = new AmazonSQSClient(credentials, new ClientConfiguration().withMaxConnections( producerCount + cousumerCount)); 31 © 2012 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.
32.
SQSのアクセスコントロール ! キューへのアクセスコント ロールが可能。以下その例例 アクセスコントロール設定例(JSON形式) { "Version":"2012-11-05", "Id":"cd3ad3d9-2776-4ef1-a904-4c229d1642ee", "Statement"
: [ { "Sid":"1", "Effect":"Allow", "Principal" : { "aws": "111122223333" }, "Action":["sqs:SendMessage","sqs:ReceiveMessage"], "Resource": "arn:aws:sqs:us-east-1:444455556666:queue2", "Condition" : { "IpAddress" : { "aws:SourceIp":"10.52.176.0/24" }, "DateLessThan" : { "aws:CurrentTime":"2009-06-30T12:00Z" } } } ] • 他のAWSアカウントに SendMessageのみ許可 • 特定の時間のみアクセス許可 • 特定のAWSアカウントのア クセスを拒否 • EC2インスタンスからのアク セスのみ許可 32 } © 2012 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.
33.
Amazon CloudWatchを使ったSQS監視 !
以下のメトリックスを利利⽤用可能 NumberOfMessageSent キューに追加されたメッセージ数 SentMessageSize キューに追加されたメッセージの合計サイズ NumberOfMessageReceived ReceiveMessageコールによって返されたメッセージ数 NumberOfEmptyReceives ReceiveMessageによって返さなかったメッセージ数 NumberOfMessagesDeleted キューから削除されたメッセージ数 ApproximateNumberOfMessage Delayed Delayされすぐに読み込みができなかったメッセージ数。 Delay Queueまたはメッセージ送信時のDelay設定によ るもの ApproximateNumberOfMessage Visible キューから利用可能になったメッセージ数 ApproximateNumberOfMessage NotVisible クライアントから送信されたが削除されていないか、 visibility winodwのendまで到達していないメッセージ数 33 © 2012 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.
SQS Best Practice(1) !
1度度のリクエストで複数のメッセージを送信または受信 する⽅方が速い • 最⼤大10通まで ! 1つのキューに対する送信者または受信者は複数⽴立立てた ⽅方が全体の処理理速度度が向上する ! 複数のキューにLong Pollingするときには、キューごと に1スレッドを使う • 最⼤大20秒まで待つことができる 34 © 2012 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.
35.
SQS Best Practice(2) !
何度度も同じメッセージを受信しても同じ結果になるよう に受信者側を実装する • SQSは最低1度度のメッセージ到達を保証 ! メッセージの受信順序が違ってても同じ結果になるよう に受信側を実装する • SQSはメッセージの順序を保証しない ! メッセージ受信側でPolling処理理を継続して実⾏行行するよう な仕組みの実装が必要 • (例例)supervisordを使えば、複数プロセスで定期的にpolling ができ、かつ、プロセスが落落ちても⾃自動で⽴立立ち上げてくれる 35 © 2012 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.
36.
SQSのメッセージにどんなデータを含めれ ば良良いのか? ! 例例 • • • • ジョブID イベントID ファイルパス URI !
⼤大きなメッセージはS3に保存、SQSにはそのポインター を載せる 36 © 2012 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.
37.
SQSの価格 ! 無料料利利⽤用枠 •
既にご利利⽤用中、初めてご利利⽤用かに関わらず、毎⽉月キューイングリクエスト100 万件まで無料料 ! SQSリクエスト100万件につき0.50 USD • 1件あたり0.0000005 USD • 複数のメッセージを1つのリクエストとしてバッチ送信する場合も、単⼀一メッ セージの時と同じ ! データ転送 • 受信(イン):0 USD • 送信(アウト): • • • • • • • 37 最初の1GB/⽉月 :0 USD 10TBまで /⽉月 :0.201 USD GBあたり 次の40TBまで /⽉月 :0.158 USD GBあたり 次の100TBまで /⽉月 :0.137 USD GBあたり 次の350TBまで /⽉月 :0.127 USD GBあたり 350TBを越える場合の価格はお問い合わせください 同⼀一リージョン内のSQSとEC2インスタンスのデータ転送は無料料 © 2012 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.
38.
Amazon SNSとは 38 © 2012
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.
39.
Simple Notification Service !
柔軟で⾼高速なフルマネージドメッセージングサービス ! マルチプロトコルで簡単にメッセージを通知 ! 安価な従量量課⾦金金制 2. マルチプロトコルで通知 1.Topicに メッセージを送信 HTTP(S) Amazon SNS EMAIL Publish Publisher Topic SQS Mobile Push Subscriber 39 © 2012 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.
40.
Amazon SNSの価格 !
無料料利利⽤用枠 • • • • モバイルプッシュ通知: 100万件 Email/Email-‐‑‒JSON: 1,000件 HTTP/HTTPS: 100,000件 Simple Queue Service(SQS): 無料料 • • • • モバイルプッシュ通知: 100万件あたり0.5 USD Email/Email-‐‑‒JSON: 100,000件あたり2 USD HTTP/HTTPS: 100万件あたり0.6 USD Simple Queue Service(SQS): 無料料 • • 受信(イン):0 USD 送信(アウト): ! SNSリクエスト単価(64 KB のチャンクごとに 1 リクエストとして課⾦金金) ! データ転送 • • • • • • • 最初の1GB/⽉月 :0 USD 10TBまで /⽉月 :0.201 USD GBあたり 次の40TBまで /⽉月 :0.158 USD GBあたり 次の100TBまで /⽉月 :0.137 USD GBあたり 次の350TBまで /⽉月 :0.127 USD GBあたり 350TBを越える場合の価格はお問い合わせください 同⼀一リージョン内のSNSとEC2インスタンスのデータ転送は無料料 40 © 2012 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.
41.
Amazon SNSの特徴 !
AWSの様々なサービスと連携して通知可能 • 利利⽤用例例 CloudWatch 設定したしきい値を超えた時の通知 SES Bounce/Complaintのフィードバック通知 Elastic Transcoder 動画変換処理理完了了/失敗時の通知 AutoScaling AutoScaling Groupの状態が変わった時の通知 CloudTrail ログファイル配送に関する通知 41 © 2012 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.
42.
SNSの動作イメージ ! 1.
Topicの作成 ! 2. TopicをSubscribe ! 3. Topicへ向けてメッセージをPublish ! 4. CloudWatchとの連携例例 42 © 2012 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.
43.
1. Topicの作成 !
Topic Amazon Resource Name(ARN) を作成 43 © 2012 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.
44.
2. TopicのSubscribe !
プロトコルを選択: HTTP(S), Email, SQS, Application ! Endpointへのメッセージ送信にはConfirmが必要 44 © 2012 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.
45.
3. Topicへ向けてメッセージをPublish !
作成したTopicに向けてブラウザからpublish ! 想定通りにメッセージが受け取れることを確認 プロトコルでEmailを選択した場合 45 © 2012 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.
46.
4. CloudWatchとの連携例例 !
Alarmのしきい値を超えた場合のActionに通知を設定 46 © 2012 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.
47.
4. CloudWatchとの連携例例 !
Alarmのしきい値を超えた場合に通知 プロトコルでEmailを選択した場合 47 © 2012 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.
48.
Mobile Push (2013年年8⽉月リリース) !
シンプルにクロスプラットフォームなPUSH通知を実現 ! 堅牢牢性と信頼性とスケーラビリティを兼備 Apple Devices Google Devices Amazon SNS Mobile Push Amazon Kindle Fire Devices 48 © 2012 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.
49.
Mobile Push (2013年年8⽉月リリース) !
Amazon SNS モバイルプッシュ通知セミナー資料料 http://aws.amazon.com/jp/aws-‐‑‒jp-‐‑‒introduction/ 49 © 2012 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.
50.
SQS/SNSを使った構成例例 50 © 2012 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.
51.
Workキュー ! 複数の受信者にタスクを分散 例 ・動画エンコード処理 ・Eメール送信処理 ・PDF作成処理 送信者 受信者 Amazon
SQS タスク完了時に 通知 Amazon SNS 51 © 2012 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.
52.
So-‐‑‒netの広告配信ログの分析 ! ! ! ! 1⽇日平均10GB、年年間3.65TB 1年年分5TBをS3アップロードしてEMRで解析 オンプレミス試算:初期費⽤用で数千万円単位 SQS+S3+EMRの価格:毎⽉月50万円 • コストを⼤大幅に削減 !
スポットインスタンスで、アドホック分析 • 更更にコストを50%削減 52 © 2012 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.
53.
バッファ&バッチオペレーション ! メッセージ
≒ オペレーション ! DBなどのサービスの前⾯面にキューを配置 ! SQSのスケーリングを活⽤用して、安定したパフォーマン スと⼤大量量のバックログを出⼒力力 • 例例 • S3上の少数ファイルに少量量の書き込み • DynamoDBのバッファ • RDSへのバルクインサート 53 © 2012 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.
54.
SQSは⾼高いスループットをサポート メッセージ 送信者 メッセージ 受信者 54 © 2012 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.
55.
DBへの書き込みのバッファ Data Amazon SQS Queue 一時的なスパイク SQSはスパイクを吸収して DBに安定して書き込み Amazon EC2 さまざまなDBを置き換え可能 例) DB 55 DynamoDB MySQL
DB Instance Amazon RDS © 2012 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.
56.
イベント処理理 ! 同⼀一のメッセージを複数のキューに同時送信して、同時 処理理する ゲームの 変更リクエスト Push通知 Amazon SQS Amazon SNS イベント メッセージ 56 AWS
Cloud ステータス アップデート ゲームの アーカイブ化 DynamoDB © 2012 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.
57.
まとめ 57 © 2012 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.
58.
SQS/SNSのまとめ ! SQS •
キューイングシステムによる⾮非同期処理理を⽤用いることで、ス ケーラブルなシステムを構築できる • ⾼高い耐久性を持つキューイングシステムにはマネージドなSQS を⽤用いると良良い • SQSを使えば、⼤大量量のメッセージを最低1回の到達性で保障でき る • SQSのスケーリングによって⾼高いスループットを確保できる。 • ワークキューやバッファ&バッチオペレーションにも最適 • スパイクアクセスにも対応できる ! SNS • マルチプロトコルのプッシュ通知を簡単に実現できる • 柔軟で⾼高速なマネージドメッセージングサービス 58 © 2012 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.
59.
Link ! Amazon
SQS Document • http://aws.amazon.com/jp/documentation/sqs/ ! EAI Pattern • http://www.eaipatterns.com/ ! Amazon SNS Document • http://aws.amazon.com/jp/documentation/sns/ ! Amazon SNS Mobile Push セミナー資料料 • http://www.slideshare.net/AmazonWebServicesJapan/ 20130917-‐‑‒aws-‐‑‒ meisterregenerateextrasnsmobilepushpublic 59 © 2012 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.
60.
Appendix 60 © 2012 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.
61.
SQS利利⽤用時のコードサンプル AWS SDK for
Java利利⽤用時 ! AmazonSQSClientの作成 AmazonSQS sqs = new AmazonSQSClient(new PropertiesCredentials(xxx)); sqs.setEndpoint("http://sqs.ap-northeast-1.amazonaws.com"); ! メッセージ送信 sqs.sendMessage(new SendMessageRequest(myQueueUrl, "This is my message text.")); ! メッセージ受信 List<Message> messages = sqs.receiveMessage(new ReceiveMessageRequest(myQueueUrl)).getMessages(); 61 © 2012 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.
Download