はじめに
AWS認定デベロッパーアソシエイト取得に向けた学習ログです。
学習期間
2020年7月13日~7月19日
学習ログ
Lambdaのデッドレターキューが利用されるケース
- 要件
- Lambdaは2回再試行を試みる
- Lambdaの非同期呼び出しが3回失敗した場合、デッドレターキューに入る
SQSのメッセージを10日間キューに格納したい
- 要件
- SQSキューのポーリング処理をLambdaが受け取る
- 実現方法
- メッセージの最大保持期間を変更する
- デフォルト設定は、4日間
- 最大14日間まで変更可能
- メッセージの最大保持期間を変更する
不正なドメインからAPI GatewayへのAPIアクセスを防ぎたい
- 実現方法
Cross-origin resource sharing
の制限をする
- CORSとは
- 追加のHTTPヘッダを利用して、あるオリジンで実行されているWEBアプリが、別のオリジンから選択されたリソースにアクセスできるようにブラウザに指示するメカニズム。
- 自分のオリジンとは異なるオリジン(ドメイン、プロトコル、ポート)をRequestすると、クロスオリジンhttpRequestを実行する
- CORSの例
- 別のドメイン
example.com
から、amazondomains.com
へ
- 別のサブドメイン
example.com
から、petstore.example.com
へ
- 別のポート
example.com
から、example.com:10777
へ
- 別のプロトコル
https://example.com
から、http:example.com
へ
- 別のドメイン
- REST APIリソースのCORSを有効にする
Lambdaを同一コードで、複数の各環境で動くようにする
- 実現方法
- 環境変数を使う
- コードの変更なしで、ライブラリに設定値を動的に渡すことができる
- 環境変数を使う
ワークロードを均等に分散させて、DynamoDBのパフォーマンス向上したい
- 要件
- ECSクラスタで動くDockerアプリ
- DyamoDBを使用
- 実現方法
- カーディナリティの高いパーティションキーを使用する
- カーディナリティとは
- cardinality
- 濃度
- カラムの値の種類の絶対値のこと
- カラムのデータの種類が、テーブルのレコード数に比べて高い場合、カーディナリティが高い
- cardinality
- パーティションキー設計の推奨アプローチ
高いカーディナリティを持つ attribute を使用する。つまり、e-mail id, employee_no, customerid, sessionid, ordered などの各 Item ごとに異なる値を持つ attribute を利用することです。
API GATEWAYのステージ変数
Lambdaプロキシ統合
REST APIを作成する docs.aws.amazon.com
シャードイテレータが予期せぬ終了をする際の対処法
Cognito Syncによるオフライン同期
Kinesis Data Streamsのスケールアップ
Q: Amazon Kinesis Data Streams の制限事項は何ですか?
Amazon Kinesis データストリームのスループットは、データストリーム内のシャードの数を増やすことによって制限なしにスケールするよう設計されています。ただし、Amazon Kinesis Data Streams を使用する際に考慮する必要のある特定の制限があります。
Q: Amazon Kinesis クライアントライブラリ (KCL) を使用して Amazon Kinesis アプリケーションの処理能力を自動的にスケールアップする方法を教えてください。
Amazon Kinesis アプリケーションの複数のインスタンスを作成し、これらのアプリケーションインスタンスを Auto Scaling グループの一部である Amazon EC2 インスタンスのセットで実行します。
CodeBuildのログ確認方法
- CloudTrailを有効化する
- CloudWatchでCodeBuildメトリクスを確認する