AWS PrivateLink for DynamoDB
AWS PrivateLink for DynamoDB を使うと、仮想プライベートクラウド (Amazon VPC) でインターフェイス Amazon VPC エンドポイント (インターフェイスエンドポイント) をプロビジョニングできます。これらのエンドポイントには、オンプレミスにあるアプリケーションから VPN および AWS Direct Connect 経由で、または別の AWS リージョンにあるアプリケーションから Amazon VPC ピアリング経由で直接アクセスできます。AWS PrivateLink とインターフェイスエンドポイントを使用することで、アプリケーションから DynamoDB へのプライベートネットワーク接続を簡素化できます。
VPC 内のアプリケーションは、パブリック IP アドレスがなくても、DynamoDB インターフェイス VPC エンドポイントと通信して、DynamoDB の操作を実行できます。インターフェイスエンドポイントは、Amazon VPC 内のサブネットからプライベート IP アドレスが割り当てられた 1 つ以上の Elastic Network Interface (ENI) で表されます。インターフェイスエンドポイントを介した DynamoDB へのリクエストが Amazon ネットワーク外に出ることはありません。AWS Direct Connect または AWS Virtual Private Network (AWS VPN) を介して、オンプレミスのアプリケーションから Amazon VPC 内のインターフェイスエンドポイントにアクセスすることもできます。Amazon VPC をオンプレミスネットワークに接続する方法の詳細については、「AWS Direct Connect ユーザーガイド」および「AWS Site-to-Site VPN ユーザーガイド」を参照してください。
インターフェイスエンドポイントの一般的な情報については、「AWS PrivateLink ガイド」のインターフェイス Amazon VPC エンドポイント (AWS PrivateLink) に関するセクションを参照してください。
トピック
Amazon DynamoDB で使用される Amazon VPC エンドポイントのタイプ
Amazon DynamoDB へのアクセスには、ゲートウェイエンドポイントとインターフェイスエンドポイント (AWS PrivateLink を使用) の 2 つのタイプの Amazon VPC エンドポイントを使用できます。ゲートウェイエンドポイントは、AWS ネットワーク経由で Amazon VPC から DynamoDB にアクセスするために、ルートテーブルで指定するゲートウェイです。インターフェイスエンドポイントは、プライベート IP アドレスを使用して、Amazon VPC 内、オンプレミス、または Amazon VPC ピアリングや AWS Transit Gateway を使用する別の AWS リージョンにある Amazon VPC から DynamoDB にリクエストをルーティングすることにより、ゲートウェイエンドポイントの機能を拡張します。詳細については、「VPC ピア機能とは」および「Transit Gateway と VPC ピアリング」を参照してください。
インターフェイスエンドポイントは、ゲートウェイエンドポイントと互換性があります。Amazon VPC 内に既存のゲートウェイエンドポイントがある場合は、同じ Amazon VPC で両方のタイプのエンドポイントを使用できます。
DynamoDB のゲートウェイエンドポイント |
DynamoDB のインターフェイスエンドポイント |
---|---|
いずれの場合も、ネットワークトラフィックは AWS ネットワーク上に残ります。 |
|
Amazon DynamoDB パブリック IP アドレスを使用する |
Amazon VPC のプライベート IP アドレスを使用して Amazon DynamoDB にアクセスする |
オンプレミスからのアクセスを許可しない |
オンプレミスからのアクセスを許可する |
別の AWS リージョン からのアクセスを許可しない |
Amazon VPC ピアリングまたは AWS Transit Gateway を使用する別の AWS リージョンにある Amazon VPC エンドポイントからのアクセスを許可する |
課金されない |
請求される |
ゲートウェイエンドポイントの詳細については、「AWS PrivateLink ガイド」の「Gateway Amazon VPC endpoints」を参照してください。
AWS PrivateLink for Amazon DynamoDB を使用する場合の考慮事項
Amazon VPC に関する考慮事項が AWS PrivateLink for Amazon DynamoDB に適用されます。詳細については、AWS PrivateLink ガイドの「インターフェイスエンドポイントの考慮事項」と「AWS PrivateLink クォータ」を参照してください。また、以下の制約も適用されます。
AWS PrivateLink for Amazon DynamoDB では、以下はサポートされていません。
-
Transport Layer Security (TLS) 1.1
-
プライベートおよびハイブリッドドメインネームシステム (DNS) サービス
AWS PrivateLink は現在、Amazon DynamoDB Streams エンドポイントではサポートされていません。
有効にする AWS PrivateLink エンドポイントごとに、1 秒あたり最大 5 万件のリクエストを送信できます。
注記
AWS PrivateLink エンドポイントへのネットワーク接続タイムアウトは DynamoDB エラーレスポンスの範囲ではないため、PrivateLink エンドポイントに接続するアプリケーションで適切に処理する必要があります。
Amazon VPC エンドポイントの作成
Amazon VPC インターフェイスエンドポイントを作成するには、「AWS PrivateLink ガイド」の「Create an Amazon VPC endpoint」を参照してください。
Amazon DynamoDB インターフェイスエンドポイントへのアクセス
インターフェイスエンドポイントを作成すると、DynamoDB はエンドポイント固有の 2 つのタイプの DynamoDB DNS 名 (Regional および Zonal) を生成します。
-
Regional DNS 名では、一意の Amazon VPC エンドポイント ID、サービス識別子、AWS リージョン、および
vpce.amazonaws.com
が名前に含まれます。例えば、Amazon VPC エンドポイント ID が
の場合、生成される DNS 名はvpce-1a2b3c4d
のようになります。vpce-1a2b3c4d-5e6f
.dynamodb.us-east-1.vpce.amazonaws.com -
Zonal DNS 名には、アベイラビリティーゾーンが含まれます (
など)。このオプションは、アーキテクチャがアベイラビリティーゾーンを分離する場合に使用できます。例えば、障害を隔離し、リージョン間のデータ転送コストを削減するために使用できます。vpce-1a2b3c4d-5e6f
-us-east-1a.dynamodb.us-east-1.vpce.amazonaws.com
エンドポイント固有の DynamoDB DNS 名は、DynamoDB パブリック DNS ドメインから解決できます。
DynamoDB インターフェイスエンドポイントから DynamoDB テーブルおよびコントロール API オペレーションへのアクセス
DynamoDB インターフェイスエンドポイントを介して DynamoDB テーブルおよびコントロール API オペレーションにアクセスするには、AWS CLI または AWS SDK を使用します。
AWS CLI の例
AWS CLI コマンドを使って DynamoDB インターフェイスエンドポイントを介して DynamoDB テーブルまたは DynamoDB コントロール API オペレーションにアクセスするには、--region
および --endpoint-url
パラメータを使用します。
例: VPC エンドポイントの作成
aws ec2 create-vpc-endpoint \ --region us-east-1 \ --service-name dynamodb-service-name \ --vpc-id client-vpc-id \ --subnet-ids client-subnet-id \ --vpc-endpoint-type Interface \ --security-group-ids client-sg-id
例: VPC エンドポイントの変更
aws ec2 modify-vpc-endpoint \ --region us-east-1 \ --vpc-endpoint-id client-vpc-endpoint-id \ --policy-document policy-document \ #example optional parameter --add-security-group-ids security-group-ids \ #example optional parameter # any additional parameters needed, see Privatelink documentation for more details
例: エンドポイント URL を使ったテーブルの一覧表示
次の例では、リージョン us-east-1
、VPC エンドポイント ID の DNS 名 vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com
をユーザー自身の情報に置き換えます。
aws dynamodb --region us-east-1 —endpoint https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com list-tables
AWS SDK の例
AWS SDK を使って DynamoDB インターフェイスエンドポイントを介して DynamoDB テーブルまたは DynamoDB コントロール API オペレーションにアクセスするには、SDK を最新バージョンに更新します。次に、エンドポイント URL を使用して DynamoDB インターフェイスエンドポイントを介してテーブルまたは DynamoDB コントロール API オペレーションにアクセスするように、クライアントを設定します。
オンプレミスの DNS 設定の更新
エンドポイント固有の DNS 名を使用して DynamoDB のインターフェイスエンドポイントにアクセスする場合、オンプレミス DNS リゾルバーを更新する必要はありません。パブリック DynamoDB DNS ドメインから、インターフェイスエンドポイントのプライベート IP アドレスを使用してエンドポイント固有の DNS 名を解決できます。
Amazon VPC 内のゲートウェイエンドポイントまたはインターネットゲートウェイは使用せず、インターフェイスエンドポイントを使用して DynamoDB にアクセスする
次の図に示すように、Amazon VPC 内のインターフェイスエンドポイントは、Amazon VPC 内のアプリケーションとオンプレミスアプリケーションの両方を Amazon ネットワーク経由で DynamoDB にルーティングできます。
この図表は、以下を示すものです:
-
オンプレミスネットワークでは、AWS Direct Connect または AWS VPN を使用して Amazon VPC A に接続します。
-
オンプレミスと Amazon VPC A 内のアプリケーションでは、エンドポイント固有の DNS 名を使用して DynamoDB インターフェイスエンドポイントを介して DynamoDB にアクセスします。
-
オンプレミスのアプリケーションは、AWS Direct Connect (または AWS VPN) を介して Amazon VPC 内のインターフェイスエンドポイントにデータを送信します。AWS PrivateLink は、AWS ネットワークを経由してデータをインターフェイスエンドポイントから DynamoDB に移動します。
-
Amazon VPC 内のアプリケーションも、インターフェイスエンドポイントにトラフィックを送信します。AWS PrivateLink は、AWS ネットワークを経由してデータをインターフェイスエンドポイントから DynamoDB に移動します。
ゲートウェイエンドポイントとインターフェイスエンドポイントを同じ Amazon VPC で併用して DynamoDB にアクセスする
次の図に示すように、インターフェイスエンドポイントを作成し、同じ Amazon VPC 内に既存のゲートウェイエンドポイントも保持できます。このアプローチにより、Amazon VPC 内のアプリケーションが引き続きゲートウェイエンドポイントを介して DynamoDB にアクセスすることが許可されます。これについての請求はありません。インターフェイスエンドポイントは、DynamoDB にアクセスするオンプレミスのアプリケーションだけが使用することになります。この方法で DynamoDB にアクセスするには、DynamoDB のエンドポイント固有の DNS 名を使用するようにオンプレミスのアプリケーションを更新する必要があります。
この図表は、以下を示すものです:
-
オンプレミスのアプリケーションは、エンドポイント固有の DNS 名を使用して、AWS Direct Connect (または AWS VPN) を介して Amazon VPC 内のインターフェイスエンドポイントにデータを送信します。AWS PrivateLink は、AWS ネットワークを経由してデータをインターフェイスエンドポイントから DynamoDB に移動します。
-
Amazon VPC 内のアプリケーションは、デフォルトのリージョン DynamoDB 名を使用し、AWS ネットワークを経由して DynamoDB に接続するゲートウェイエンドポイントにデータを送信します。
ゲートウェイエンドポイントの詳細については、「Amazon VPC ユーザーガイド」の「Gateway Amazon VPC endpoints」を参照してください。
DynamoDB 用 Amazon VPC エンドポイントポリシーの作成
Amazon VPC エンドポイントに DynamoDB へのアクセスをコントロールするエンドポイントポリシーをアタッチできます。このポリシーでは、以下の情報を指定します。
-
アクションを実行できる AWS Identity and Access Management (IAM) プリンシパル
-
実行可能なアクション
-
アクションを実行できるリソース
例: Amazon VPC エンドポイントから特定のテーブルへのアクセスの制限
特定の DynamoDB テーブルへのアクセスのみを制限するエンドポイントポリシーを作成できます。このタイプのポリシーは、テーブルを使用する他の AWS のサービスが Amazon VPC にある場合に便利です。次のテーブルポリシーは、
へのアクセスのみを制限します。このエンドポイントポリシーを使用するには、DOC-EXAMPLE-TABLE
をテーブルの名前に置き換えます。DOC-EXAMPLE-TABLE
{ "Version": "2012-10-17", "Id": "Policy1216114807515", "Statement": [ { "Sid": "Access-to-specific-table-only", "Principal": "*", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem" ], "Effect": "Allow", "Resource": ["arn:aws:dynamodb:::DOC-EXAMPLE-TABLE", "arn:aws:dynamodb:::DOC-EXAMPLE-TABLE/*"] } ] }