翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon VPC エンドポイントを使用して DynamoDB にアクセスする
セキュリティ上の理由から、多くの AWS ユーザーがアプリケーションを Amazon Virtual Private Cloud 環境 (Amazon VPC) 内で実行しています。Amazon VPC を使用すると、Amazon EC2 インスタンスを仮想プライベートクラウドで作成できます。そのため、パブリックインターネットなどの他のネットワークから論理的に分離されます。Amazon VPC を使用すると、IP アドレスの範囲、サブネット、ルーティングテーブル、ネットワークゲートウェイ、セキュリティ設定を適切に管理できます。
注記
2013 年 12 月 4 AWS アカウント日以降に を作成した場合は、各 にデフォルトの VPC が既にありますAWS リージョン。デフォルトの VPC は、使用できる状態になっています。追加で設定手順を実行することなく、すぐに利用開始できます。
デフォルト VPC の詳細については、Amazon VPC ユーザーガイドの「デフォルト VPC とデフォルトサブネット」を参照してください。
パブリックインターネットにアクセスするには、VPC にインターネットゲートウェイ (VPC をインターネットに接続する仮想ルーター) が必要です。これにより、VPC 内の Amazon EC2 で実行されているアプリケーションで、Amazon DynamoDB などのインターネットリソースにアクセスすることが可能になります。
デフォルトでは、DynamoDB との通信において、SSL/TLS 暗号化を使用してネットワークトラフィックを保護する HTTPS プロトコルが使用されます。次の図は、DynamoDB が VPC エンドポイントではなくインターネットゲートウェイを使用するようにすることで、DynamoDB にアクセスする VPC 内の Amazon EC2 インスタンスを示しています。
多くのお客様が、パブリックインターネット間のデータ送受信に関して、プライバシーとセキュリティに関する正当な懸念を抱いています。これらの懸念を解決するために、仮想プライベートネットワーク (VPN) を使用して、すべての DynamoDB ネットワークトラフィックをお客様の企業ネットワークのインフラストラクチャ経由でルーティングできます。ただし、このアプローチでは、帯域幅や可用性の課題が生じる場合があります。
DynamoDB 用の VPC エンドポイントでは、これらの課題は軽減されます。DynamoDB 用の VPC エンドポイントを使用すると、VPC 内の Amazon EC2 インスタンスがパブリックインターネットにさらされることなく、プライベート IP アドレスを使用して DynamoDB にアクセスできるようになります。EC2 インスタンス にパブリック IP アドレスは必要ありません。また、VPC にインターネットゲートウェイ、NAT デバイス、仮想プライベートゲートウェイは不要です。DynamoDB へのアクセスを制御するには、エンドポイントのポリシーを使用します。VPC と AWS サービス間のトラフィックは、Amazon ネットワークを離れません。
注記
パブリック IP アドレスを使用する場合でも、 でホストされているインスタンスとサービス間のすべての VPC 通信AWSは、 AWSネットワーク内でプライベートに保たれます。AWS ネットワークから発信され、送信先が AWS ネットワーク上のパケットは、AWS 中国リージョンとの送受信されるトラフィックを除き、AWS グローバルネットワークに残ります。
DynamoDB 用の VPC エンドポイントを作成する際、リージョン内の DynamoDB エンドポイント (例: dynamodb.us-west-2.amazonaws.com) に対するリクエストはすべて、Amazon ネットワーク内のプライベートの DynamoDB エンドポイントにルーティングされます。VPC 内の EC2 インスタンスで実行されているアプリケーションを変更する必要はありません。エンドポイント名は変わりませんが、DynamoDB へのルートは Amazon ネットワーク内に完全にとどまります。パブリックインターネットにアクセスすることはありません。
次の図は、VPC 内の EC2 インスタンスが VPC エンドポイントを使用して DynamoDB にアクセスする様子を示しています。
詳細については、「チュートリアル: DynamoDB 用の VPC エンドポイントを使用する」を参照してください。
Amazon VPC エンドポイントと DynamoDB の共有
VPC サブネットのゲートウェイエンドポイントから DynamoDB サービスにアクセスできるようにするには、その VPC サブネットに対する所有者アカウントのアクセス許可が必要です。
VPC サブネットのゲートウェイエンドポイントに DynamoDB へのアクセスを許可すると、そのサブネットへのアクセス権を持つすべての AWS アカウントが DynamoDB を使用できます。つまり、VPC サブネット内のすべてのアカウントユーザーは、アクセス権が付与されている対象のすべての DynamoDB テーブルを使用できます。これには、VPC サブネットとは異なるアカウントに関連付けられた DynamoDB テーブルが含まれます。ただし、VPC サブネットの所有者は、独自の裁量により、サブネット内の特定のユーザーに対して、ゲートウェイエンドポイント経由での DynamoDB サービスの使用を制限できます。
チュートリアル: DynamoDB 用の VPC エンドポイントを使用する
このセクションでは、DynamoDB 用の VPC エンドポイントの設定および使用について説明します。
トピック
ステップ 1: Amazon EC2 インスタンスを起動する
このステップでは、デフォルトの Amazon VPC で Amazon EC2 インスタンスを起動します。その後、DynamoDB 用の VPC エンドポイントを作成して使用できます。
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
[Launch Instance] (インスタンスを起動) を選択して、以下を実行します。
ステップ 1: Amazon マシンイメージ (AMI) を選択する
-
AMI のリストの上部で [Amazon Linux AMI] に移動し、[選択] を選びます。
ステップ 2: インスタンスタイプを選択する
-
インスタンスタイプのリストの上部で、[t2.micro] を選択します。
-
[Next: Configure Instance Details] (次のステップ: インスタンスの詳細の設定) を選択します。
ステップ 3: インスタンスの詳細を設定する
-
[ネットワーク] に移動し、デフォルトの VPC を選択します。
[Next: Add Storage] (次の手順: ストレージの追加) をクリックします。
ステップ 4: ストレージを追加する
-
[Next: Tag Instance] を選択してこのステップをスキップします。
ステップ 5: インスタンスをタグ付けする
-
[Next: Configure Security Group] (次のステップ: セキュリティグループの設定) を選択してこのステップをスキップします。
ステップ 6: セキュリティグループを設定する
-
[Select an existing security group] (既存のセキュリティグループの選択) を選択します。
-
セキュリティグループのリストで、[default (デフォルト)] を選択します。これは VPC のデフォルトのセキュリティグループです。
-
[Next: Review and Launch] (次のステップ: 確認と起動) を選択します。
ステップ 7: インスタンス起動の確認
-
[Launch] (起動する) を選択します。
-
-
[Select an existing key pair or create a new key pair] (既存のキーペアを選択するか、新しいキーペアを作成する) ウィンドウで、次のいずれかを実行します。
-
Amazon EC2 キーペアがない場合は、[Create a new key pair] (新しいキーペアの作成) を選択して指示に従います。プライベートキーファイル (.pem ファイル) をダウンロードするよう求められます。このファイルは、後で Amazon EC2 インスタンスにログインする際に必要になります。
-
既存の Amazon EC2 キーペアがすでにある場合は、[Select a key pair] (キーペアの選択) を選択して、リストからキーペアを選択します。Amazon EC2 インスタンスにログインするには、既にプライベートキーファイル (.pem ファイル) が利用可能になっている必要があります。
-
-
キーペアを設定してある場合は、[Launch Instances] (インスタンスの起動) を選択します。
-
Amazon EC2 コンソールのホームページに戻り、起動したインスタンスを選択します。下のペインの [Description] (説明) タブで、インスタンスの [Public DNS] (パブリック DNS) を見つけます。例:
ec2-00-00-00-00.us-east-1.compute.amazonaws.com
。このパブリック DNS 名をメモします。パブリック DNS 名は、このチュートリアル (ステップ 2: Amazon EC2 インスタンスを設定する) の次のステップで必要になります。
注記
Amazon EC2 インスタンスが使用できるようになるまで数分かかります。次のステップに行く前に、[Instance State] (インスタンスの状態) が running
で、その [Status Checks] (ステータスチェック) がすべてパスしていることを確認します。
ステップ 2: Amazon EC2 インスタンスを設定する
Amazon EC2 インスタンスが使用できるようになったら、そのインスタンスにログインして、最初に使用できるように準備できます。
注記
次の手順は、Linux を実行するコンピュータから Amazon EC2 インスタンスに接続していることを想定しています。その他の接続方法については、「Amazon EC2 の Linux インスタンス用ユーザーガイド」の「Linux インスタンスへの接続」を参照してください。
-
Amazon EC2 インスタンスへのインバウンド SSH トラフィックを認証する必要があります。これを行うには、新しい EC2 セキュリティグループを作成し、そのセキュリティグループを EC2 インスタンスに割り当てます。
-
ナビゲーションペインで、[Security Groups (セキュリティグループ)] を選択します。
-
[Create Security Group (セキュリティグループの作成)] を選択します。[セキュリティグループの作成] ウィンドウで、以下を行います。
-
[Security group name] (セキュリティグループ名) — セキュリティグループの名前を入力します。例:
my-ssh-access
-
[Description] (説明) — セキュリティグループの簡単な説明を入力します。
-
VPC — デフォルトの VPC を選択します。
-
[Security group rules] (セキュリティグループのルール) セクションで、[Add Rule] (ルールの追加) を選択して、次の操作を行います
-
[Type] (タイプ) — SSH を選択します。
-
[Source] (ソース) — My IP を選択します。
-
すべての設定が正しいことを確認したら、[作成] を選択します。
-
-
ナビゲーションペインで、[インスタンス] を選択します。
-
ステップ 1: Amazon EC2 インスタンスを起動する で起動した Amazon EC2 インスタンスを選択します。
-
[Actions] (アクション)、[Networking] (ネットワーキング)、[Change Security Groups] (セキュリティグループの変更) の順に選択します。
-
[Change Security Groups] (セキュリティグループの変更) で、この手順で先に作成したセキュリティグループを選択します (例:
my-ssh-access
)。既存のdefault
のセキュリティグループも選択する必要があります。すべての設定が正しいことを確認したら、[Assign Security Groups] (セキュリティグループの割り当て) を選択します。
-
-
次の例のように、
ssh
コマンドを使用して Amazon EC2 インスタンスにログインします。ssh -i
my-keypair.pem
ec2-user@public-dns-name
プライベートキーファイル (.pem ファイル) とインスタンスのパブリック DNS 名を指定する必要があります。(「ステップ 1: Amazon EC2 インスタンスを起動する」を参照してください)。
ログイン ID は
ec2-user
です。パスワードは不要です。 -
次に示すように、AWS 認証情報を設定します。プロンプトが表示されたら、AWS アクセスキー ID、シークレットキー、デフォルトのリージョン名を入力します。
aws configure
AWS Access Key ID [None]:AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]:us-east-1
Default output format [None]:
これで、DynamoDB 用の VPC エンドポイントを作成する準備ができました。
ステップ 3: DynamoDB 用の VPC エンドポイントを作成する
このステップでは、DynamoDB 用の VPC エンドポイントを作成し、テストを行い正常に動作することを確認します。
-
開始する前に、パブリックエンドポイントを使用して DynamoDB と通信できることを確認します。
aws dynamodb list-tables
出力では、現在所有している DynamoDB テーブルのリストが表示されます。(テーブルがない場合、リストは空になります。)。
-
DynamoDB が、現在の AWS リージョンで VPC エンドポイントを作成するために利用可能なサービスであることを確認します。(コマンドは太字で示され、その後に出力例が続きます。)
aws ec2 describe-vpc-endpoint-services
{ "ServiceNames": [ "com.amazonaws.us-east-1.s3", "com.amazonaws.us-east-1.dynamodb" ] }出力例では、DynamoDB が利用可能なサービスの 1 つであるため、VPC エンドポイントの作成を続行できます。
-
VPC 識別子を決定します。
aws ec2 describe-vpcs
{ "Vpcs": [ { "VpcId": "vpc-0bbc736e", "InstanceTenancy": "default", "State": "available", "DhcpOptionsId": "dopt-8454b7e1", "CidrBlock": "172.31.0.0/16", "IsDefault": true } ] }出力例では、VPC ID は
vpc-0bbc736e
です。 -
VPC エンドポイントを作成します。
--vpc-id
パラメータで、前のステップの VPC ID を指定します。--route-table-ids
パラメータを使用して、エンドポイントをルートテーブルに関連付けます。aws ec2 create-vpc-endpoint --vpc-id vpc-0bbc736e --service-name com.amazonaws.us-east-1.dynamodb --route-table-ids rtb-11aa22bb
{ "VpcEndpoint": { "PolicyDocument": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"*\",\"Resource\":\"*\"}]}", "VpcId": "vpc-0bbc736e", "State": "available", "ServiceName": "com.amazonaws.us-east-1.dynamodb", "RouteTableIds": [ "rtb-11aa22bb" ], "VpcEndpointId": "vpce-9b15e2f2", "CreationTimestamp": "2017-07-26T22:00:14Z" } } -
VPC エンドポイント経由で DynamoDB にアクセスできることを確認します。
aws dynamodb list-tables
必要に応じて、DynamoDB 用の他の AWS CLI コマンドを試すことができます。詳細については、AWS CLI コマンドリファレンスを参照してください。
ステップ 4: (オプション) クリーンアップする
このチュートリアルで作成したリソースを削除する場合は、次の手順に従ってください。
DynamoDB 用の VPC エンドポイントを削除するには
-
Amazon EC2 インスタンスにログインします。
-
VPC エンドポイント ID を決定します。
aws ec2 describe-vpc-endpoints
{ "VpcEndpoint": { "PolicyDocument": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"*\",\"Resource\":\"*\"}]}", "VpcId": "vpc-0bbc736e", "State": "available", "ServiceName": "com.amazonaws.us-east-1.dynamodb", "RouteTableIds": [], "VpcEndpointId": "vpce-9b15e2f2", "CreationTimestamp": "2017-07-26T22:00:14Z" } }出力例では、VPC エンドポイント ID は
vpce-9b15e2f2
です。 -
VPC エンドポイントを削除します。
aws ec2 delete-vpc-endpoints --vpc-endpoint-ids vpce-9b15e2f2
{ "Unsuccessful": [] }空の配列
[]
は成功を示します (失敗したリクエストはありませんでした)。
Amazon EC2 インスタンスを終了するには
Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/
) を開きます。 -
ナビゲーションペインで、[Instances] (インスタンス) を選択します。
-
Amazon EC2 インスタンスを選択します。
-
[Actions]、[Instance State]、[Terminate] の順に選択します。
-
確認ウィンドウで、[Yes, Terminate] (はい、終了します) を選択します。