俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編

316 views

Published on

俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編

Published in: Engineering
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
316
On SlideShare
0
From Embeds
0
Number of Embeds
174
Actions
Shares
0
Downloads
1
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編

  1. 1. 俺とサーバレスアーキテクチャ AWS Cognito + AWS API Gateway 編 2016-11-25 JAWS-UG金沢 第16会勉強会 ふぁらお加藤
  2. 2. 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
  3. 3. ゴール • みんな大好き REST API をサーバレスで作ることがで きる • 加えて、iOS / Android でそのRESTを叩くSDKまで作 ってくれる! • らを学びサーバレスでREST API 作りたくなる • そしてサーバレスでウェブアプリも作りたくなる
  4. 4. サーバレス とは
  5. 5. ここでは ミドルウェアレイヤーより以下のメン テナンスが不要なサービスと定義する
  6. 6. かつ、充分に安い、お金でスケールする。
  7. 7. そもそもの話を考えて欲しい
  8. 8. ウェブアプリ作りたいなーってときにサーバーは 「しょうがなく」借りている
  9. 9. まぁしょうがないサーバ借りるレンタル料金払う にしてもなんで使ってない時もレンタルしてるこ とになってんの?
  10. 10. ユーザーがアクセスのあったときだけ サーバ貸してくれよ
  11. 11. そんな「本来の要求」の大権現が サーバーレス アーキテクチャ
  12. 12. さて本題
  13. 13. REST API 作ってますか?
  14. 14. リソースをURLにマップし GET PUT POST DELETE でリクエストされ、レスポンスをかえす
  15. 15.
  16. 16. GET /pets ペット一覧取得
  17. 17. POST /pets ペットを追加
  18. 18. PUT /pets/1 ペットID1を更新
  19. 19. DELETE /pets/1 ID1のペットを削除(かなしい)
  20. 20. この REST API のインタフェイス定義専用 のツール swagger をご存知ですか?
  21. 21. swagger
  22. 22. API 定義を YAML や JSON でかける (YAMLのほうが人類に読めるよね)
  23. 23. とにかく、エディタもあるので、これでまずは インタフェイスだけを定義する
  24. 24. さて、定義したらこれを動かすところが ほしい・・・
  25. 25. API Gateway
  26. 26. Amazon API Gateway is ウェブアプリ、リソース API 作成口にできる サービス
  27. 27. こいつにさっきの定義をインポートして やることができる
  28. 28. つまり、特にウェブアプリをインターネットに サーバ借りて置かなくてもエンドポイントを 作ることができる!
  29. 29. エンドポイントはわかった実装はどうするの!? ただのリバースプロキシでサーバいるじゃん!?
  30. 30. lambda
  31. 31. Lambda is コード実行サービス、AWS上で発生するいろんな イベントをトリガーにコードを実行できる
  32. 32. node.js や Java が使える AWS SDKも使える
  33. 33. つまり、AWSの各種サービスを叩ける! なんでもできる!
  34. 34. なんでもされたら困る・・・認証がいる
  35. 35. Cognito
  36. 36. Cognito is ユーザーサインイン・サインアップ・ データ保存場所提供サービス
  37. 37. これでログイン(Facebookやらtwitterも対応)して くれればその認証情報を API Gateway までもっ ていける
  38. 38. インターフェイス・実装はわかった あとはこの URL をモバイルデバイスから叩くだ けだよね
  39. 39. そのだけがめんどくさいなー。
  40. 40. なんとアクセス用各種SDKを自動で 生成してくれます!
  41. 41. SDKの生成
  42. 42. JavaScript SDK petsGetRequest がみえる
  43. 43. まとめ • swagger 型式で REST API を定義し、それを API Gateway に流し込める。 • API Gateway へは Cognito で認証つきアクセスを提供 でき、その先で AWS サービスをなんでも使える。 • API Gateway に流し込んだインタフェイスを叩くSDK を生成してもらえた。 • これでサーバなしでウェブアプリ作れるぞ!
  44. 44. ご清聴ありがとうございました

×