AWS認定デベロッパーアソシエイト取得に向けた学習記録です。
試験勉強で気になったところをまとめています。
追記:AWS認定デベロッパーアソシエイトに合格しました。勉強方法など以下の記事で紹介しているので参考にしてください。
スポンサーリンク
目次
- 1 学習期間
- 2 学習記録
- 2.1 AWS APIリクエストの署名
- 2.2 Codeシリーズの設定ファイル
- 2.3 Amazon Kinesis Data Streamsのストリームデータに対してデータ暗号化
- 2.4 CodeDeployのフックイベント
- 2.5 S3のサーバーアクセスログ
- 2.6 Elastic Beanstalk環境でHTTPSエンドポイントの公開
- 2.7 S3バケットの個人用スペースをセットアップ
- 2.8 DynamoDBテーブルから特定の属性サブセットを取得するCLIオプション
- 2.9 Lambda関数の一時ファイルの保存場所
- 2.10 ECSでのX-Rayデーモンの利用するための環境変数
- 2.11 Amazon Kinesis Data Streamsのデータ保持期限
- 2.12 DynamoDBのBatchGetItem APIでデータ処理リクエストの回数を減らす
- 2.13 AWS STSのAssumeRole APIで一時認証情報でアクセス許可する
- 2.14 Amazon Kinesis Data Streamsのデータフローに応じた調整方法
- 2.15 DynamoDBテーブルに対して主キーを構成できる属性の最大数
- 2.16 Elastic BeanstalkとX-Rayの統合
- 2.17 CloudWatchとAPI Gatewayのメトリクスを使用したAPIの実行の監視
- 2.18 AWS KMSのAPIでデータキーの暗号化されたコピーのみを返す方法
- 2.19 データベース認証のシークレット情報を高頻度で使用したスパイクアクセスが予想される場合のパラメタ情報の管理
- 2.20 RDS MySQLのデータベースが応答しなくなったときの障害調査
- 2.21 Lambda関数の同時実行数が1000以上の場合の対応
- 2.22 WS SAMを利用したサーバレスアプリケーションのデプロイの自動化に必要なコマンド
- 3 まとめ
学習期間
- 2021/08/21 – 2021/08/30
学習記録
AWS APIリクエストの署名
- AWSにHTTPリクエストを送る際、署名バージョン4に従ったアクセスキーを利用してアクセス許可を設定することができる。
- 一部のリージョンでは署名バージョン2をサポートしている。
Codeシリーズの設定ファイル
- CodeBuild:buildspec.yamlファイルをルートディレクトリに配備
- CodeDeploy:appspec.ymlファイルをルートディレクトリに配備
Amazon Kinesis Data Streamsのストリームデータに対してデータ暗号化
- HTTPSエンドポイントを使用することで、データ通信の際にデータの暗号化する。
- サーバーサイド暗号化を利用することで、保存中のデータに対して一時的に蓄積されたストリームデータを暗号化する。
CodeDeployのフックイベント
- Hooks機能で以下のライフサイクルイベントに対して、デプロイフェーズに応じた任意のスクリプトを実行することができる。
- ValidateService
- デプロイイベントの最後の段階でデプロイが正常に完了したことを確認するために使用
- BeforeInstall
- 置き換えタスクセットが作成される前にタスクを実行
- この時点でロールバックは不可
- AfterInstall
- 置き換えタスクセットが作成されてターゲットグループの1つがそれに関連付けられた後にタスクを実行
- この時点でロールバックは可能
- BeforeAllowTraffic
- 2番目のターゲットグループが置き換えタスクセットに関連付けられた後で、かつ、トラフィックが置き換えタスクセットに移行される前にタスクを実行
- この時点でロールバックは可能
- AfterAllowTraffic
- 2番目のターゲットグループが置き換えタスクセットにトラフィックを提供した後で、タスクを実行
- この時点でロールバックは可能
- ValidateService
S3のサーバーアクセスログ
- メリット:S3バケットに対するリクエスト詳細が記録される
- デメリット:S3バケットへのアクセスが増加するとログが蓄積されてしまうため、コストが増える
Elastic Beanstalk環境でHTTPSエンドポイントの公開
- HTTPSエンドポイントの公開の設定を記載したElastic Beanstalkの設定ファイルを
.ebextensions
ディレクトリに配備する。.ebextensions/securelistener-alb.config
S3バケットの個人用スペースをセットアップ
- 動的変数を使用してIAMポリシーを1つ作成し、全てのユーザーが属するIAMグループにアタッチする。
- IAMポリシーはアクセス制御するリソース、プレフィックスに対して個人名など指定することができる。
- IAMポリシーに個人名に変換される変数を利用することで、各ユーザーで制御されるIAMポリシーを設定する。
DynamoDBテーブルから特定の属性サブセットを取得するCLIオプション
--projection-expression
- デフォルトだとすべての項目属性ので一部の属性のみを取得する際に使用する。
- 複数指定はカンマ区切りで指定する。
Lambda関数の一時ファイルの保存場所
- ローカルディレクトリー
/tmp
- 最大容量は512MB
ECSでのX-Rayデーモンの利用するための環境変数
AWS_XRAY_DAEMON_ADDRESS
Amazon Kinesis Data Streamsのデータ保持期限
- Kinesisストリームのデータレコードには保存期間がある。
- デフォルト:24時間
- 最大:168時間
DynamoDBのBatchGetItem APIでデータ処理リクエストの回数を減らす
- DynamoDBはBatchGetItem APIを使用することで複数のアイテムのまとめて読み取るバッチ処理が実行できる。
- BatchGetItemはプライマリキーを使用して複数のテーブルから複数の項目の属性を返却する。
- 1回あたりの取り出し可能最大数:100アイテム
- サイズ制限:合計16MB
AWS STSのAssumeRole APIで一時認証情報でアクセス許可する
- AssumeRole APIでARNを指定し、信頼ポリシーに問題がないことが確認できたら一時認証情報を発行する。
Amazon Kinesis Data Streamsのデータフローに応じた調整方法
- Amazon Kinesis Data Streamsはシャード数によってパフォーマンスが決定する。
- データフローが増加した場合、シャードを分割して数を増加させる。
- データフローが減少した場合、シャードをマージして数を減少させる。
DynamoDBテーブルに対して主キーを構成できる属性の最大数
- 最大で2つの属性を利用した複合キーを作成することができる。
Elastic BeanstalkとX-Rayの統合
- 2つの方法がある。
- Elastic BeanstalkコンソールでX-Ray統合を有効化する。
- 設定ファイルにX-Rayデーモンの設定をする。
.ebextensions/xray-daemon.config
CloudWatchとAPI Gatewayのメトリクスを使用したAPIの実行の監視
- IntegrationLatencyメトリクス
- バックエンドの応答性を測定する。
- API Gatewayがバックエンドにリクエストを中継してから、レスポンスを受け取るまでの時間。
- Latencyメトリクス
- API呼び出しの全体の応答性を測定する。
- API Gatewayがクライアントからリクエストを受け取ってから、クライアントにレスポンスを返すまでの時間。
- 4XXError
- 指定された期間に取得されたクライアント側エラーの数。
- 5XXError
- 指定された期間に取得されたサーバー側エラーの数。
- CacheHitCount
- 指定された期間内にAPIキャッシュから配信されたリクエストの数。
- CacheMissCoun
- APIキャッシュが有効になっている特定の期間における、バックエンドから提供されたリクエストの数。
- Count
- 指定された期間内のAPIリクエストの合計数。
AWS KMSのAPIでデータキーの暗号化されたコピーのみを返す方法
GenerateDataKeyWithoutPlaintext
を使用して暗号化されたコピーのみ取得する。GenerateDataKey
はデータキーのプレーンテキストと暗号化されたコピーを取得する。
データベース認証のシークレット情報を高頻度で使用したスパイクアクセスが予想される場合のパラメタ情報の管理
- AWS Secrets Manager
- 有料サービス。
- 性能上限が高いため、パラメタやシークレット情報に対するスパイクアクセスが予想される場合こちらが有力候補になる。
- RDS for MySQL、PostgreSQL、Auroraの認証情報保存など連携できるサービスは限られている。
- AWS Systems Manager
- 無料サービス。
- パスワード、データベース文字列、ライセンスコードなどのデータをパラメータ値として保存する。
- ほとんどのサービスと連携できる。
RDS MySQLのデータベースが応答しなくなったときの障害調査
- RDSのスロークエリログの設定を有効にする。
- トラブルシューティングのために実行に時間がかかったすべてのSQLステートメント内容を収集することができる。
Lambda関数の同時実行数が1000以上の場合の対応
- Lambda関数の同時実行数は最大1000。
- 同時実行数が1000を超過する 場合はAWSへの上限緩和申請が必要になる。
WS SAMを利用したサーバレスアプリケーションのデプロイの自動化に必要なコマンド
- 以下のSAMのコマンドをCloudFormationに組み込んでサーバレスアプリケーションのデプロイを自動化することが可能
sam package
sam deploy
まとめ
AWS認定デベロッパーアソシエイトの学習記録でした。
これからも毎日コツコツ勉強していきます。
スポンサーリンク
スポンサーリンク