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

Post on 15-Apr-2017

964 Views

Category:

Engineering

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

俺とサーバレスアーキテクチャAWS Cognito + AWS API Gateway 編

2016-11-25 JAWS-UG 金沢 第 16 会勉強会ふぁらお加藤

Profile

Nameふぁらお加藤 / @PharaohKJHobbyCamera / subcultureJob & WorksPhalanXware (Freelancer)OCR system com / .NETISDB-T MFC / Linux C++Social Game PHP / JavaERP+CRM AngularJS / CordovaInformation App AngularJS / CakePHPFactory Automation .NET

ゴール• みんな大好き 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/1ID1 のペットを削除 ( かなしい )

この 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 サービスをなんでも使える。• API Gateway に流し込んだインタフェイスを叩く

SDK を生成してもらえた。• これでサーバなしでウェブアプリ作れるぞ!

ご清聴ありがとうございました

top related