俺とサーバレスアーキテクチャ aws cognito + s3 + ses + lambda編
TRANSCRIPT
![Page 1: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/1.jpg)
俺とサーバレスアーキテクチャAWS Cognito + S3 + SES + Lambda編
2016-11-25 JAWS-UG金沢第16会勉強会
ふぁらお加藤
![Page 2: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/2.jpg)
Profile
Name
ふぁらお加藤 / @PharaohKJ
Hobby
Camera / subculture
Job & Works
PhalanXware (Freelancer)
OCR system com / .NET
ISDB-T MFC / Linux C++
Social Game PHP / Java
ERP+CRM AngularJS / Cordova
Information App AngularJS / CakePHP
Factory Automation .NET
![Page 3: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/3.jpg)
ゴール
• キャンペーンサイトなどを作る際、なので金沢市民全員がアクセスするような超すごい人数のアクセスを見込むし、宣伝もする予定。
• ていうかコケる可能性もあるし、客を見込んであれこれしたくない。流入量図るのもコストだしね。
• つまりサーバを借りずにキャンペーンサイトを作ればいいんや!その方法のひとつを学ぶ。
![Page 4: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/4.jpg)
キャンペーンサイトをするってことはアクセス過多になるのがうれしい悲鳴
![Page 5: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/5.jpg)
エンジニアにとっても嬉しい悲鳴
![Page 6: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/6.jpg)
だけどサーバには悲鳴(障害通知)をあげてほしくない・・・
![Page 7: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/7.jpg)
よし!バカ高いサーバ借りたろ!→ 維持費が超高い
![Page 8: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/8.jpg)
よし! それなりのサーバでクラスタリングや!
→ クラスタ設定が高い & 維持費が(略
![Page 9: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/9.jpg)
長期契約や一括契約すれば安くなる!→ キャンペーン終わればサーバも解約したい
![Page 10: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/10.jpg)
キャンペーン失敗やったわ・・・→ 誰もアクセスしないのに月額うん万・・・
![Page 11: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/11.jpg)
とりあえず S3
![Page 12: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/12.jpg)
Amazon S3 is
Amazon Simple Storage Service
![Page 13: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/13.jpg)
シンプル、とありますが、機能は盛りだくさん今回は静的ファイルホスティングを使う
![Page 14: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/14.jpg)
![Page 15: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/15.jpg)
ここへのアップロードは rsync でもブラウザから DnD でお好きなように(詳しくないデザイナさんとかでも簡単)
![Page 16: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/16.jpg)
これでサーバレスでコンテンツは用意できた!
![Page 17: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/17.jpg)
でもお高いんでしょう?
→ そもそもサーバ借りるより安いの?
![Page 18: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/18.jpg)
正直これが高すぎて困るようになったら大したものぐらい。数円〜 1日10万PVで$60以下(11/23に値下げ発表されましたね)
![Page 19: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/19.jpg)
キャンペーンにメールアドレスを登録させたい
![Page 20: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/20.jpg)
これはさすがにサーバいるでしょ?
メール送信のコード置かないと・・・メールサーバ借りないと・・・
![Page 21: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/21.jpg)
いりません
![Page 22: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/22.jpg)
あ、いりませんというのはウソか。正しくは AWSに従量制で全部あります。
![Page 23: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/23.jpg)
SES
![Page 24: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/24.jpg)
Amazon SES is
Amazon Simple E-Mail Service
![Page 25: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/25.jpg)
でもお高いんでしょう? 2nd impact
→ そもそもサーバ借りるより安いの?
![Page 26: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/26.jpg)
$0.010/1,000メール送信(+ データ転送料)
1万人に送って100円ほど
![Page 27: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/27.jpg)
どうやってメール送信させるの?
![Page 28: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/28.jpg)
S3 は静的ホスティングどころかhttp PUT も対応できる!
![Page 29: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/29.jpg)
http PUT されたら応じて関数が実行できる!
![Page 30: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/30.jpg)
lambda
![Page 31: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/31.jpg)
Lambda is
コード実行サービス、AWS上で発生するいろんなイベントをトリガーにコードを実行できる
![Page 32: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/32.jpg)
こんな感じで
![Page 33: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/33.jpg)
でもお高いんでしょう? 3rd strike
→ そもそもサーバ借りるより安いの?
![Page 34: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/34.jpg)
1,000,000 件無料、その後は $0.2/1M件
![Page 35: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/35.jpg)
node.js や Java が使えるAWS SDKも使えるから SES を叩くのは超簡単
![Page 36: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/36.jpg)
なるほど、でも誰でも PUT できるのは困るじゃん?認証は作らないといけないんじゃないの?
![Page 37: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/37.jpg)
Cognito
![Page 38: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/38.jpg)
Cognito is
ユーザーサインイン・サインアップ・データ保存場所提供サービス
![Page 39: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/39.jpg)
うまいことやるとこいつを使えば「匿名で」「一瞬だけ」認証し、そのサイトからのみ PUT させられる
![Page 40: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/40.jpg)
JavaScript で Cognito のログイン書いておけば OK
![Page 41: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/41.jpg)
![Page 42: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/42.jpg)
まとめ
• サーバーレス = すなわちEC2でOS・ミドルウェアのメンテナンスが必要なものを借りずに構築できた。
• アクセス数が残念なことになろうが、大変なことになろうが、それを見積もることを全然しなくてもスケールできるものがシンプルにできた。
![Page 43: 俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編](https://reader033.vdocuments.site/reader033/viewer/2022050916/5877024b1a28ab890e8b4a53/html5/thumbnails/43.jpg)
ご清聴ありがとうございました