募集開始になってすぐ申し込んだ「実践 SERVERLESS」に参加してきた.
Introducing Serverless Computing / @Keisuke69
- AWS で Serverless と言うと Lambda
- 特徴はアーキテクチャ上に EC2 が出てこないこと
- Alexa と Slack と連携して Serverless な Bot を動かす事例がある
- CloudTrail で S3 に出力されたログを Lambda で監視して特定の設定変更を検知する事例がある
- VidRoll で広告配信基盤を Lambda にリプレイスした事例がある
AWS Lambda と Amazon API Gateway の管理 / @suwa-yuki
- Serverless と言っても様々なレイヤーに適用できる
- フロントエンドだと
- API Gateway + Lambda
- Cognito + API Gateway + Lambda
- バックエンドだと
- SNS + Lambda
- S3 + Lambda
- Kinesis + Lambda
- Dynamo + Lambda
- 他
- Cognito User Pools + Lambda
- CloudFormation (Lambda-backed Custom Resources)
- Slack + API Gateway + Lambda
- フロントエンドだと
- Serverless 管理ツール
- CloudFormation
- Lambda function を作成できる
- Lambda function のコードを json にインラインで定義することもできる
- AWS::Lambda::Function - AWS CloudFormation
- Serverless
- Apex
- Lambda に特化しているため API Gateway は非対応
apex invoke
コマンドでデプロイした Lambda function を実行することもできる- GitHub - apex/apex: Build, deploy, and manage AWS Lambda functions with ease (with Go support!).
- Gulp + node-aws-lambda
- SwaggerHub
- Chalice
- awslabs で公開されている
- 付属機能で IAM ポリシーを生成できる
- GitHub - awslabs/chalice: Python Serverless Microframework for AWS
- Flourish
- AWS から公式に公開される予定(近日?)
- SwaggerHub に似てる?
- CloudFormation
最高に勉強になった発表だった!
今まで Lambda を使うときは自分で ZIP を作成して管理コンソール(もしくは API)から Lambda function を作成していて,あくまで検証目的で使っていたので,管理ツールは使ったことがなかった.もし業務で使うとなったらデプロイの仕組みは整える必要があるから,ロールバックの要否だったり,環境変数の管理など,気になるポイントも多く,管理ツールを使うと便利なんだろうなと感じた.特に API Gateway は管理コンソールを使ったとしても設定が複雑だし,画面遷移も混乱するから,管理ツールに任せられたら安心感がある.ただ質疑応答にもあったけど,結局 API を叩いているため,管理ツールで非対応の設定は管理コンソールを使う必要があって,完全自動化は難しいとのことだった.だからこそ AWS 純正の CloudFormation や Flourish を使うメリットがあるという話も出ていた.
使ったことはないけど cloudinfra-audio Podcast で紹介されていた Lamvery も Lambda の管理ツールだよなーと思ったりした.
実際に使う Cognito UserPools / @yuukigoodman
- Serverless とは「非常駐型プロセス」のことである
- 目的は EC2 無しで運用コストと金銭コストを削減する
- 別に Lambda だけじゃない
- Cognito も Serverless だ
- Cognito Identity
- Cognito Sync
- Cognito User Pools
- AWS が提供する Identity Provider
- デモ
- 簡単にログイン機構を作れる
- パスワードポリシーも設定できる
- 電話番号などログイン時に特定の属性も取得できる
- Lambda Trigger を使って Cognito からビジネス的な KPI を集計したりすることもできる
Cognito の前提知識が全く無かったから,話を聞きながら Cognito のことを調べたりして,勉強していた.アプリケーションを実装するときにログイン機構は結構重要で,その部分をフルマネージドに Cognito に任せられるのは個人的に未来感があると感じたし,確かに Serverless だな!と感じた.デモも凄く良かった.
関連記事
まとめ
Lambda の管理ツールの多さに驚いた.試しに使ってみようと思う.特に近日公開となっている Flourish には期待かな!早いとこ Lambda を実戦投入できそうな案件を探して「Serverless やってるぞ!」って言いたいなぁ!