AWSデベロッパーアソシエイト（DVA）単語まとめ

#はじめに
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をスワップする（新旧環境を入れ替える）


| デプロイ方法 | デプロイ失敗の影響 | デプロイ<br>所要時間 | ゼロ<br>ダウン<br>タイム | DNSの<br>変更なし | ロールバックプロセス | コードのデプロイ先 |
|:--|:--|:--|:--|:--|:--|:--|
|All at once|ダウンタイム|🕒|×|◯|手動再デプロイ|既存のインスタンス|
|Rolling|サービス停止状態の単一のバ<br>ッチ。新しいアプリケーショ<br>ンバージョンを実行している<br>、失敗前のすべてのバッチ。|🕒🕒<br>※|◯|◯|手動再デプロイ|既存のインスタンス|
|Rolling with <br>an additional batch|最初のバッチが失敗した場合<br>、影響は最小限。それ以外の<br>場合は[Rolling]と類似。|🕒🕒🕒<br>※|◯|◯|手動再デプロイ|新規および既存のイ<br>ンスタンス|
|Immutable|最小限|🕒🕒🕒🕒|◯|◯|新しいインスタンスの終了|新規のインスタンス|
|Traffic splitting|新しいバージョンにルーティ<br>ングされて一時的に影響を受<br>けたクライアントトラフィッ<br>クの割合|🕒🕒🕒🕒<br>※※|◯|◯|トラフィックの再ルーティ<br>ングと新しいインスタンス<br>の終了|新規のインスタンス|
|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秒）、他のコンシューマが同一メッセージにアクセスできなくなる

![AA6B9282-2D38-4314-8C0C-A2168555F7D1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1615121/43e2a7e0-4888-8b51-c53a-63fecd4a5c02.jpeg)


**遅延キュー**
プロデューサーがメッセージを送信した後、一定期間、他のコンシューマが同一メッセージにアクセスできなくなる（可視性タイムアウトは受信後）

**デッドレターキュー**
通常のキュー（ソースキュー）が正常に処理できないメッセージの分離先キュー

**キュータイプ**
**標準キュー**：無制限のスループット、少なくとも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の資格取得を目指す方々へご参考になれば幸いです。