AWS Developer Associate 勉強メモ その9
AWS DVAに向けての見直しを含めた細かいところの勉強メモです。
LambdaとStep Function
- ワークフローごとにステートマシンを定義する。
- それぞれのLambda関数ごとにStep Functionのタスクを定義する。
S3の暗号化
- 顧客で暗号化キーを管理する場合はKMSでCMK(カスタマーキー)を管理する。
- S3側で暗号化(サーバーサイド暗号化)する場合はデフォルト暗号化を有効化し、上記のCMKでオブジェクトのアップロード時に暗号化する。
- オブジェクトのアップロード時に暗号化キーを一緒に提供することはないので注意。
CodeDeployとAuto Scaling
- CodeDeployの定義にAppSpecファイルを用いる。
- Auto ScalingグループをCodeDeployのタグタイプに指定する。(AppSpecに含める?)
DynamoDBへのHTTP APIでのアクセス
Lambda(JAVA)用のデプロイパッケージに含めるもの
- コンパイル済み関数のコード
- アプリケーションの依存関係
- これらをZIPにすることでデプロイパッケージとなる
CodeBuildでのビルド環境の指定
- ビルドを実行するために AWS CodeBuild を呼び出すときは、ビルド環境に関する情報を入力する必要がある。
- ビルド環境は、ビルドを実行するために CodeBuild が使用するオペレーティングシステム、プログラミング言語ランタイム、およびツールの組み合わせを表す。
- ビルド環境にはDockerイメージを指定する。
- COGNITO_USER_POOLSタイプのオーソライザーを作成し、APIメソッドに設定する。
オンプレミスでのログ監視
- AWSのログ監視サービスをオンプレミスで行う場合、CloudWatchエージェントをサーバーにインストールする。
- またIAMユーザーを構成して、エージェントによるログ収集を可能とする。
- EC2の場合はIAMロールだが、オンプレミスの場合はIAMユーザー(長期認証情報)となるので注意。
DynamoDBのクライアント暗号化
- DynamoDB暗号化クライアントを使用して生成されたキーで暗号化する。
- この際AWS「管理」のカスタマーキー(CMK)を使用したDynamoDBテーブルの暗号化を設定する。
- これによりソースからDynamoDBのストレージまで、データをエンドツーエンド保護する。
処理先が複数ある場合のS3イベントの通知方法
- ユースケース:画像を処理するための複数のサービスがあり、それぞれの処理開始時間などが異なる場合。
- S3のイベントをSNSに通知→SNSからそれぞれのサービスのSQSへとサブスクライブさせる。
- SNSを挟むことで複数のサービスへと分岐させることが可能になる。
Lambdaでのイベントソースマッピングの依存関係
- Lambdaエイリアスを設定し、エイリアスのARNにイベントソースマッピングを設定することでLambda関数毎にイベントソースマッピングを設定する必要がなくなる。
- Lambdaのバージョンが更新された場合は、エイリアスは新しいバージョンをポイントするようにする。