コンピュータ上で DynamoDB をローカルでデプロイする - Amazon DynamoDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

コンピュータ上で DynamoDB をローカルでデプロイする

重要

DynamoDB ローカル jar は、 AWS CloudFrontこちらで参照されているディストリビューションリンクからダウンロードできます。2025 年 1 月 1 日以降、古い S3 ディストリビューションバケットはアクティブではなくなり、DynamoDB CloudFront ローカルはディストリビューションリンクを通じてのみ配布されます。

DynamoDB ローカルには、DynamoDB ローカル v2.x (現行) と DynamoDB ローカル v1.x (レガシー) の 2 つのメジャーバージョンがあります。バージョン 2.x (現行) は Java ランタイム環境の最新バージョンをサポートし、Maven プロジェクトの jakarta.* 名前空間と互換性があるため、できる限りバージョン 2.x (最新) を使用してください。DynamoDB ローカル v1.x は、2025 年 1 月 1 日に標準サポートが終了します。この日を過ぎると、v1.x は更新やバグ修正を受けられなくなります。
注記

DynamoDB local の AWS_ACCESS_KEY_ID には、文字 (A~Z、a~z) と数字 (0~9) のみを使用できます。

これらのステップに従って DynamoDB をコンピュータにセットアップして実行します。

コンピュータに DynamoDB をセットアップするには
  1. 次のいずれかの場所から DynamoDB をローカルに無料でダウンロードします。

    ダウンロードリンク チェックサム

    .tar.gz | .zip

    .tar.gz.sha256 | .zip.sha256

    重要

    DynamoDB v2.3.0 以降をコンピューターで実行するには、Java ランタイム環境 (JRE) バージョン 17.x 以降が必要です。アプリケーションは、以前のバージョンの JRE では動作しません。

  2. アーカイブをダウンロードしたら、内容を抽出し、抽出されたディレクトリを任意の場所にコピーします。

  3. コンピュータで 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

  4. プログラムまたは AWS Command Line Interface (AWS CLI) を介して DynamoDB にアクセスする前に、アプリケーションで認証が有効になるように認証情報を設定する必要があります。以下の例に示されているように、ダウンロード可能な DynamoDB には、認証情報が必要です。

    AWS Access Key ID: "fakeMyKeyId" AWS Secret Access Key: "fakeSecretAccessKey" Default Region Name: "fakeRegion"

    aws configure の AWS CLI コマンドを使用して、認証情報を設定できます。詳細については、「」を参照してくださいAWS CLIの使用

  5. アプリケーションの書き込みを開始します。を使用してローカルで実行されている DynamoDB にアクセスするには AWS CLI、パラメータを使用します。--endpoint-url たとえば、次のコマンドを使用して、DynamoDB テーブルを一覧表示します。

    aws dynamodb list-tables --endpoint-url http://localhost:8000

Amazon DynamoDB のダウンロード可能バージョンは、Docker イメージとして入手できます。詳細については、「dynamodb-local」を参照してください。現在の DynamoDB ローカルバージョンを確認するには、次のコマンドを入力します。

java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -version

AWS Serverless Application Model (AWS SAM) 上に構築された REST アプリケーションの一部として DynamoDB ローカルを使用する例については、「注文管理用の SAM DynamoDB アプリケーション」を参照してください。このサンプルアプリケーションは、DynamoDB local をテストで使用する方法を示しています。

DynamoDB local のコンテナも使用するマルチコンテナアプリケーションを実行する場合は、Docker Compose を使用して、アプリケーション内のすべてのサービス (DynamoDB local を含む) を定義して実行します。

Docker Compose を使用して DynamoDB local をインストールして実行するには
  1. Docker Desktop をダウンロードしてインストールします。

  2. 以下のコードをファイルにコピーし、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 AWS ローカルにアクセスするための有効なキーである必要はありません。

  3. 次のコマンドラインのコマンドを実行します。

    docker-compose up

Amazon DynamoDB をアプリケーション内で依存関係として使用するには、これらのステップに従います。

DynamoDB を Apache Maven リポジトリとしてデプロイするには
  1. Apache Maven をダウンロードし、インストールします。詳細については、「Apache Maven のダウンロード」および「Apache Maven のインストール」を参照してください。

  2. DynamoDB の Maven リポジトリをアプリケーションのプロジェクトオブジェクトモデル (POM) ファイルに追加します。

    <!--Dependency:--> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>DynamoDBLocal</artifactId> <version>2.3.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.3.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 を使用することもできます。

JAR ファイルのダウンロード、Docker イメージとしての実行、Maven 依存関係としての使用など、DynamoDB をローカルに設定して使用する複数の方法を紹介するサンプルプロジェクトの例については、「DynamoDB ローカルサンプル Java プロジェクト」を参照してください。