AWS主催の『イチから理解するサーバーレスアプリ開発』に参加してきました
5/9(木)に開催されたAWS主催のSeverlessの開発に関するイベントに参加してきました。 場所はAWS Loftで満席に近く、Severlessの注目度が高いなぁと改めて感じました。
Agenda
- サーバーレスのおさらい
- 利用パターン、事例および主要サービスについて
- サーバーレスアプリケーション向きのDB設計ベストプラクティス
- エラー制御・監視の勘所
サーバーレスのおさらい
- 登壇資料は以下になります。
https://d1.awsstatic.com/serverless-jp/seminars/20190509_serverless_public.pdf
- サーバーレスとは
- サーバがないということはなく、サーバの存在を意識しない
- サーバー管理は不要
- 柔軟なスケーリング
- 十二分に考慮された高可用性
- アイドル時のリソース確保が不要
- ロジック開発に注力できる
- 責任範囲を小さくできる
- これまでは3階層構造
- 規模の見積もり
- 可用性設計
- データ保全の検討
- サーバレスでは
- 自動スケール
- 設計済みのリトライ
- データ信頼性の担保
- お客様の効果例
- 生産性が5倍
- コード量が3分の1に
- 短期実装可能
- 利用者がやること
- アプリケーション設計
- ロジック開発、DB設計
- 監視、エラー制御
- Function as a Service: :Lambda が代表的
- サーバがないということはなく、サーバの存在を意識しない
- リソース管理とエラー制御の基本
- 不適切なリソース利用の防止 -> 同時実行数
- 効率的なリソースの再利用 -> 処理タイムアウト
- 基本的には、処理リソースの単位(ファンクション)でエラー処理を考慮する
- フロー管理(Step Functions)も可能
- サーバーレすに置けるデータベースの考え方
- パターンで考える
- 実戦でよく使われるユースケースパターン
サーバーレスアプリケーション向きのDB設計ベストプラクティス
- 登壇資料は以下になります。
- サーバーレスアプリケーションとデータベースの種類
- データベース設計プロセス
エラー制御・監視の勘所
- 登壇資料は以下になります。
https://d1.awsstatic.com/serverless-jp/seminars/20190509_Serverless_monitor_error.pdf
- DynamoDBの監視とエラー対策
- Step FUnctionsの監視
- Lambdaの方よりもStep Functionでスケールできない時もある
- リトライ、タイムアウトなどをきちんとバンドルする
- Lambdaに関しては以下を参照
- サーバーレスでも運用レスではない
所感
DB設計の話しで、DynamoDBの設計プロセスと設計する際に意識する点はとても参考になりました。 通常のRDBではカラムを横に並べていくが、DynamonDBではGSIを考慮して縦に並べた方が良いということでした。 登壇資料の中の後半にドリル形式でDynamoDBの設計についてあるので、興味がある人はやってみることをお勧めします。