【レポート】「実践SERVERLESS」に参加しました。
はじめに
AWS Lambdaが出てからだいぶ経ちますが、プロダクションとしての実績も
チラホラ聞こえるようになり何かしら勉強会ないかな?と思っていたところに
調度良い勉強会があったため、参加しました。
最初は補欠でしたが、当日になり繰り上げ当選となったのは
ほんと運が良かったと思います。
後日、スライドが上がると思いますが、取り急ぎメモした内容を書きます。
セッション
Introducing Serverless Computing
Serverlessが使えるところや事例を聴くことができました。
活用するシステム一例
リアルタイムファイルプロセッシング
- イメージ変換(サムネイル作成)
- ドキュメントのメタデータのインデックス化
- ログの処理
- メディア・コンテンツのバリデーション
リアルタイムストリームプロセッシング
- ストリーム分析
- メトリクス作成
- インデクシング
Serverless Web and Mobile Application
下記のものを使うのが定番となっている。
新しいエコシステム
AlexaアプリとSlackを使い、ServerlessでのBotを実現できる。
AWS CloudTrailでログ管理
APIの呼び出しログを管理する「CloudTrail」と連携してログ監視を行える。
事例
海外
- VidRoll
- PlayOn! Sports
- easy ten
国内
Lambda と API Gateway の管理
サーバーレスの役割
- どこをサーバーレスにするか?
- いろんなところでできる。
- フロントエンド
- 通信データ取得や登録を行うところ
- バックエンド
- その他
管理方法の選定
管理ツールはたくさんある。 →ツールごとに観点が違う。
Lambda管理ツールを選ぶ4つのポイント
ツールの特徴
- API Gatewayの併用
- 対象は、API Gateway + Lambda、Lambdaのみの2パターン
- セットはフロントエンドを対象としているツールが多い
- Lambdaのみを対象としているツールは、汎用的に導入しやすい
他のリソース管理
観点は以下のとおり
- システムの規模の大きさによって変わってくる。
- 大きくなったら、分割するほうが良い。
- 小さい場合は、まとめた方が良い。
ロールバック
リリース時などに障害が起き、前の状態に戻したい場合がある。
その際に管理ツールでできるかどうか。
- 対応しているツールとしていないツールがある。
- 対応しているのは手早くロールバックできる。
使い回し
一度、作ったものはある程度汎用的の方が良い。
ただし、考えて作らないといけない。
- そのアーキテクトは他で使いまわせるか?
- 汎用性にする必要はあるか?
- 設定値は実行時パラメータを使うか?
- 環境変数は必要か?
管理ツール6種
今回は6種ですが、他にもたくさんあるとのこと。
- AWS Cloud Formation
- Serverless
- Apex
- Lambdaに特化
- Terraformと連携できる
- Gulp (node-aws-lambda)
- Swagger hub
- Swaggerのクラウドサービス
- IAMのポリシーも作ってくれるので便利
- Chalice (Beta)
- Flourish
- Serverless Confで発表されたもので、そろそろ出てくる?
まとめ
- 何を重要視するか?(フロントエンド全部か一部だけか)
- プロジェクトにあった、最適なものを選択すること
- まずは、触ってみてとのこと
実際に使う Cognito UserPools
すでに資料は公開されています。
cognito-userpools-in-production // Speaker Deck
Serverlessというと確かにLambdaだが、Cognito UserPoolsを使って
Serverlessのシステムを作成することができる。
デモで使用したサンプルは、以下のもの
※この辺は、自分にとって難しく「便利そう!」というぐらいしかわかりませんでした・・・
まとめ
事例や管理ツールについて詳しく聞けたのが良かったです。
欲を言うと運用方法(監視など)も聞ければ良かったなぁと思っています。
実際に運用されているシステムってどうやっているのでしょうか?気になります。
「Serverless Web and Mobile Application」であれば、比較的手軽に試せそうなので
いろいろ試して、ノウハウを蓄積していこうと思います。