20150207 サービス紹介編 amazon simple queue service (sqs)
TRANSCRIPT
JAWS-UG KANSAI特別編 AWSのフルマネージドサービス活用による ネイティブクラウドシステムへの誘い
サービス紹介編 Amazon Simple Queue Service (SQS)
2015年 2月7日 JAWS-UG沖縄 西島
@k_nishijima
@k_nishijima http://about.me/k15a
あんた誰?
西島 幸一郎 / にしじま こういちろう JAWS−UG沖縄の副代表
AWS 認定ソリューションアーキテクト
AWSサムライ2014拝命
@k_nishijima http://about.me/k15a
勝手に想像・・・
裏がLambdaだし・・・
それでもSQSに来てる人って、
きっとマニアだよね?
@k_nishijima http://about.me/k15a
そもそもキュー(Queue)とは?
アルゴリズムで習ったよね?
基本的にはFIFOなデータ構造
Enqueue Dequeue
@k_nishijima http://about.me/k15a
箱を縦にしたら・・・
これスタック
基本的にはLIFO / FILOなデータ構造
http://stackoverflow.com/
@k_nishijima http://about.me/k15a
複数のサーバがネットワーク越しに使うと・・・?
データ構造からミドルウェアへ
頼むぞ 頼まれた
workersclientキューを提供する
ミドルウェア/サービス
@k_nishijima http://about.me/k15a
キューの実装Javaならjava.util.Queueインターフェイスの各実装クラス
分散環境やJavaEEならJMSの各実装ActiveMQとかOpenJMSとか色々
@k_nishijima http://about.me/k15a
キューの実装RubyならQueueクラス
分散環境ならRabbitMQとかZeroMQとか(ZeroMQはミドルウェアではないけど・・・)
@k_nishijima http://about.me/k15a
Amazon SQSはAWSが提供する
メッセージキューサービス
EC2/S3と並び 最古参サービスの1つ
@k_nishijima http://about.me/k15a
Amazon SQSの特徴フルマネージド / スケーラブル / 高い信頼性
詳しくは【[AWSマイスターシリーズ] Amazon SQS / SNS】をチェック http://www.slideshare.net/AmazonWebServicesJapan/aws-31275003
@k_nishijima http://about.me/k15a
Amazon SQSの特徴フルマネージド / スケーラブル / 高い信頼性
詳しくは【[AWSマイスターシリーズ] Amazon SQS / SNS】をチェック http://www.slideshare.net/AmazonWebServicesJapan/aws-31275003
っていうと 話が終わっちゃう!
@k_nishijima http://about.me/k15a
SQSの特徴:最重要2点メッセージの順序は保証されない (先ほどのFIFOとかFILOとかではない)
最低1度のメッセージ到達を保証 (同じメッセージを複数回受信するかも)
@k_nishijima http://about.me/k15a
2014年5月アップデート/ Message Attributesメッセージに型を指定した属性を付与できる
String/Number/Binary型(+独自型もOK)
http://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSMessageAttributes.html
@k_nishijima http://about.me/k15a
2014年5月アップデート/ Message Attributes本文にJSON使ってメタ情報加えればいいじゃない!
→否定はしませんが(^^; 本文を読む前に型安全な属性を読んで処理できたほうが、読む側は楽になる
@k_nishijima http://about.me/k15a
2014年7月アップデート/ AWS CloudTrail対応以下のアクションをロギング
AddPermission
CreateQueue
DeleteQueue
RemovePermission
SetQueueAttributes
@k_nishijima http://about.me/k15a
2014年12月アップデート/ PurgeQueue機能追加キューのメッセージを全部削除
開発中などにとても便利に使える
本番環境のキューに投げないでね!(Truncate Tableなみに死亡フラグ)
@k_nishijima http://about.me/k15a
2014年12月アップデート/ SQS Client Library for Java Messaging Service
やっと公式のブログネタに!http://aws.typepad.com/aws_japan/2015/01/new-sqs-client-library-for-java-messaging-service-jms.html
@k_nishijima http://about.me/k15a
2014年12月アップデート/ SQS Client Library for Java Messaging Service
使い方は以下「Using JMS with Amazon SQS」http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/jmsclient.html
メッセージが届いたらリスナーのonMessageが呼ばれる = Message-Driven Beanライクに!
@k_nishijima http://about.me/k15a
http://aws.clouddesignpattern.org/
AWS Cloud Design Pattern
@k_nishijima http://about.me/k15a
SQSの使いどころCDP:Job Observerパターン
http://aws.clouddesignpattern.org/
@k_nishijima http://about.me/k15a
SQSの使いどころCDP:Priority Queueパターン
http://aws.clouddesignpattern.org/