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

              2012年03月03日
              大谷 晋平 (@shot6 )
              ソリューションアーキテクト
アジェンダ

SQSとは
SQSの機能
SQSの使いどころ
Q&A
SQS(Simple Queue Service)とは



 AWSの隠し技
SQS(Simple Queue Service)とは

 分散キューサービス
  AWSをスケールアウトして使うためのキーコ
   ンポーネント
  最低一度は届くことを保証
 信頼性が高く、すぐに使えて、管理
 者不要、低コスト
 2006年よりある最古参サービス
何故キューが必要か?

“分割できないものは、スケール出来
ない” by Randy Shoup(eBay)
 スケールするには疎結合なアーキテクチャに
  する必要がある
 疎結合アーキテクチャに非同期通信が不可欠
 非同期通信の典型例がキューシステム
SQSの機能

“分散”キューサービス
最低一度のメッセージ到達保障
シンプルなAPI
キューシステムのインストール不要
、SDKから直接使える
分散キューサービス

メッセージは自動的に複数DC間でレ
プリケーションされる
 メッセージロストを防ぐ
 Persistent Message
自分で高い耐障害性を持つキューシ
ステムを構築するのは困難
シンプルなAPIとSDK
 CreateQueue
 SendMessage
 ReceiveMessage
 ChangeMessageVisibility
 DeleteMessage
 バッチ処理
 SDKはJava/.NET/PHP/Ruby
動作イメージ
 管理者
       1.キューの作成/4.キューの削除
       (http://sqs.ap-northeast-1.amazonaws.com/123456789012/queue2)
                                   3.メッセージ受信
2.メッセージ送信


                                       メッセージ受信者
メッセージ送信者                               (Reader
(Writer                                or Consumer)
or Producer)
メッセージの到達保障
 管理者
       1.キューの作成/4.キューの削除
       (http://sqs.ap-northeast-1.amazonaws.com/123456789012/queue2)



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



                  Visibility
                  Timeout
Visibility Timeoutとは

 Readerがメッセージを受信した場合
 に、ある一定期間その他のReaderが
 メッセージは見えなくなる
 メッセージ自体はユーザが明示的に
 消さない限り残存する(最大2週間)
Visibility Timeoutとは(2)
   あるReader-Aが                               あるReader-Dが
   メッセージ1を依頼     あるReader-Bが   あるReader-Cが
                                             メッセージ1を依頼
                 依頼            依頼




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

   メッセージの返却                                       削除されてい
                                                  ない場合
                                                  (メッセージの
                                                  返却)
            この間にReader-Aは、
            ・受信したメッセージを処理する
            ・処理出来たらメッセージを削除する
最低一度のメッセージ到達保障

At-Least-Once delivery
 メッセージは複数DCにコピー
 堅牢性・耐障害性にフォーカス
デメリット:稀に複数回メッセージ
が届くこともある
 メッセージの状態管理
 複数回届く前提
メッセージサンプリング
メッセージは送信後すぐに取れると
は限らない
 受信リクエストを送り続ければ取れる
イベンチュアルコンシステンシ前提
 メッセージの                        SQSキューの分散
 受信者                           されたサーバ群
          サンプリングした
          サーバからメッ
          セージを順次返却
          (メッセージEが含
          まれていない)




                      サンプリング
                      対象サーバ
                      (グレー)
開発者に優しい無料枠と価格

月間100,000 requestまで無料
価格
 10,000リクエストあたり$0.01
 データトランスファーはAWSから外
  部に送出する場合に限り、
  $0.201/GBから課金
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"
}]}
SQSの制約

メッセージの順序性は保証しない
メッセージの保存は最大2週間まで
メッセージのサイズは64KBまで
キュー内に入るメッセージ数には制
限なし
キュー名は80文字まで
最近のSQS機能追加

 CloudWatchによるメトリクス監視
 AutoScalingと組み合わせやすく
 マネージメントコンソールから利用可能に
 ディレイキュー
 メッセージタイマー
 バッチAPI
SQSをいつ使うか?

AWSクラウド内での疎結合アーキテ
クチャを採用したい場合
 コンポーネント間の依存関係を減
  らしたい
AWSクラウドとオンプレミスの間で
のやり取りのインタフェース
 受諾と処理→結果の送信の分離
顧客はいつSQSを使っているか?
 ハイブリッド     オンプレミスとAWSクラウド
 クラウド連携     連携


            イメージ処理、インデクシング
 Webアプリケー   等のシステム間の疎結合なやり
 ション/SaaS   取りに利用


 ビッグデータや    EMRやAWSクラウドの
 バッチ処理      その他サービスとの連携に利用
SQSまとめ

 AWSが提供するキューサービス
  最低一度は届くことを保証
  分散キューのためスケールする
  高い耐障害性
  シンプルにすぐに使える
  セキュア
  低コスト
AWSマイスターシリーズ
~Simple Notification
Service~
               2012年03月03日
               大谷 晋平 (@shot6 )
               ソリューションアーキテクト
アジェンダ

SNSとは
SNSの機能
SNSの使いどころ
Q&A
SNS(Simple Notification
Service)とは



 AWSの小道具
SNSとは

クラウド上の通知サービス
簡単に使えて、マルチプロトコル
従量課金制で非常に安い
インストール・管理不要ですぐに使
える
SNSの機能

様々なプロトコルに対応した通知プ
ラットフォーム
  メール、SQSキュー、HTTP/HTTPSコ
   ールバック、SMS
 シンプルなAPI/SDK
 プッシュベースアーキテクチャ
 非常に低価格
動作イメージ
 管理者
       1.トピックの作成/5.トピックの削除


                  2.トピック購読
3.メッセージ配信


            4.メッセージ受信
メッセージ配信者            メッセージ購読者
(Publisher)         (Subscriber)
利用用途

様々なプロトコルを通じたアプリケ
ーション間のフックに使う
                AWSクラウド上のアプリケーション
          S3
   ファイル
                完了通知依頼

                       SNS




 ジョブ      完了通知&ジョブ実行
利用用途

S3上からファイルが削除されたとき
をフック
               AWSクラウド上のアプリケーション
 ユーザが削除   S3
                削除通知依頼

                       SNS



          削除されたことを通知
SQSとSNSの違い

 SQSはポーリングモデル
  1:1コミュニケーション
  Producer-Consumer
 SNSはプッシュモデル
  1:Nコミュニケーション
  Publisher-Subscriber
開発者に優しい無料枠と価格

月間100,000 requestまで無料
価格
 100,000リクエストあたり$0.06
 HTTPは100,000あたり$0.06
 メールは100,000通あたり$2.0
 100SMSあたり、$0.75
 SQSにはチャージなし
SNSの制約

 最大1アカウント100トピックまで
 メッセージは最大8KBまで
SNSまとめ

クラウド上の通知サービス
簡単に使えて、マルチプロトコル
従量課金制で非常に安い
インストール・管理不要ですぐに使
える
AWSマイスターシリーズ
~Simple Workflow
Service~
            2012年03月03日
            大谷 晋平 (@shot6 )
            ソリューションアーキテクト
アジェンダ

SWFとは
SWFの機能
SWFとは
SWFとは



AWSマエストロ


  http://ja.wikipedia.org/wiki/%E6%8C%87%E6%8F%AE%E8%80%85
SWFとは
AWS/オンプレミスを使った連携を自動化
ワークフローの階層構造も可能
Flow Framework

 Javaで出来たSWFを使うためのワークフローフレームワーク
 DSLを実装していて、APTでコードを自動生成→コンパイル
 サンプルも豊富
SWFまとめ

AWS上のコンポーネント、オンプレミス問わず
オーケストレーションするサービス
分散処理をもっと手軽に、もっとやりやすく
Flow Framework
SQS、SNS、SWFを通じて

AWS SシリーズはAWSクラウドを
よりよく使うためのコンポーネント
  SQS=疎結合を提供する
  SNS=プロトコル非依存な通知
  SWF=分散処理オーケストレーショ
   ン
ありがとう
ございました


 Copyright © 2011 Amazon Web Services

20120303 jaws summit-meister-06_sns-sqs