20150207 サービス紹介編 amazon simple queue service (sqs)

31
JAWS-UG KANSAI特別編 AWSのフルマネージドサービス活用による ネイティブクラウドシステムへの誘い サービス紹介編 Amazon Simple Queue Service (SQS) 2015 2 7 JAWS-UG 沖縄 西島 @k_nishijima

Upload: koichiro-nishijima

Post on 18-Jul-2015

1.007 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

JAWS-UG KANSAI特別編 AWSのフルマネージドサービス活用による ネイティブクラウドシステムへの誘い

サービス紹介編 Amazon Simple Queue Service (SQS)

2015年 2月7日 JAWS-UG沖縄 西島

@k_nishijima

Page 2: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

皆様はじめまして! 沖縄から来ました 西島と申します

Page 3: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

あんた誰?

西島 幸一郎 / にしじま こういちろう JAWS−UG沖縄の副代表

AWS 認定ソリューションアーキテクト

AWSサムライ2014拝命

Page 4: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

さて Amazon Simple Queue Service

(SQS)

とは?

Page 5: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

*知らない人 *知ってる人 *使ってる人

Page 6: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

このアンケートによって内容変えないといけないですが・・・(^^ゞ

Page 7: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

勝手に想像・・・

裏がLambdaだし・・・

それでもSQSに来てる人って、

きっとマニアだよね?

Page 8: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

というわけでアジェンダ✤ そもそもキューって何?

✤ SQSの概要

✤ 使いどころ

Page 9: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

そもそもキュー(Queue)とは?

アルゴリズムで習ったよね?

基本的にはFIFOなデータ構造

Enqueue Dequeue

Page 10: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

箱を縦にしたら・・・

これスタック

基本的にはLIFO / FILOなデータ構造

http://stackoverflow.com/

Page 11: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

複数のサーバがネットワーク越しに使うと・・・?

データ構造からミドルウェアへ

頼むぞ 頼まれた

workersclientキューを提供する

ミドルウェア/サービス

Page 12: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

キューの実装Javaならjava.util.Queueインターフェイスの各実装クラス

分散環境やJavaEEならJMSの各実装ActiveMQとかOpenJMSとか色々

Page 13: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

キューの実装RubyならQueueクラス

分散環境ならRabbitMQとかZeroMQとか(ZeroMQはミドルウェアではないけど・・・)

Page 14: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

Amazon SQSはAWSが提供する

メッセージキューサービス

EC2/S3と並び 最古参サービスの1つ

Page 15: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

Amazon SQSの特徴フルマネージド / スケーラブル / 高い信頼性

詳しくは【[AWSマイスターシリーズ] Amazon SQS / SNS】をチェック http://www.slideshare.net/AmazonWebServicesJapan/aws-31275003

Page 16: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

Amazon SQSの特徴フルマネージド / スケーラブル / 高い信頼性

詳しくは【[AWSマイスターシリーズ] Amazon SQS / SNS】をチェック http://www.slideshare.net/AmazonWebServicesJapan/aws-31275003

っていうと 話が終わっちゃう!

Page 17: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

なので今日は 重要なポイントと 最近のアップデートを追いかけてみます

Page 18: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

SQSの特徴:最重要2点メッセージの順序は保証されない (先ほどのFIFOとかFILOとかではない)

最低1度のメッセージ到達を保証 (同じメッセージを複数回受信するかも)

Page 19: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

2014年2月以降の アップデート

Page 20: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@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

Page 21: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

2014年5月アップデート/ Message Attributes本文にJSON使ってメタ情報加えればいいじゃない!

→否定はしませんが(^^; 本文を読む前に型安全な属性を読んで処理できたほうが、読む側は楽になる

Page 22: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

2014年7月アップデート/ AWS CloudTrail対応以下のアクションをロギング

AddPermission

CreateQueue

DeleteQueue

RemovePermission

SetQueueAttributes

Page 23: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

2014年12月アップデート/ PurgeQueue機能追加キューのメッセージを全部削除

開発中などにとても便利に使える

本番環境のキューに投げないでね!(Truncate Tableなみに死亡フラグ)

Page 24: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@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

Page 25: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@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ライクに!

Page 26: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

で、どんな所に使える?

Page 27: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

http://aws.clouddesignpattern.org/

AWS Cloud Design Pattern

Page 28: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

SQSの使いどころCDP:Job Observerパターン

http://aws.clouddesignpattern.org/

Page 29: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

SQSの使いどころCDP:Priority Queueパターン

http://aws.clouddesignpattern.org/

Page 30: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

SQSを上手に活用して コンポーネント間を

うまく疎結合にしましょう!

Page 31: 20150207 サービス紹介編 Amazon Simple Queue Service (SQS)

@k_nishijima http://about.me/k15a

ありがとうございました!