컴퓨터에 로컬로 DynamoDB 배포 - Amazon DynamoDB

컴퓨터에 로컬로 DynamoDB 배포

중요

DynamoDB 로컬 jar는 여기에 참조된 AWS CloudFront 배포 링크에서 다운로드할 수 있습니다. 2025년 1월 1일부터 기존 S3 배포 버킷은 더 이상 활성화되지 않으며 DynamoDB 로컬은 CloudFront 배포 링크를 통해서만 배포됩니다.

참고
  • DynamoDB 로컬에는 두 가지 메이저 버전, 즉 DynamoDB 로컬 v2.x(현재)와 DynamoDB 로컬 v1.x(레거시)가 있습니다. 가능한 경우 버전 2.x(현재)를 사용해야 합니다. 이 버전은 최신 버전의 Java 런타임 환경을 지원하고 Maven 프로젝트의 jakarta.* 네임스페이스와 호환되기 때문입니다. 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.5.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번 포트를 사용할 수 없는 경우에는 이 명령에서 예외가 발생합니다. -port를 포함한 DynamoDB 런타임 옵션의 전체 목록을 보려면 이 명령을 입력합니다.

    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 CLI의 aws configure 명령을 사용하여 자격 증명을 설정할 수 있습니다. 자세한 내용은 AWS CLI 사용 단원을 참조하십시오.

  5. 애플리케이션 작성을 시작합니다. AWS CLI를 통해 로컬에서 실행되는 DynamoDB에 액세스하려면 --endpoint-url 파라미터를 사용합니다. 예를 들어, 다음 명령을 사용하여 DynamoDB 테이블을 나열합니다.

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

Amazon DynamoDB의 다운로드 가능 버전은 도커 이미지로 제공됩니다. 자세한 내용은 dynamodb-local 단원을 참조하세요. 현재 DynamoDB 로컬 버전을 확인하려면 다음 명령을 입력합니다.

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

DynamoDB Local을 AWS Serverless Application Model(AWS SAM)에 빌드된 REST 애플리케이션의 일부로 사용하는 예제는 주문 관리를 위한 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 컨테이너를 만듭니다. 이 스크립트는 app-node 컨테이너에서 AWS CLI를 사용하여 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 보안 키를 지정해야 하지만 유효한 AWS 키가 없어도 DynamoDB Local에 액세스할 수 있습니다.

  3. 다음 명령줄 명령을 실행합니다.

    docker-compose up

다음 단계에 따라 애플리케이션의 Amazon DynamoDB를 종속 항목으로 사용합니다.

DynamoDB를 Apache Maven 리포지토리로 배포하려면
  1. Apache Maven을 다운로드하고 설치합니다. 자세한 내용은 Downloading Apache MavenInstalling Apache Maven을 참조하세요.

  2. 애플리케이션의 POM(Project Object Model) 파일에 DynamoDB Maven 리포지토리를 추가합니다.

    <!--Dependency:--> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>DynamoDBLocal</artifactId> <version>2.5.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.5.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 Local Sample Java Project를 참조하세요.