32
JAWS-UG Osaka 第8回勉強会 Beginners AWS連携サービスについて (SQS, SNS, SES) 2013年6月22日 NRIネットコム株式会社 佐々木拓郎

第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

Embed Size (px)

Citation preview

Page 1: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

JAWS-UG Osaka 第8回勉強会 Beginners

AWS連携サービスについて(SQS, SNS, SES)

2013年6月22日NRIネットコム株式会社 佐々木拓郎

Page 2: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

本日のアジェンダ

‣ 自己紹介(3分)

‣ SNS、SQS、SESについて(20分)

‣ デザインパターン(5分)

#jawsug

Page 3: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

✦ プロフィール

‣ NRIネットコム株式会社 Webクラウド事業部

‣ Twitter: @katotaku(実名)@dkfj(匿名)/

‣ Facebook: takuro.sasaki

‣ blog: http://d.hatena.ne.jp/dkfj/ (匿名)

‣ 好きなAWSサービス: S3,SQS

★ 備考

‣ 認定スクラム・マスター

‣ AWS認定ソリューションアーキテクト- アソシエイトレベル

@katotaku

自己紹介: 佐々木拓郎

Page 4: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

NRIネットコム

✦ NRIグループで唯一関西を本社とする会社

‣ Webシステムを得意としているシステム会社

‣ 設計開発から運用まで全て行う為、

アプリケーション・インフラエンジニアが一杯いる

‣ Web系の仕事が多いため、ディレクター・デザイナーも一杯!!

‣ 大阪本社だけど、東京の方が人が多い。でも関西Love

Page 5: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

NRIネットコムとAWSと私

• 2006年 米国の会社に出向中に、Amazon S3と出会うもEC2はスルー

• 2007年 EC2が仮想サーバということを知って使いはじめる

• 2008年 匿名ブログでAWSのことを書き始めると、そこそこ人気に

✦ 2009年 会社の一部システムで、EC2を利用し始める

✦ 2010年 iPadを使った「モバイル会議」システムのインフラにAWSを採用

✦ 2011年 既存のお客様にも、徐々に勧め始める

✦ 2012年 AWSソリューションとして本格的に営業開始

✦ 2013年 趣味で使っていたものが本職になる。 ← イマココ

Page 6: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

今回のテーマ

AWS連携サービスについて

Page 7: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

対象

• Amazon Simple Notification Service(SNS)

• Amazon Simple Queue Service(SQS)

• Amazon Simple Email Service(SES)

Page 8: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

この3つのサービスを一言で表すと

マイナー3兄弟ついでに、名前がややこしすぎ

でも、使い方が解ると、とっても便利です。

※本当は、SNS,SQS,SWFが兄弟で、SESはイトコくらいの関係だと思います。

参照:マイナー三兄弟なAmazon SNS,SQS,SESを激しくお勧めする。

http://d.hatena.ne.jp/dkfj/20130204/1359966577

Page 9: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

Amazon Simple Notification Service(SNS)

プッシュ型の通知サービス• 様々な通知手段 (HTTP/HTTPS、Eメール、SMS、SQS)

• 高い信頼性&拡張性 (AWS内での冗長保存&充分なスケール)

• 低コスト (月間無料枠&非常に低価格な従量課金制)

参照:マルチプロトコルの凄いやつ。Amazon SNS(Simple Notification Service)http://d.hatena.ne.jp/dkfj/20130621/1371766076

Page 10: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

Amazon Simple Notification Service(SNS)

マルチプロトコル・一斉送信可能な通知サービス

通知する人(Publisher)

トピック(Topic)

http/s(Subscription)

email(Subscription)

SQS(Subscription)

SMS(Subscription)

通知される人(Subscriber)

Message受信

Message

Message配信

Page 11: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

Amazon Simple Notification Service(SNS)

使い方

通知する人(Publisher)

通知される人(Subscriber)

1. トピック(Topic)の作成

2. 購読(Subscribe)

管理者

3. メッセージ  の配信

4. メッセージ  の受信

5. トピック(Topic)の削除

Page 12: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

Amazon Simple Notification Service(SNS)

メリット

• マルチプロトコル  ⇒複数のプロトコルに対して、透過的に利用出来る

• 疎結合  ⇒配信者(Publish)と購読者(Subscriber)が分離している

• 低コスト  ⇒高性能・高可用性で、極めて低価格

Page 13: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

Amazon Simple Notification Service(SNS)

料金• APIリクエスト  ⇒毎月最初の100万リクエストは無料。それ以降は、100万リクエストごとに$0.50

• HTTP/HTTPS  ⇒毎月最初の10万 HTTP/HTTPS通知は無料。それ以降は、10万通知ごとに$0.06

• Email/Email-JSON  ⇒毎月最初の1,000 Email通知は無料。それ以降は、10万通知ごとに$2.00

• SMS  ⇒毎月最初の100 SMS通知は無料。それ以降は、100通知ごとに$0.75

• SQS  ⇒SQSへの通知は無料

Page 14: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

Amazon Simple Notification Service(SNS)

SNSを使ったシステム構築例(サービス監視)

参考:クラウド監視サービス : 事例紹介 | NRIネットコムhttp://nri-net.com/products/cloud/aws_watch.html

Page 15: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

Amazon Simple Queue Service(Amazon SQS)

プル型のキュー・サービス• 最古のAWSサービス (2006年サービス開始)

• 疎結合アーキテクチャの肝 (サービス間連携に大活躍)

• 低コスト (月間無料枠&非常に低価格な従量課金制)

参照:Amazon Simple Queue Service(SQS)の使い方

http://d.hatena.ne.jp/dkfj/20130205/1360076804

Page 16: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

Amazon Simple Queue Service(Amazon SQS)

非同期的なキューの処理

EC2

SNS

登録者(Writer)

①キューの登録 SQS

ポーリング

②キューの受信

④キューの削除

③何らかの処理

Page 17: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

Amazon Simple Queue Service(Amazon SQS)

使い方

送信する人(Writer)

受信する人(Reader)

1. キューの作成

管理者

2. メッセージ  の送信

3. メッセージ  の受信

4. キューの削除

Page 18: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

メリット

• 最低一度のメッセージ到達保証  ⇒システムの信頼性を考える上では、重要なポイント

• Visibility Timeout  ⇒メッセージを受信すると、ある一定期間その他のReaderからメッセージ  が見えなくなる

• 疎結合  ⇒サービス間の依存性の削減。安価で堅牢なサービスの構築。

Amazon Simple Queue Service(Amazon SQS)

Page 19: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

制約

• メッセージの順序は保証されない  ⇒システム側は、その前提で構築すること

• メッセージの制約  ⇒保存期間は最大2週間。サイズは、64 256KBまで。

   (2013/6/20アップデート)

Amazon Simple Queue Service(Amazon SQS)

Page 20: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

Amazon Simple Email Service(Amazon SES)

信頼性の高いバルクメール送信サービス

• API経由で使えるメール配信サービス

• SMTPサーバとしても利用可能

• Bounce(配信不能)を管理するAPI

Page 21: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

Amazon Simple Email Service(Amazon SES)

信頼性の高いバルクメール送信サービス

SES

送信者

ISP

ISP

ISP・ISPごとの流量制御・Bounceの処理・スパム/ウィルスチェック

API

Page 22: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

Amazon Simple Email Service(Amazon SES)

使用する前に、これを一読ください。

参考:Amazon Simple Email Service Eメール送信のベスト・プラクティスhttp://media.amazonwebservices.com/jp/wp/AWS_Amazon_SES_Best_Practices.pdf

Page 23: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

Amazon Simple Email Service(Amazon SES)

守らないといけないこと

• バウンスを防ぐ(5%以下)  ⇒未到達のメールアドレスを排除する為の仕組みの導入

• 苦情を防ぐ(0.1%未満)  ⇒受け取ったユーザからスパムと報告されないこと

• 悪意のあるコンテンツを送らない  ⇒フィッシング、マルウェア、ウィルス拡散、詐欺を含む文面の禁止

Page 24: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

Amazon Simple Email Service(Amazon SES)

使用する為に

• SESの利用権限を持ったIAMユーザの作成  ⇒Access KeyとSecret Access Keyが、SMTP認証の為のID,Passになる

• 利用者(メールアドレス/ドメイン名)登録  ⇒利用登録されたメールアドレスorドメイン名からしか送信できない

• Production Accessの登録  ⇒本番利用登録が必要

Page 25: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

Amazon Simple Email Service(Amazon SES)

バウンスメールと苦情の管理

ses-bounces-topic

ses-complaints-topic

bounces-queue

complaints-queue

メール送信アプリ

送信先取得

削除対象取得バウンス/苦情通知

メールアドレス管理アプリ

送信先削除

参考:バウンス(Bounce)と苦情(Complaint)処理の自動化についてhttps://forums.aws.amazon.com/ann.jspa?annID=1765

Page 26: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

Amazon Simple Email Service(Amazon SES)

DKIM導入が必要性

デフォルトではamazonses.com経由と表示されてしまう

Page 27: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

Amazon Simple Email Service(Amazon SES)

DKIMの設定

• 対象ドメインを選択

• DKIMタブで有効化

• DNSにレコードを追加  ⇒Route53なら2クリックするだけ

• 設定完了通知を待つ

参考:Amazon SES Easy DKIM設定サポート資料http://www.slideshare.net/AmazonWebServicesJapan/amazonseseasy-dkim

Page 28: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

デザインパターン

Page 29: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

SNSとSQSの連携

SNS SQS 何らかの処理アクションキュー登録 ポーリング

Page 30: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

SQS+ジョブサーバ

SQS

ポーリングキュー登録

Page 31: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

SQSをデータベースのバッファにする

Page 32: 第8回JAWSUG大阪 JAWSUG大阪 連携サービス(SNS,SQS,SES)

ご清聴ありがとうございました