Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
俺とサーバレスアーキテクチャ
AWS Cognito + AWS API Gateway 編
2016-11-25 JAWS-UG金沢 第16会勉強会
ふぁらお加藤
Profile
Name
ふぁらお加藤 / @PharaohKJ
Hobby
Camera / subculture
Job & Works
PhalanXware (Freelancer)
OCR system com / .NET
ISDB...
ゴール
• みんな大好き REST API をサーバレスで作ることがで
きる
• 加えて、iOS / Android でそのRESTを叩くSDKまで作
ってくれる!
• らを学びサーバレスでREST API 作りたくなる
• そしてサーバレスで...
サーバレス とは
ここでは ミドルウェアレイヤーより以下のメン
テナンスが不要なサービスと定義する
かつ、充分に安い、お金でスケールする。
そもそもの話を考えて欲しい
ウェブアプリ作りたいなーってときにサーバーは
「しょうがなく」借りている
まぁしょうがないサーバ借りるレンタル料金払う
にしてもなんで使ってない時もレンタルしてるこ
とになってんの?
ユーザーがアクセスのあったときだけ
サーバ貸してくれよ
そんな「本来の要求」の大権現が
サーバーレス アーキテクチャ
さて本題
REST API 作ってますか?
リソースをURLにマップし
GET PUT POST DELETE
でリクエストされ、レスポンスをかえす
例
GET /pets
ペット一覧取得
POST /pets
ペットを追加
PUT /pets/1
ペットID1を更新
DELETE /pets/1
ID1のペットを削除(かなしい)
この REST API のインタフェイス定義専用
のツール swagger をご存知ですか?
swagger
API 定義を YAML や JSON でかける
(YAMLのほうが人類に読めるよね)
とにかく、エディタもあるので、これでまずは
インタフェイスだけを定義する
さて、定義したらこれを動かすところが
ほしい・・・
API Gateway
Amazon API Gateway is
ウェブアプリ、リソース API 作成口にできる
サービス
こいつにさっきの定義をインポートして
やることができる
つまり、特にウェブアプリをインターネットに
サーバ借りて置かなくてもエンドポイントを
作ることができる!
エンドポイントはわかった実装はどうするの!?
ただのリバースプロキシでサーバいるじゃん!?
lambda
Lambda is
コード実行サービス、AWS上で発生するいろんな
イベントをトリガーにコードを実行できる
node.js や Java が使える
AWS SDKも使える
つまり、AWSの各種サービスを叩ける!
なんでもできる!
なんでもされたら困る・・・認証がいる
Cognito
Cognito is
ユーザーサインイン・サインアップ・
データ保存場所提供サービス
これでログイン(Facebookやらtwitterも対応)して
くれればその認証情報を API Gateway までもっ
ていける
インターフェイス・実装はわかった
あとはこの URL をモバイルデバイスから叩くだ
けだよね
そのだけがめんどくさいなー。
なんとアクセス用各種SDKを自動で
生成してくれます!
SDKの生成
JavaScript SDK petsGetRequest がみえる
まとめ
• swagger 型式で REST API を定義し、それを API
Gateway に流し込める。
• API Gateway へは Cognito で認証つきアクセスを提供
でき、その先で AWS サービスをなんでも使える。
• ...
ご清聴ありがとうございました
Upcoming SlideShare
Loading in …5
×

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

2,085 views

Published on

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

Published in: Engineering
  • Be the first to comment

俺とサーバレスアーキテクチャ 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. ご清聴ありがとうございました

×