Amazon DynamoDB
開発者ガイド (API バージョン 2012-08-10)

DynamoDB における Amazon VPC エンドポイント

セキュリティ上の理由から、多数の AWS ユーザーがアプリケーションを Amazon Virtual Private Cloud 環境 (Amazon VPC) 内で実行しています。Amazon VPC を使用すると、Amazon EC2 を Virtual Private Cloud で起動できます。そのため、パブリックインターネットなどのネットワークから論理的に分離されます。Amazon VPC を使用すると、IP アドレス範囲、サブネット、ルーティングテーブル、ネットワークゲートウェイ、セキュリティ設定を適切に制御できます。

注記

2013 年 12 月 4 日以降に AWS アカウントを作成した場合は、各 AWS リージョンにデフォルトで VPC が用意されています。デフォルト VPC は今すぐ使用できます。ほかの設定手順は必要なく、すぐにデフォルト VPC の使用を開始できます。

詳細については、「デフォルトの VPC とサブネット」 (Amazon VPC ユーザーガイド) を参照してください。

パブリックインターネットにアクセスするには、VPC にインターネットゲートウェイが必要です。インターネットゲートウェイは、VPC をインターネットに接続する仮想ルーターです。これにより、VPC の Amazon EC2 上で実行されているアプリケーションは、Amazon DynamoDB などのインターネットリソースにアクセスできるようになります。

デフォルトでは、DynamoDB との通信において、SSL/TLS 暗号化を使用してネットワークトラフィックを保護する HTTPS プロトコルが使用されます。次の図は、VPC の EC2 インスタンスが DynamoDB にアクセスする様子を示します。

多数のユーザーが、パブリックインターネット間のデータ送受信に関して、プライバシーとセキュリティに関する懸念を抱いています。これらの懸念点を解決するために、仮想プライベートネットワーク (VPN) を使用して、お客様専用の企業ネットワークのインフラストラクチャ経由で DynamoDB ネットワークをすべてルーティングします。ただし、このアプローチでは、帯域幅や可用性の課題が生じる場合があります。

DynamoDB の VPC エンドポイントでは、これらの課題は軽減されます。DynamoDB の VPC エンドポイント を使用することで、VPC の Amazon EC2 インスタンスは、パブリックインターネットに公開されることなく、プライベート IP アドレスを使用して DynamoDB にアクセスできるようになります。EC2 インスタンスはパブリック IP アドレスを必要とせず、VPC でインターネットゲートウェイ、NAT デバイス、または仮想プライベートゲートウェイは必要ありません。DynamoDB へのアクセスを制御するには、エンドポイントのポリシーを使用します。VPC と AWS サービス間のトラフィックは、Amazon ネットワークを離れません。

DynamoDB の VPC エンドポイントを作成する際、リージョン 以下に例を示します。dynamodb.us-west-2.amazonaws.com) 内の DynamoDB エンドポイントに対するリクエストはすべて、Amazon ネットワーク内のプライベートの DynamoDB エンドポイントにルーティングされます。VPC の EC2 インスタンスで実行されているアプリケーションを変更する必要はありません。エンドポイント名は変わりませんが、DynamoDB へのルートは、完全に Amazon ネットワーク内にとどまり、パブリックインターネットにアクセスすることはありません。

VPC 内の EC2 インスタンスが VPC エンドポイントを使用して DynamoDB にアクセスする様子を次の図に示します。

チュートリアル: DynamoDB での VPC エンドポイントの使用

このセクションでは、DynamoDB の VPC エンドポイントの設定と使用手順について説明します。

ステップ 1: Amazon EC2 インスタンスを起動する

このステップでは、デフォルトの Amazon VPC で Amazon EC2 インスタンスを起動します。DynamoDB の VPC エンドポイントを作成して使用できます。

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. [Launch Instance] を選択して、以下を実行します。

    ステップ 1: Amazon Machine Image (AMI) の選択

    • AMI のリストの上部で [Amazon Linux AMI] に移動し、[Select] を選択します。

    ステップ 2: インスタンスタイプを選択する

    • インスタンスタイプのリストの上部で、[t2.micro] を選択します。

    • [Next: Configure Instance Details] を選択します。

    ステップ 3: インスタンスの詳細を設定する

    • [Network] に移動し、デフォルトの VPC を選択します。

      [次の手順: ストレージの追加] を選択します。

    ステップ 4: ストレージを追加する

    • [Next: Tag Instance] を選択してこのステップをスキップします。

    ステップ 5: タグインスタンス

    • [Next: Configure Security Group] を選択してこのステップをスキップします。

    ステップ 6: セキュリティグループを設定する

    • [Select an existing security group] を選択します。

    • セキュリティグループのリストで、[default] を選択します。これは VPC のデフォルトのセキュリティグループです。

    • [Next: Review and Launch] を選択します。

    ステップ 7: インスタンス起動の確認

    • [Launch] を選択します。

  3. [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 ファイル) が利用可能になっている必要があることに注意してください。

  4. キーペアを設定してある場合は、[Launch Instances] を選択します。

  5. Amazon EC2 コンソールのホームページに戻り、起動したインスタンスを選択します。下のペインの [Description] タブで、インスタンスの [Public DNS] を見つけます。例: ec2-00-00-00-00.us-east-1.compute.amazonaws.com

    このパブリック DNS 名をメモします。このチュートリアルの次のステップ (ステップ 2: Amazon EC2 インスタンスを設定する) で必要になります。

注記

Amazon EC2 インスタンスが使用可能になるには数分かかります。次のステップに進む前に、[Instance State] が running で、その [Status Checks] がすべてパスしていることを確認します。

ステップ 2: Amazon EC2 インスタンスを設定する

Amazon EC2 インスタンスが使用可能になったら、ログインして使用開始できるようになります。

注記

次のステップは、Linux を実行するコンピュータから Amazon EC2 インスタンスに接続することを想定しています。その他の接続方法については、Linux インスタンス用 Amazon EC2 ユーザーガイドの Linux インスタンスへの接続を参照してください。

  1. Amazon EC2 インスタンスに対するインバウンド SSH トラフィックを認可する必要があります。そのためには、新しい EC2 セキュリティグループを作成し、そのセキュリティグループを EC2 インスタンスに割り当てます。

    1. ナビゲーションペインで、[Security Groups] を選択します。

    2. [Create Security Group] を選択します。[Create Security Group] ウィンドウで以下を行います。

      • Security group name – セキュリティグループの一意の名前を入力します。例: my-ssh-access

      • Description – セキュリティグループの簡単な説明を入力します。

      • VPC – デフォルトの VPC を選択します。

      • [Security group rules] セクションで、[Add Rule] を選択して、以下の手順を行います。

        • Type – SSH を選択します。

        • Source – マイ IP を選択します。

      すべての設定が正しいことを確認したら、[Create] を選択します。

    3. ナビゲーションペインで、[Instances] を選択します。

    4. ステップ 1: Amazon EC2 インスタンスを起動する」で起動した Amazon EC2 インスタンスを選択します。

    5. [Actions]、[Networking]、[Change Security Groups] の順に選択します。

    6. [Change Security Groups] で、この手順で先に作成したセキュリティグループ 以下に例を示します。my-ssh-access) を選択します。既存の default セキュリティグループも選択されている必要があります。必要な設定が完了したら、[Assign Security Groups] を選択します。

  2. ssh コマンドを使用して Amazon EC2 インスタンスにログインします。以下に例を示します。

    ssh -i my-keypair.pem ec2-user@public-dns-name

    プライベートキーファイル (.pem ファイル) とインスタンスのパブリック DNS 名を指定する必要があります。(「ステップ 1: Amazon EC2 インスタンスを起動する」を参照してください)。

    ログイン ID は ec2-user です。パスワードは不要です。

  3. 次に示すように、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 エンドポイントを作成し、動作するかどうかをテストします。

  1. 開始する前に、パブリックエンドポイントを使用して DynamoDB と通信できることを確認してください。

    aws dynamodb list-tables

    現在所有する DynamoDB テーブルの一覧が出力表示されます。(テーブルを所有していない場合は空のリストが出力されます。)

  2. 現在の AWS リージョンで VPC エンドポイントを作成するためのサービスを DynamoDB で利用できることを確認します。(コマンドでは太字で示され、その後に出力例が表示されます。)

    aws ec2 describe-vpc-endpoint-services { "ServiceNames": [ "com.amazonaws.us-east-1.s3", "com.amazonaws.us-east-1.dynamodb" ] }

    出力例では、DynamoDB は、利用できるサービスのひとつのため、VPC エンドポイントの作成に進むことができます。

  3. 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 です。

  4. VPC エンドポイントを作成します。--vpc-id パラメータで、前の手順の VPC ID を指定します。

    aws ec2 create-vpc-endpoint --vpc-id vpc-0bbc736e --service-name com.amazonaws.us-east-1.dynamodb { "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" } }
  5. VPC エンドポイント経由で DynamoDB にアクセスできることを確認してください。

    aws dynamodb list-tables

    必要に応じて、他の AWS CLI コマンドを DynamoDB に対して実行することができます。詳細については、「AWS CLI Command Reference」を参照してください。

ステップ 4: (オプション) クリーンアップする

このチュートリアルで作成したリソースを削除するには、これらの手順に従います。

DynamoDB の VPC エンドポイントを削除するには

  1. Amazon EC2 インスタンスにログインします。

  2. 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 です。

  3. VPC エンドポイントの削除

    aws ec2 delete-vpc-endpoints --vpc-endpoint-ids vpce-9b15e2f2 { "Unsuccessful": [] }

    空の配列 ([]) は、成功を表します (失敗したリクエストはありません)。

Amazon EC2 インスタンスを終了するには

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. ナビゲーションペインで、[Instances] を選択します。

  3. Amazon EC2 インスタンスを選択します。

  4. [Actions]、[Instance State]、[Terminate] の順に選択します。

  5. 確認ウィンドウで、[Yes, Terminate] を選択します。