すべてのプロダクト
Search
ドキュメントセンター

:コードを使用した DynamoDB 互換インスタンスへの接続

最終更新日:Jun 23, 2026

このトピックでは、AWS CLI、Python、Java を使用して DynamoDB 互換インスタンスに接続する方法について説明します。

前提条件

DynamoDB 互換インスタンスが必要です。 インスタンスを作成する際に、プロトコルの種類として [DynamoDB] を選択します。 詳細については、「シャードクラスターインスタンスの作成」をご参照ください。

接続エンドポイント

ご利用の DynamoDB 互換インスタンスの接続エンドポイントを取得します。

  1. ApsaraDB for MongoDB コンソールにログインします。

  2. ページの左上隅で、インスタンスのリソースグループとリージョンを選択します。

  3. 左側のナビゲーションウィンドウで、Shardクラスターインスタンスのリスト をクリックします。

  4. ターゲットインスタンスを見つけて、その ID をクリックします。

  5. 左側のナビゲーションウィンドウで、データベース接続 をクリックします。

  6. [VPC 接続] セクションで、インスタンスの接続エンドポイントを表示します。 このエンドポイントの [プロトコルの種類][DynamoDB 互換プロトコル] で、アドレスは dds- で始まります。

アプリケーションが ECS インスタンスにデプロイされている場合、ネットワーク接続を確保するには、ご利用の ApsaraDB for MongoDB インスタンスと ECS インスタンスが次の条件を満たす必要があります。

  • 同じリージョンに存在する必要があります。 既存の ECS インスタンスがある場合は、そのリージョンを確認できます。 詳細については、「ECS インスタンスのリージョンを表示」をご参照ください。

  • 任意:ネットワーク遅延を低減するために、同じゾーンに配置することを推奨します。 既存の ECS インスタンスがある場合は、そのゾーンを確認できます。 詳細については、「ECS インスタンスのゾーンを表示」をご参照ください。

  • 同じネットワークタイプを使用する必要があります。 既存の ECS インスタンスがある場合は、そのネットワークタイプを確認できます。 詳細については、「ECS インスタンスのネットワークタイプを表示」をご参照ください。 ECS インスタンスが 古典的なネットワーク を使用している場合は、古典的なネットワーク から 独自のネットワーク に移行できます。 詳細については、「ECS インスタンスをクラシックネットワークから VPC に移行する」をご参照ください。

AWS CLI を使用した接続

このセクションでは、Ubuntu 16.04.6 LTS システムで AWS コマンドラインインターフェイス (AWS CLI) を使用して DynamoDB 互換インスタンスに接続する方法を説明します。AWS CLI の詳細については、「AWS コマンドラインインターフェイスとは」をご参照ください。

  1. AWS CLI クライアントをインストールします。

    1. 次のコマンドを実行して、最新バージョンの AWS CLI をダウンロードし、awscliv2.zip として保存します。

      curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
    2. 次のコマンドを実行して、awscliv2.zip ファイルを解凍します。

      unzip awscliv2.zip
      説明

      unzip がインストールされていない場合は、sudo apt install unzip コマンドを実行してインストールします。

    3. 次のコマンドを実行して、AWS CLI をインストールします。

      sudo ./aws/install

    You can now run: /usr/local/bin/aws --version というメッセージが表示されると、AWS CLI がインストールされます。 その後、/usr/local/bin/aws --version コマンドを実行して、AWS CLI の現在のバージョンを確認できます。

  2. /usr/local/bin/aws configure コマンドを実行して AWS CLI を設定します。 次の値を入力し、各値の入力後に Enter キーを押します。

    パラメーター

    説明

    AWS Access Key ID

    アクセスキー ID を入力します。 DynamoDB 互換サービスはこのキーを検証しないため、任意の文字列を入力できます。

    XXXXXXXXXX

    AWS Secret Access Key

    シークレットアクセスキーを入力します。 DynamoDB 互換サービスはこのキーを検証しないため、任意の文字列を入力できます。

    XXXXXXXXXX

    Default region name

    デフォルトの AWS リージョン名を入力します。

    us-west-2

    Default output format

    デフォルトの出力フォーマットです。 このパラメーターは空白のままにすることができます。

    json

    説明

    AWS CLI の設定方法の詳細については、「設定の基本」をご参照ください。

  3. 次のコマンドを実行して、ターゲットの DynamoDB 互換インスタンスに接続し、テーブルを作成します。

    aws dynamodb --endpoint-url <connection-endpoint-of-your-DynamoDB-compatible-instance> \ 
        create-table --table-name <your-table-name> \
        --attribute-definitions AttributeName=<attribute-name>,AttributeType=<attribute-data-type> \
        --key-schema AttributeName=<primary-key-attribute-name>,KeyType=<key-role> \
        --provisioned-throughput ReadCapacityUnits=<provisioned-read-throughput>,WriteCapacityUnits=<provisioned-write-throughput>

    パラメーター

    説明

    --endpoint-url

    ターゲットの DynamoDB 互換インスタンスのエンドポイント。 エンドポイントは http:// で始まる必要があります。

    create-table

    テーブルを作成するコマンドです。

    説明

    詳細については、「create-table」をご参照ください。

    --table-name

    作成するテーブルの名前です。

    --attribute-definitions

    テーブルまたはインデックスのキーのスキーマを記述する属性の配列です。 このパラメーターには、次のサブパラメーターが必要です。

    • AttributeName:属性の名前です。

    • AttributeType:属性のデータの型です。

      説明

      詳細については、「create-table」をご参照ください。

    --key-schema

    テーブルまたはインデックスのプライマリキーを構成する属性です。 このパラメーターには、次のサブパラメーターが必要です。

    • AttributeName:キー属性の名前です。 属性は --attribute-definitions パラメーターを使用して定義されます。

    • KeyType:キーのロールです。 有効な値:HASH と RANGE。 HASH はパーティションキーを指定し、RANGE はソートキーを指定します。

      説明

      詳細については、「create-table」をご参照ください。

    --provisioned-throughput

    テーブルまたはインデックスのプロビジョニングされたスループット設定です。 このパラメーターには、次のサブパラメーターが必要です。

    • ReadCapacityUnits:プロビジョニングされた読み取りスループットです。

    • WriteCapacityUnits:プロビジョニングされた書き込みスループットです。

    説明

    詳細については、「create-table」をご参照ください。

    例:

    /usr/local/bin/aws dynamodb --endpoint-url http://dds-xxxx.mongodb.rds.aliyuncs.com:3717 \ # DynamoDB 互換インスタンスの指定されたエンドポイントに接続します。
        create-table --table-name student \ # student という名前のテーブルを作成します。
        --attribute-definitions AttributeName=name,AttributeType=S AttributeName=age,AttributeType=N \ # テーブルスキーマには、String (S) 型の 'name' 属性と Number (N) 型の 'age' 属性が含まれます。
        --key-schema AttributeName=name,KeyType=HASH AttributeName=age,KeyType=RANGE \ # 'name' をパーティションキーとして、'age' をソートキーとして指定します。
        --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 # プロビジョニングされた読み取りスループットと書き込みスループットを 5 に設定します。

    次の出力が返された場合、ターゲットの DynamoDB 互換インスタンスに接続し、テーブルが作成されたことになります。

    {
        "TableDescription": {
            "TableName": "student",
            "KeySchema": [
                {
                    "AttributeName": "name",
                    "KeyType": "HASH"
                },
                {
                    "AttributeName": "age",
                    "KeyType": "RANGE"
                }
            ],
            "TableStatus": "CREATING",
            "TableSizeBytes": 0,
            "ItemCount": 0
        }
    }
                            

Python を使用した接続

  • Python 2.6 以降のバージョンがインストールされていること。 詳細については、「Python 公式ウェブサイト」をご参照ください。

  • Boto3 がインストールされていること。 詳細については、「Boto3 のインストール」をご参照ください。

次のコードは、Python を使用して DynamoDB 互換インスタンスに接続し、Book という名前のテーブルを作成する方法を示しています。

import boto3

def create_book_table(dynamodb=None):
 if not dynamodb:
 # endpoint_url をご利用の DynamoDB 互換インスタンスの実際のエンドポイントに置き換えます。
 dynamodb = boto3.resource('dynamodb', endpoint_url="http://dds-xxxx.mongodb.rds.aliyuncs.com:3717")
 table = dynamodb.create_table(
 TableName='Book',
 KeySchema=[
 {
 'AttributeName':'title',
 'KeyType':'HASH'
 },
 {
 'AttributeName':'year',
 'KeyType':'RANGE'
 }
 ],
 AttributeDefinitions=[
 {
 'AttributeName':'title',
 'AttributeType':'S'
 },
 {
 'AttributeName':'year',
 'AttributeType':'N'
 },
 ],
 ProvisionedThroughput={
 'ReadCapacityUnits':5,
 'WriteCapacityUnits':5
 }
 )
 return table

if __name__ == '__main__':
 book_table =create_book_table()
 print("Table status:", book_table.table_status)

Java を使用した接続

AWS SDK for Java は必須です。詳細については、「AWS SDK for Java をセットアップする」をご参照ください。

次のコードは、Java を使用して DynamoDB 互換インスタンスに接続し、Book という名前のテーブルを作成する方法を示しています。

package com.amazonaws.codesamples.gsg;

import java.util.Arrays;
import com.amazonaws.client.builder.AwsClientBuilder;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder;
import com.amazonaws.services.dynamodbv2.document.DynamoDB;
import com.amazonaws.services.dynamodbv2.document.Table;
import com.amazonaws.services.dynamodbv2.model.AttributeDefinition;
import com.amazonaws.services.dynamodbv2.model.KeySchemaElement;
import com.amazonaws.services.dynamodbv2.model.KeyType;
import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughput;
import com.amazonaws.services.dynamodbv2.model.ScalarAttributeType;

public class MoviesCreateTable {
 public static void main(String[] args) throws Exception {
 
        // endpoint と region を、ご利用の DynamoDB 互換インスタンスの実際の値に置き換えます。
        AmazonDynamoDB client =AmazonDynamoDBClientBuilder.standard()
            .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("http://dds-xxxx.mongodb.rds.aliyuncs.com:3717",
"us-east-1"))
            .build();

 DynamoDB dynamoDB = new DynamoDB(client);

 String tableName ="Book";

 try {
 System.out.println("Creating table...");
 Table table =dynamoDB.createTable(tableName,
 Arrays.asList(new
KeySchemaElement("title", KeyType.HASH), // パーティションキー
 new KeySchemaElement("year", KeyType.RANGE)), // ソートキー
 Arrays.asList(new AttributeDefinition("title", ScalarAttributeType.S),
 new AttributeDefinition("year", ScalarAttributeType.N)),
 new ProvisionedThroughput(5L, 5L));
 table.waitForActive();
System.out.println("OK. Table status: " + table.getDescription().getTableStatus());
 }
 catch (Exception e) {
System.err.println("Unable to create table: ");
System.err.println(e.getMessage());
 }
 }
}

その他の言語での接続例

詳細については、「DynamoDB と AWS SDKs を使用したクイックスタート」をご参照ください。