#はじめに
2021年8月に、AWS認定デベロッパー – アソシエイト(DVA)に合格しました。
勉強時に使っていた、単語まとめノートを紹介したいと思います!
間違った記載がありましたら、ご指摘お願いいたします。
#AWS CodeDeploy
appspec.ymlファイル
ルートディレクトに定義される必須ファイル
#AWS CloudFormation
ヘルパースクリプト
cfnーinit:パッケージのインストール等で実施する
cfnーgetーmetadata:リソースメタデータの取得する
cfnーsignal:リソースが正常に作成、更新されたかをCreationPolicy、WaitCondition等の属性にシグナルを送る
cfnーhup:リソースメタデータの変更が検出されたときにカスタムフックを実行する
スタックセット(StackSets)
一回の操作で複数のアカウントやリージョンへスタックを作成、更新、削除できる機能
#IAM関連
アイデンティティベースのポリシーの種類
AWS管理ポリシー:AWSが作成および管理するポリシー(デフォルトで用意されているポリシー)
カスタマー管理ポリシー:ユーザが作成および管理するポリシー
インラインポリシー:IAMエンティティ (ユーザー、グループ、ロール) に直接埋め込むポリシー
1つの管理ポリシーは、複数のエンティティ (ユーザー、グループ、ロール) にアタッチできる(再利用可能性)
インラインポリシーは、エンティティと1対1の関係
通常、インラインポリシーではなく、管理ポリシーを使用することをお勧めされている
#AWS Elastic Beanstalk
デプロイ方法
All at onece
全てのインスタンスに新しいアプリケーションをデプロイして更新する
Rolling(ローリング)
インスタンスを複数のバッチに分割して、1バッチ毎に新しいアプリケーションをデプロイして更新する。(All at onceの分割版)
Rolling with an additional batch(追加バッチによるローリング)
1バッチ分の新しいインスタンスをデプロイ、その後ローリングと同じ(Rollingよりも可用性が高い)
Immutable(イミュータブル)
古いインスタンスと同じ数の新しいインスタンスに、新しいアプリケーションをデプロイして更新する。その後古いインスタンスは終了する
Traffic splitting(トラフィック分割)
インスタンスの一部だけに新しいアプリケーションをデプロイして更新する。受信トラフィックの一部を使用して新しいアプリケーションのヘルスをテストする
Blue/Green
Elastic Beanstalkのクローンを作成、クローンに新しいアプリケーションをデプロイ、環境URLをスワップする(新旧環境を入れ替える)
デプロイ方法 | デプロイ失敗の影響 | デプロイ 所要時間 |
ゼロ ダウン タイム |
DNSの 変更なし |
ロールバックプロセス | コードのデプロイ先 |
---|---|---|---|---|---|---|
All at once | ダウンタイム | 🕒 | × | ◯ | 手動再デプロイ | 既存のインスタンス |
Rolling | サービス停止状態の単一のバ ッチ。新しいアプリケーショ ンバージョンを実行している 、失敗前のすべてのバッチ。 |
🕒🕒 ※ |
◯ | ◯ | 手動再デプロイ | 既存のインスタンス |
Rolling with an additional batch |
最初のバッチが失敗した場合 、影響は最小限。それ以外の 場合は[Rolling]と類似。 |
🕒🕒🕒 ※ |
◯ | ◯ | 手動再デプロイ | 新規および既存のイ ンスタンス |
Immutable | 最小限 | 🕒🕒🕒🕒 | ◯ | ◯ | 新しいインスタンスの終了 | 新規のインスタンス |
Traffic splitting | 新しいバージョンにルーティ ングされて一時的に影響を受 けたクライアントトラフィッ クの割合 |
🕒🕒🕒🕒 ※※ |
◯ | ◯ | トラフィックの再ルーティ ングと新しいインスタンス の終了 |
新規のインスタンス |
Blue/Green | 最小限 | 🕒🕒🕒🕒 | ◯ | × | URLのスワップ | 新規のインスタンス |
※バッチサイズによって異なる
※※[evaluation time (評価時間)]オプションの設定によって異なる
#Amazon Elasticache
MemcachedとRedis
Amazon Elasticache Memcashedの特徴:マルチスレッド
Amazon Elasticache Redisの特徴:レプリケーション(高可用性)、Pub/Sub
#Amazon DynamoDB
RCU(Read Capacity Unit)、WCU(Write Capacity Unit)
計算問題でよく出るやつ
結果整合性のRCU:4KBを1秒間に2回読み込む
強力な整合性のRCU:4KBを1秒間に1回読み込む
WCU:1KBを1秒間に1回書き込む
DynamoDBストリーム
DynamoDB テーブル内の項目レベルの変更情報を格納する
AWS Lambda関数を呼び出すためのトリガーにできる
#AWS Lambda
メモリサイズ
128 MB~10,240 MBの間で設定する。
メモリサイズに比例して、CPU性能が割り当てられる
同時実行数
リージョンごとに1000。上限値を引き上げる場合AWSに申請する
Lambdaレイヤー
ライブラリなどの依存関係を含めた.zipファイルアーカイブ
#API Gateway
3種類の認証方法
①IAM認証
②Lambdaオーソライザー
③Amazon Cognitoユーザープール
#Amazon SQS
可視性タイムアウト
コンシューマーがメッセージを受信した後、指定期間(デフォルト30秒)、他のコンシューマが同一メッセージにアクセスできなくなる
遅延キュー
プロデューサーがメッセージを送信した後、一定期間、他のコンシューマが同一メッセージにアクセスできなくなる(可視性タイムアウトは受信後)
デッドレターキュー
通常のキュー(ソースキュー)が正常に処理できないメッセージの分離先キュー
キュータイプ
標準キュー:無制限のスループット、少なくとも1回の配信、先入れ先だしはベストエフォート
FIFOキュー:高スループット※、1回のみの配信、先入れ先出し
※毎秒最大300件のメッセージをサポート、1回あたり最大10件のメッセージというバッチ処理を実行する場合、毎秒最大3,000件のメッセージをサポート
設定値
メッセージサイズ:最大256KB
メッセージ保持期間:デフォルト4日、最大14日
メッセージ受信待機時間:デフォルト0秒(ショートポーリング)、最長20秒(ロングポーリング)
可視性タイムアウトの時間:デフォルト30秒、最長12時間
Amazon SQS 拡張クライアントライブラリ(Extend Client Library)
256KBを超えるサイズのメッセージを保存および処理するのに役立つ
S3と組み合わせて使うことがある
APIリクエスト
PurgeQueue:指定したSQSキュー内のメッセージを全て削除
DeleteQueue:指定したSQSキュー自体を削除
#Amazon CloudWatch
カスタムメトリクス(API Gateway)
Latency:API Gatewayがクライアントからリクエストを受け取ってからクライアントにレスポンスを返すまでの時間
IntegrationLatency:API Gatewayがバックエンドにリクエストを中継してからレスポンスを受け取るまでの時間
#AWS XーRay
セグメントへの情報の追加
注釈(Annotation):検索用。インデックス化されたキーと値のペア
メタデータ:デバックや分析用。インデックス化されていないキーと値のペア
API
GetTraceSummaries:トレースサマリのリストを取得
BatchGetTraces:トレース全体のリストを取得
#未分類
ARN(Amazon Resource Name)
AWSリソースを一意に識別する名前
例 arn:aws:dynamodb:ap-northeast-1:123456789012:table/mytable
DynamoDB、東京リージョン、123456789012アカウントのmytableというテーブル
AWS Systems Manager Parameter Store
AWS Systems Managerの1機能
パスワードなどのデータをKMSと連携して暗号化保存ができる
AWS Secrets Manager
AWS Systems Manager Parameter Storeと似ているサービス
保存データを定期的にローテーションできる
#さいごに
この記事が、DVAの資格取得を目指す方々へご参考になれば幸いです。