AWS / PHP / Python ちょいメモ

amazon web service , PHP, Python を使ったときのメモ。日本語でググってもわからなかった事を中心に。

JAWS-UG CLI専門支部 SNSハンズオン オンライン参加

前回のSQSハンズオンに続き、参加させていただきました。

153R SNS入門

jawsug-cli.connpass.com

事前準備と概要

事前に公開されている Cloud9 を使った AWS CLI環境の構築 を用意しておきましょう。

bash を活用した手順なので、使い回しが楽のがGood!

コマンドはコピペで用意されているので、黒い画面が苦手な方でも大丈夫です。

仕組みとか

サービスの特色で比較。どちらも、中間レイヤー的な存在で、マイクロサービスの疎結合な作りなどに活用する。

  • SNS : PUSH型 , トピック を扱う
  • SQS : PULL型 , キュー を扱う

※発想としては UNIX の パイプのようなもの

  • Publisher (発行者)が トピックに メッセージを送信
  • Subscriber (購読者) のところに、メッセージが配信される


Subscriberとなれる人:5つ

  • 人間が受け取る
    • e-mail
    • SMS
  • AWSリソース
    • SQS
    • Lambda
  • WebAPI
    • HTTP/S

使い方

「通知 : Notification」サービスとして使うのが王道ではないか。

一番簡単な使い方は e-mail 通知。

開発当初は、e-mail通知からスタートしておいて、運用が始まったら Lambdaも購読者として登録してSlack通知も追加。

このように行っても、Publisher側の変更は発生しない。 (疎結合の良いところ)

使い方とか

e-mailは必ず配信に成功しない

SNS配信に失敗したものを、SQSデッドレター Queue にためておくという方法がある

e-mailは送りまくると良くない

SQSでキューイングして、ボチボチ送る方法が、Blackbeltにかいてあるらしい

開発をすすめる

同じトピックを、本番環境と開発環境で購読する。

開発環境側には、フィルタリングなどもかけてから流すこともできる。

Pinpoint がでてきた

いまだと、モバイル通知やるならこっち。

よほど低いレイヤーでやりたいときは、SNSという使い分け。

メールテンプレート

メールテンプレートのカスタマイズの自由度は低いので、その時は Lambda でうけて SES で送るのが王道だろう。


使えるプロトコル

--protocol (string)


The protocol you want to use. Supported protocols include:


http – delivery of JSON-encoded message via HTTP POST
https – delivery of JSON-encoded message via HTTPS POST
email – delivery of message via SMTP
email-json – delivery of JSON-encoded message via SMTP
sms – delivery of message via SMS
sqs – delivery of JSON-encoded message to an Amazon SQS queue
application – delivery of JSON-encoded message to an EndpointArn for a mobile app and device.
lambda – delivery of JSON-encoded message to an Amazon Lambda function.

関連

e-mailの場合には Confirm メールが飛ぶ仕組みで、スパムなどにつながらないので良い。

メールの下にある unsubscribe リンクは、 attribute で無効化することができる

これかな?

その他

茅場町のオフラインハンズオンは、けっこうハードそうだけと、手が覚えてくれそうだw

オンライン版は、毎回のテーマの他に、QAにリアルタイムで反応していただけるのが良い。

日々利用されてるかたのノウハウが聞けるのは大きい。


あと毎回、お話いただいてるのですが AWS は 公式ドキュメントが充実してるので、それを参照するようにオススメいただいた。

SNSは、他のサービスに比べると小粒な方(PDF換算で200page程度で、基本は100page)らしいので、まずは流し読みできたらと思います。


波田野さん、CLI専門支部の皆さん、ありがとうございました!!