第8回jawsug大阪 jawsug大阪 連携サービス(sns,sqs,ses)
TRANSCRIPT
JAWS-UG Osaka 第8回勉強会 Beginners
AWS連携サービスについて(SQS, SNS, SES)
2013年6月22日NRIネットコム株式会社 佐々木拓郎
本日のアジェンダ
‣ 自己紹介(3分)
‣ SNS、SQS、SESについて(20分)
‣ デザインパターン(5分)
#jawsug
✦ プロフィール
‣ NRIネットコム株式会社 Webクラウド事業部
‣ Twitter: @katotaku(実名)@dkfj(匿名)/
‣ Facebook: takuro.sasaki
‣ blog: http://d.hatena.ne.jp/dkfj/ (匿名)
‣ 好きなAWSサービス: S3,SQS
★ 備考
‣ 認定スクラム・マスター
‣ AWS認定ソリューションアーキテクト- アソシエイトレベル
@katotaku
自己紹介: 佐々木拓郎
NRIネットコム
✦ NRIグループで唯一関西を本社とする会社
‣ Webシステムを得意としているシステム会社
‣ 設計開発から運用まで全て行う為、
アプリケーション・インフラエンジニアが一杯いる
‣ Web系の仕事が多いため、ディレクター・デザイナーも一杯!!
‣ 大阪本社だけど、東京の方が人が多い。でも関西Love
NRIネットコムとAWSと私
• 2006年 米国の会社に出向中に、Amazon S3と出会うもEC2はスルー
• 2007年 EC2が仮想サーバということを知って使いはじめる
• 2008年 匿名ブログでAWSのことを書き始めると、そこそこ人気に
✦ 2009年 会社の一部システムで、EC2を利用し始める
✦ 2010年 iPadを使った「モバイル会議」システムのインフラにAWSを採用
✦ 2011年 既存のお客様にも、徐々に勧め始める
✦ 2012年 AWSソリューションとして本格的に営業開始
✦ 2013年 趣味で使っていたものが本職になる。 ← イマココ
今回のテーマ
AWS連携サービスについて
対象
• Amazon Simple Notification Service(SNS)
• Amazon Simple Queue Service(SQS)
• Amazon Simple Email Service(SES)
この3つのサービスを一言で表すと
マイナー3兄弟ついでに、名前がややこしすぎ
でも、使い方が解ると、とっても便利です。
※本当は、SNS,SQS,SWFが兄弟で、SESはイトコくらいの関係だと思います。
参照:マイナー三兄弟なAmazon SNS,SQS,SESを激しくお勧めする。
http://d.hatena.ne.jp/dkfj/20130204/1359966577
Amazon Simple Notification Service(SNS)
プッシュ型の通知サービス• 様々な通知手段 (HTTP/HTTPS、Eメール、SMS、SQS)
• 高い信頼性&拡張性 (AWS内での冗長保存&充分なスケール)
• 低コスト (月間無料枠&非常に低価格な従量課金制)
参照:マルチプロトコルの凄いやつ。Amazon SNS(Simple Notification Service)http://d.hatena.ne.jp/dkfj/20130621/1371766076
Amazon Simple Notification Service(SNS)
マルチプロトコル・一斉送信可能な通知サービス
通知する人(Publisher)
トピック(Topic)
http/s(Subscription)
email(Subscription)
SQS(Subscription)
SMS(Subscription)
通知される人(Subscriber)
Message受信
Message
Message配信
Amazon Simple Notification Service(SNS)
使い方
通知する人(Publisher)
通知される人(Subscriber)
1. トピック(Topic)の作成
2. 購読(Subscribe)
管理者
3. メッセージ の配信
4. メッセージ の受信
5. トピック(Topic)の削除
Amazon Simple Notification Service(SNS)
メリット
• マルチプロトコル ⇒複数のプロトコルに対して、透過的に利用出来る
• 疎結合 ⇒配信者(Publish)と購読者(Subscriber)が分離している
• 低コスト ⇒高性能・高可用性で、極めて低価格
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への通知は無料
Amazon Simple Notification Service(SNS)
SNSを使ったシステム構築例(サービス監視)
参考:クラウド監視サービス : 事例紹介 | NRIネットコムhttp://nri-net.com/products/cloud/aws_watch.html
Amazon Simple Queue Service(Amazon SQS)
プル型のキュー・サービス• 最古のAWSサービス (2006年サービス開始)
• 疎結合アーキテクチャの肝 (サービス間連携に大活躍)
• 低コスト (月間無料枠&非常に低価格な従量課金制)
参照:Amazon Simple Queue Service(SQS)の使い方
http://d.hatena.ne.jp/dkfj/20130205/1360076804
Amazon Simple Queue Service(Amazon SQS)
非同期的なキューの処理
EC2
SNS
登録者(Writer)
①キューの登録 SQS
ポーリング
②キューの受信
④キューの削除
③何らかの処理
Amazon Simple Queue Service(Amazon SQS)
使い方
送信する人(Writer)
受信する人(Reader)
1. キューの作成
管理者
2. メッセージ の送信
3. メッセージ の受信
4. キューの削除
メリット
• 最低一度のメッセージ到達保証 ⇒システムの信頼性を考える上では、重要なポイント
• Visibility Timeout ⇒メッセージを受信すると、ある一定期間その他のReaderからメッセージ が見えなくなる
• 疎結合 ⇒サービス間の依存性の削減。安価で堅牢なサービスの構築。
Amazon Simple Queue Service(Amazon SQS)
制約
• メッセージの順序は保証されない ⇒システム側は、その前提で構築すること
• メッセージの制約 ⇒保存期間は最大2週間。サイズは、64 256KBまで。
(2013/6/20アップデート)
Amazon Simple Queue Service(Amazon SQS)
Amazon Simple Email Service(Amazon SES)
信頼性の高いバルクメール送信サービス
• API経由で使えるメール配信サービス
• SMTPサーバとしても利用可能
• Bounce(配信不能)を管理するAPI
Amazon Simple Email Service(Amazon SES)
信頼性の高いバルクメール送信サービス
SES
送信者
ISP
ISP
ISP・ISPごとの流量制御・Bounceの処理・スパム/ウィルスチェック
API
Amazon Simple Email Service(Amazon SES)
使用する前に、これを一読ください。
参考:Amazon Simple Email Service Eメール送信のベスト・プラクティスhttp://media.amazonwebservices.com/jp/wp/AWS_Amazon_SES_Best_Practices.pdf
Amazon Simple Email Service(Amazon SES)
守らないといけないこと
• バウンスを防ぐ(5%以下) ⇒未到達のメールアドレスを排除する為の仕組みの導入
• 苦情を防ぐ(0.1%未満) ⇒受け取ったユーザからスパムと報告されないこと
• 悪意のあるコンテンツを送らない ⇒フィッシング、マルウェア、ウィルス拡散、詐欺を含む文面の禁止
Amazon Simple Email Service(Amazon SES)
使用する為に
• SESの利用権限を持ったIAMユーザの作成 ⇒Access KeyとSecret Access Keyが、SMTP認証の為のID,Passになる
• 利用者(メールアドレス/ドメイン名)登録 ⇒利用登録されたメールアドレスorドメイン名からしか送信できない
• Production Accessの登録 ⇒本番利用登録が必要
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
Amazon Simple Email Service(Amazon SES)
DKIM導入が必要性
デフォルトではamazonses.com経由と表示されてしまう
Amazon Simple Email Service(Amazon SES)
DKIMの設定
• 対象ドメインを選択
• DKIMタブで有効化
• DNSにレコードを追加 ⇒Route53なら2クリックするだけ
• 設定完了通知を待つ
参考:Amazon SES Easy DKIM設定サポート資料http://www.slideshare.net/AmazonWebServicesJapan/amazonseseasy-dkim
デザインパターン
SNSとSQSの連携
SNS SQS 何らかの処理アクションキュー登録 ポーリング
SQS+ジョブサーバ
SQS
ポーリングキュー登録
SQSをデータベースのバッファにする
ご清聴ありがとうございました