意味が似ている用語

AWS認定 デベロッパー アソシエイトの模擬試験を受けている際に、この回答は両方正解じゃないか?と思うことがあり、これから受験する方や今後受験するかもしれない人に向けてまとめていきます。

シークレットマネージャーとパラメータストア

どちらも設定データ管理と機密管理のための安全な階層型ストレージです。パラメータストアではパスワード、データベース文字列、AMI ID、ライセンスコードなどのデータをパラメータ値として保存することができます。
シークレットマネージャーではシークレット値としてキーと値のペアを保存します。

違い

パラメータストアで保存する値はプレーンテキストまたは暗号化されたデータとして保存しますが、シークレットマネージャーは暗号化されたデータとして保存します。
どちらも設定データ管理と機密管理を安全に保存するためのものですが、シークレットマネージャーは暗号化を主に行う想定で保存したパスワードをローテーションすることが可能です。

Lambdaプロキシ結合と非プロキシ結合

API Gatewayの統合タイプであるLambdaプロキシ統合はバックエンドとして、Lambda関数と統合します。

違い

Lambdaプロキシ結合はLambdaから返される値のフォーマットが決まっています。
Lambda非プロキシ結合はLambdaから返される値がそのまま返されます。API Gatewayでのマッピングテンプレートの定義を行なって任意の形式で返される値を決めることができます。

API Gatewayの環境変数とステージ変数

ステージ変数は REST API のデプロイステージと関連付けられた設定属性として定義できる名前と値のペアです。環境変数と同様に機能し、API のセットアップやマッピングテンプレートで使用できます。 各リリースにおいてステージ変数を設定することで、リリースの段階を管理することができます。

違い

API Gatewayでは環境変数にあたるものがなくステージ変数を使います。
Lamdba関数など他のサービスでは環境変数を使うので間違えやすいです。

DynamoDB のローカルセカンダリインデックスとグローバルセカンダリインデックス

ローカルセカンダリインデックス(LSI)はあるテーブルをベースに、パーティションキーはそのままに新たなソートキーを作成する機能です。
グローバルセカンダリインデックス(GSI)はあるテーブルをベースに、異なるパーティションキー・ソートキーのテーブルを作成する機能です。

違い

GSIはテーブル作成後に追加できますが、LSIはテーブル作成前に作成する必要があります。
GSIは異なる全てのパーティションキーを対象にクエリを発行するのに対し、LSIは同じパーティションキーを持つテーブルのみを対象にクエリを発行します。

SQS の可視性タイムアウトと遅延キューと DelaySeconds

SQS キューからコンシューマーにメッセージが受信された直後は、メッセージはキューに残ったままとなっています。可視性タイムアウトは他のコンシューマーが同じメッセージを再処理しないように、一定時間そのメッセージを使用できなくする機能です。
遅延キューはコンシューマーがメッセージを一定時間使用できなくする機能です。
DelaySecondsパラメーターは遅延キューを設定する際に利用するパラメーターです。問題の選択肢に遅延キューがない場合はDelaySecondsパラメーターを選ぶと良いです。

違い

遅延キューはメッセージが最初にキューに追加された時から全てのコンシューマーに対して一定時間処理ができなくなります。
可視性タイムアウトはメッセージがキューによって処理された後に、そのキュー以外には一定時間使用できなくなります。

ALBとNLB

Application Load Balancer(ALB) は、OSI モデルの第 7 層であるアプリケーションレイヤーで機能し、HTTP/HTTPS リクエストの負荷分散を行います。
スティッキーセッションを利用してセッションが続いている間はクライアントを同じサーバへ接続し続けることも可能です。
Network Load Balancer(NLB) は、OSI モデルの第 4 層で機能し、TCP/UDP トラフィックの負荷分散を行います。また高パフォーマンスで一秒で数百万のリクエストを処理できます。

違い

ALB はセキュリティグループによるアクセス制限が可能です。
NLB はセキュリティグループを設定できないためバックエンドの EC2 でアクセス制限などを行う必要があります。

ALB はリクエスト URL に基づいてリクエストを転送するリスナーのルールを構成できます。(パスベースルーティング)
NLB はパスベースルーティングができません。

NLB はユーザーの IP アドレスとソースポートを取得できますが、
ALB は X-Forwarded-For を使用しないとユーザーの IP アドレスとソースポートを取得することはできません。

X-rayの注釈とメタデータ

注釈は、文字列、数値、ブール値を持つキーと値のペアです。
メタデータは、オブジェクトやリストなど任意のタイプの値を持つことができるキーと値のペアです。

違い

注釈にはフィルタ式で利用するためのインデックスが付与されます。メタデータには追加されません。
メタデータにセグメントに保存する追加のカスタムデータを設定します。

Route53のトラフィックの位置情報ルーティングと地理的近接性ルーティング

位置情報ルーティングはユーザーの位置情報に基づいてトラフィックを処理するリソースを選択します。
地理的近接性ルーティングはユーザーとリソースの地理的場所に基づいてリソースのトラフィックをルーティングします。また、必要に応じて特定のリソースにルーティングするトラフィックの量を変更できます。
位置情報ルーティングと地理的近接性ルーティングを使用するにはRoute 53 トラフィックフローを使用する必要があります。

違い

違いがわかりづらいので例えで説明すると
地理的近接性ルーティングは日本にいるので東京リージョンが近いためルーティングします。
位置情報ルーティングは日本の場合は東京リージョンにルーティングするように設定していればユーザーが日本にいるユーザーは東京リージョンにルーティングされます。
地理的近接性ルーティングはユーザーとルーティング先の距離に応じてルーティングし、位置情報ルーティングは設定した場所にいるユーザーを指定のルーティング先にルーティングします。

CloudFormation の Ref と Fn::GetAtt

組み込み関数 Ref は Parameters セクションで指定したパラメータの値や Resources セクションで指定したリソースの戻り値を取得します。
Fn::GetAtt 組み込み関数は、Resources セクションで指定したリソースから属性の値を取得します。リソースのみを対象としており、何が返ってくるかは各リソースごとに異なります。

違い

Ref のみ Parameters セクションで指定したパラメータの値を取得できます。
どちらも Resources セクションで指定したリソースから値を取得できますが取得できる値が異なります。使用する場合は、Ref による 戻り値で書けるか、Fn::GetAtt による 属性で書けるか調べる必要があります。
詳しくはこちらのサイトをご参照ください。
CloudFormation Ref & GetAtt cheatsheet

参考文献

REST API デプロイのステージ変数のセットアップ
AWS Systems Manager Parameter Store
AWSのParameter StoreとSecrets Manager、結局どちらを使えばいいのか?比較
API Gateway + Lambda プロキシ結合の使用有無による違い
地理的近接性ルーティングってなんだろ?
ALB、NLBロードバランサーの特徴比較
AWS CloudFormation の初歩 備忘録
DynamoDB セカンダリインデックス
DynamoDBのキー・インデックスについてまとめてみた

プロフィール

吉村海斗
吉村海斗
茶を目指してAtcoderやってる2年目エンジニアです。
AWSアソシエイト三冠目指してます!
Rubyが好きです。