ハンズオン日記Vol.3:サーバレス編その1
こんにちは。
本日も公式ハンズオンをやっていきます。
今回はサーバレスについてです。
サーバレスのサービスは触るの初めてなので楽しみです。
ハンズオンと同時に気になった箇所はデベロッパーガイドも見ていきます。
ハンズオンの動画は2019年、
こちらの記事は2022年9月時点の情報となります
アジェンダ
# | Session |
1 | Serverless アーキテクチャの概要 |
2 | AWS Lambda の概要 |
3 | AWS Lambda ハンズオン① Lambda を単体で使ってみる |
4 | AWS Lambda ハンズオン② 他のサービスを呼び出してみる |
5 | Amazon API Gateway の概要 |
6 | Amazon API Gateway ハンズオン① API Gateway を単体で使ってみる |
7 | Amazon API Gateway ハンズオン② API Gateway と Lambda を組み合わせる |
8 | Amazon DynamoDB の概要 |
9 | Amazon DynamoDB ハンズオン①テーブルを作ってみる |
10 | Amaozn DynamoDB ハンズオン② API Gateway と Lambda と DynamoDB を組み合わせる |
使用するサービスはAPI Gateway と Lambda と DynamoDBです
全体を通して
学んだこと
-
Lambda
- Java、Go、PowerShell、Node.js、C#、Python、Rubyをサポート
- メモリは10GBまで使用できるようになっている
- vCPUは最大で6つ
- タイムアウトは15分
- IAMロールで許された動作しかできない
- 許可の確認は「設定」→「リソースの概要」から確認できる
- 呼び出しもとリソースで同期・非同期が変わる
- ライフサイクル
- Lambdaはコンテナ上で実行される
- 利用可能なコンテナがない場合はコンテナ生成から始まる(コールド)
- 利用可能なコンテナは再利用でされる(ウォーム)
- 基本設定のタイムアウト値やメモリは「Integer」 型にしないと注意書きが出る
- ソース変更時は保存だけでなく、Deployする必要がある
- グローバルスコープに記載したものはウォームスタート時に再利用される
- 実際の開発時は例外処理を書くようにしよう
- API Gateway
- DynamoDB
- フルマネージドのNoSQLデータベース
- 3つのAZに保存される
- AutoScallingできる
- ストレージの容量制限なし
- 料金体系(キャパシティを定義する場合)
- Read、Writeキャパシティユニット
- ストレージ利用料金
- +α
- Primary Key
- Partition Key(必須)
- Sort Key
- 値
- Attributes
- Primary Key以外はアイテム間で揃ってなくていい
- Attributes
- Black Beltを確認して理解しよう
- キャパシティユニットについて
- R/Wどちらも1ユニットにつき、1秒間で1回
- Readは最大4KB(強い一貫性を持たなければ2回)
- Writeは最大1KB
- 考え方
- ピーク時に1KB以下の読み込みが秒間130ある
- →キャパシティは余裕をみて150にする
- キャパシティの予想が立てられない場合はオンデマンドで構築後、運用してキャパシティの予測を立てていい
- R/Wどちらも1ユニットにつき、1秒間で1回
- 操作方法
- HTTP APIにて操作を行う
- 作成
- Put Item
- BatchWriteItem
- 更新
- UpdateItem
- 取得
- GetItem(単一データの場合)
- Query(複数データ:キーの値に基づいて取得)
- Scan(複数データ:インデックスの全てのデータを呼び出す)
詰まったところ
課題
- DynamoDBのデータ構造について理解を深める
- DynamoDBのセカンダリインデックスについて理解を深める
- Lambdaのデプロイ、API Gatewayの設定などCLIでどこまでできるか確認する