コンピュータ上で DynamoDB をローカルでデプロイする
DynamoDB local は実行可能な .jar
ファイルとして提供されます。アプリケーションは、Windows、Linux、macOS、および Java をサポートする他のプラットフォームで動作します。
注記
-
DynamoDB local v2.0.0 以降では jakarta.* 名前空間をサポートしています。Java クラスで javax.* 名前空間を使用するアプリケーション要件がある場合は、DynamoDB local v1.20 以降を使用してください。
-
DynamoDB local の
AWS_ACCESS_KEY_ID
には、文字 (A~Z、a~z) と数字 (0~9) のみを使用できます。
次の手順に従って DynamoDB v1.x をコンピュータでセットアップして実行します。
注記
M1 以降の Apple プロセッサで使用するには、DynamoDB local v1.20 以降が必要です。DynamoDB local v1.x は javax.* 名前空間をサポートしています。Java クラスで jakarta.* 名前空間を使用するアプリケーション要件がある場合は、DynamoDB local v2.0.0 以降を使用してください。
コンピュータで DynamoDB v1.x をセットアップするには
-
DynamoDB local v1.x は、次のいずれかの場所から無料でダウンロードできます。
ダウンロードリンク チェックサム DynamoDB は、AWS Toolkit for Eclipse の一部としても利用できます。詳細については、「AWS Toolkit for Eclipse
」を参照してください。 重要
コンピュータで DynamoDB を実行するには、Java ランタイム環境 (JRE) 6.x 以降のバージョンが必要です。アプリケーションは、以前のバージョンの JRE では動作しません。
-
アーカイブをダウンロードしたら、内容を抽出し、抽出されたディレクトリを任意の場所にコピーします。
-
コンピュータで DynamoDB を開始するには、コマンドプロンプトウィンドウを開き、
DynamoDBLocal.jar
を抽出したディレクトリに移動し、次のコマンドを入力します。java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
注記
Windows PowerShell を使用している場合は、パラメータ名または名前全体と値を次のように囲んでください。
java -D"java.library.path=./DynamoDBLocal_lib" -jar DynamoDBLocal.jar
DynamoDB は、停止するまで受信リクエストを処理します。DynamoDB を停止するには、コマンドプロンプトで Ctrl+C を押します。
DynamoDB は、デフォルトではポート 8000 を使用します。ポート 8000 を使用できない場合、このコマンドにより例外がスローされます。DynamoDB ランタイムオプション (
-port
を含む) の詳細なリストを表示するには、次のコマンドを入力します。java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -help
-
プログラムまたは AWS Command Line Interface (AWS CLI) を介して DynamoDB にアクセスする前に、アプリケーションで認証が有効になるように認証情報を設定する必要があります。以下の例に示されているように、ダウンロード可能な DynamoDB には、認証情報が必要です。
重要
DynamoDB local バージョン 1.23.0 以降では、
AWS_ACCESS_KEY_ID
に文字 (A~Z、a~z) と数字 (0~9) のみを使用できます。AWS Access Key ID: "fakeMyKeyId" AWS Secret Access Key: "fakeSecretAccessKey"
aws configure
の AWS CLI コマンドを使用して、認証情報を設定できます。詳細については、「」を参照してくださいAWS CLI を使用する場合 -
アプリケーションの書き込みを開始します。AWS CLI を使用してローカルで実行中の DynamoDB にアクセスするには、
--endpoint-url
パラメータを使用します。たとえば、次のコマンドを使用して、DynamoDB テーブルを一覧表示します。aws dynamodb list-tables --endpoint-url http://localhost:8000
次の手順に従って DynamoDB v2.x をコンピュータにセットアップして実行します。
注記
M1 以降の Apple プロセッサで使用するには、DynamoDB local v1.20 以降が必要です。DynamoDB local v2.0.0 以降では jakarta.* 名前空間をサポートしています。Java クラスで javax.* 名前空間を使用するアプリケーション要件がある場合は、DynamoDB local v1.20 以降を使用してください。
コンピュータで DynamoDB v2.x をセットアップするには
-
DynamoDB local v2.x は、次のいずれかの場所から無料でダウンロードできます。
ダウンロードリンク チェックサム DynamoDB は、AWS Toolkit for Eclipse の一部としても利用できます。詳細については、「AWS Toolkit for Eclipse
」を参照してください。 重要
コンピュータで DynamoDB v2.0.0 以降を実行するには、Java ランタイム環境 (JRE) バージョン 11.x 以降が必要です。アプリケーションは、以前のバージョンの JRE では動作しません。
-
アーカイブをダウンロードしたら、内容を抽出し、抽出されたディレクトリを任意の場所にコピーします。
-
コンピュータで DynamoDB を開始するには、コマンドプロンプトウィンドウを開き、
DynamoDBLocal.jar
を抽出したディレクトリに移動し、次のコマンドを入力します。java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
注記
Windows PowerShell を使用している場合は、パラメータ名または名前全体と値を次のように囲んでください。
java -D"java.library.path=./DynamoDBLocal_lib" -jar DynamoDBLocal.jar
DynamoDB は、停止するまで受信リクエストを処理します。DynamoDB を停止するには、コマンドプロンプトで Ctrl+C を押します。
DynamoDB は、デフォルトではポート 8000 を使用します。ポート 8000 を使用できない場合、このコマンドにより例外がスローされます。DynamoDB ランタイムオプション (
-port
を含む) の詳細なリストを表示するには、次のコマンドを入力します。java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -help
-
プログラムまたは AWS Command Line Interface (AWS CLI) を介して DynamoDB にアクセスする前に、アプリケーションで認証が有効になるように認証情報を設定する必要があります。以下の例に示されているように、ダウンロード可能な DynamoDB には、認証情報が必要です。
重要
DynamoDB local バージョン 2.0.0 以降では、
AWS_ACCESS_KEY_ID
に文字 (A~Z、a~z) と数字 (0~9) のみを使用できます。AWS Access Key ID: "fakeMyKeyId" AWS Secret Access Key: "fakeSecretAccessKey"
aws configure
の AWS CLI コマンドを使用して、認証情報を設定できます。詳細については、「」を参照してくださいAWS CLI を使用する場合 -
アプリケーションの書き込みを開始します。AWS CLI を使用してローカルで実行中の DynamoDB にアクセスするには、
--endpoint-url
パラメータを使用します。たとえば、次のコマンドを使用して、DynamoDB テーブルを一覧表示します。aws dynamodb list-tables --endpoint-url http://localhost:8000
Amazon DynamoDB のダウンロード可能バージョンは、Docker イメージとして入手できます。詳細については、「dynamodb-local
AWS Serverless Application Model (AWS SAM) で構築した REST アプリケーションの一部として DynamoDB local を使用する例については、「注文を管理するための SAM DynamoDB アプリケーション
DynamoDB local のコンテナも使用するマルチコンテナアプリケーションを実行する場合は、Docker Compose を使用して、アプリケーション内のすべてのサービス (DynamoDB local を含む) を定義して実行します。
Docker Compose を使用して DynamoDB local をインストールして実行するには
-
Docker Desktop
をダウンロードしてインストールします。 -
以下のコードをファイルにコピーし、
docker-compose.yml
として保存します。version: '3.8' services: dynamodb-local: command: "-jar DynamoDBLocal.jar -sharedDb -dbPath ./data" image: "amazon/dynamodb-local:latest" container_name: dynamodb-local ports: - "8000:8000" volumes: - "./docker/dynamodb:/home/dynamodblocal/data" working_dir: /home/dynamodblocal
アプリケーションと DynamoDB local を別々のコンテナにしたい場合は、次の yaml ファイルを使用します。
version: '3.8' services: dynamodb-local: command: "-jar DynamoDBLocal.jar -sharedDb -dbPath ./data" image: "amazon/dynamodb-local:latest" container_name: dynamodb-local ports: - "8000:8000" volumes: - "./docker/dynamodb:/home/dynamodblocal/data" working_dir: /home/dynamodblocal app-node: depends_on: - dynamodb-local image: amazon/aws-cli container_name: app-node ports: - "8080:8080" environment: AWS_ACCESS_KEY_ID: 'DUMMYIDEXAMPLE' AWS_SECRET_ACCESS_KEY: 'DUMMYEXAMPLEKEY' command: dynamodb describe-limits --endpoint-url http://dynamodb-local:8000 --region us-west-2
この docker-compose.yml スクリプトは、
app-node
コンテナとdynamodb-local
コンテナを作成します。スクリプトは、AWS CLI を使用してapp-node
コンテナに接続し、アカウントとテーブルの制限を記述するコマンドをdynamodb-local
コンテナで実行します。独自のアプリケーションイメージで使用するには、以下の例の
image
値をアプリケーションの値に置き換えます。version: '3.8' services: dynamodb-local: command: "-jar DynamoDBLocal.jar -sharedDb -dbPath ./data" image: "amazon/dynamodb-local:latest" container_name: dynamodb-local ports: - "8000:8000" volumes: - "./docker/dynamodb:/home/dynamodblocal/data" working_dir: /home/dynamodblocal app-node: image:
location-of-your-dynamodb-demo-app:latest
container_name: app-node ports: - "8080:8080" depends_on: - "dynamodb-local" links: - "dynamodb-local" environment: AWS_ACCESS_KEY_ID: 'DUMMYIDEXAMPLE' AWS_SECRET_ACCESS_KEY: 'DUMMYEXAMPLEKEY' REGION: 'eu-west-1'注記
YAML スクリプトでは、AWS アクセスキーと AWS シークレットキーを指定する必要がありますが、DynamoDB local にアクセスするための有効な AWS キーである必要はありません。
-
次のコマンドラインのコマンドを実行します。
docker-compose up
Amazon DynamoDB をアプリケーション内で依存関係として使用するには、これらのステップに従います。
DynamoDB v1.x を Apache Maven リポジトリとしてデプロイするには
-
Apache Maven をダウンロードし、インストールします。詳細については、「Apache Maven のダウンロード
」および「Apache Maven のインストール 」を参照してください。 -
DynamoDB の Maven リポジトリをアプリケーションのプロジェクトオブジェクトモデル (POM) ファイルに追加します。
<!--Dependency:--> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>DynamoDBLocal</artifactId> <version>1.23.0</version> </dependency> </dependencies>
注記
-
Maven 中央リポジトリ
の URL を使用することもできます。 -
DynamoDB local v1.x は javax.* 名前空間をサポートしています。Java クラスで jakarta.* 名前空間を使用するアプリケーション要件がある場合は、DynamoDB local v2.0.0 以降を使用してください。
-
Amazon DynamoDB をアプリケーション内で依存関係として使用するには、これらのステップに従います。
DynamoDB v2.x を Apache Maven リポジトリとしてデプロイするには
-
Apache Maven をダウンロードし、インストールします。詳細については、「Apache Maven のダウンロード
」および「Apache Maven のインストール 」を参照してください。 -
DynamoDB の Maven リポジトリをアプリケーションのプロジェクトオブジェクトモデル (POM) ファイルに追加します。
<!--Dependency:--> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>DynamoDBLocal</artifactId> <version>2.0.0</version> </dependency> </dependencies>
Spring Boot 3 や Spring Framework 6 で使用するテンプレートの例:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>SpringMavenDynamoDB</artifactId> <version>1.0-SNAPSHOT</version> <properties> <spring-boot.version>3.0.1</spring-boot.version> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.0.1</version> </parent> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>DynamoDBLocal</artifactId> <version>2.0.0</version> </dependency> <!-- Spring Boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>${spring-boot.version}</version> </dependency> <!-- Spring Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>${spring-boot.version}</version> </dependency> <!-- Spring Data JPA --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <version>${spring-boot.version}</version> </dependency> <!-- Other Spring dependencies --> <!-- Replace the version numbers with the desired version --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>6.0.0</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>6.0.0</version> </dependency> <!-- Add other Spring dependencies as needed --> <!-- Add any other dependencies your project requires --> </dependencies> </project>
注記
-
Maven 中央リポジトリ
の URL を使用することもできます。 -
DynamoDB local v2.0.0 以降では jakarta.* 名前空間をサポートしています。Java クラスで javax.* 名前空間を使用するアプリケーション要件がある場合は、DynamoDB local v1.20 以降を使用してください。
-