AWS

AWS DynamoDB Local 설치

Somaz 2025. 1. 3. 16:44
728x90
반응형

Overview

이전에 AWS DynamoDB에 대해서 알아보았다.

이번에는 Local Cluster에 DB로 설치하는 방법에 대해서 알아본다. 

출처 : https://hub.docker.com/r/amazon/dynamodb-local/tags

 

 

DynamoDB의 개념에 대해서 알아보고 싶다면 아래의 글을 참고하길 바란다.

2024.11.27 - [AWS] - AWS DynamoDB란?

 

AWS DynamoDB란?

OverviewAWS DyanmoDB에 대해서 알아본다.  AWS DynamoDB란? Amazon DynamoDB는 AWS에서 제공하는 완전 관리형 NoSQL 데이터베이스 서비스이다. 최신 애플리케이션에 고성능, 확장성 및 안정성을 제공하도록 설

somaz.tistory.com

 

 


 

DynamoDB 설치

DynamoDB는 In-Memory(Stateless) 방식과 Data Storage(Stateful) 방식으로 설치할 수 있다.

 

DynamoDB Local 이미지의 Docker hub 주소는 아래와 같다.

 

아래의 방식으로 간단하게 설치 가능하다.

 

 

In-Memory 및 Data Storage 방법 간의 차이점

Feature In-Memory Method Data Storage Method
Data Persistence DynamoDB Local이 중지되면 데이터가 손실된다. 데이터는 디스크에 저장되어 지속적으로 유지된다.
Configuration `-dbPath` 매개변수가 필요없다. `-dbPath` 매개변수가 필요하다.
Performance 디스크 I/O가 없으므로 더 빠르다. 디스크 쓰기로 인해 약간 느리다.
Use Case 일시적 또는 임시적 테스트. 지속적인 데이터로 테스트

 

 

In-Memory 설치 방법

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: stateless-dynamodb
  name: stateless-dynamodb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: stateless-dynamodb
  template:
    metadata:
      labels:
        app: stateless-dynamodb
    spec:
      containers:
      - image: amazon/dynamodb-local:2.5.3
        name: dynamodb-local
        ports:
        - containerPort: 8000
        volumeMounts:
        - name: dynamodb-data
          mountPath: /home/dynamodblocal/data
      volumes:
      - name: dynamodb-data
        persistentVolumeClaim:
          claimName: stateless-dynamodb-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: stateless-dynamodb-pvc
spec:
  storageClassName: nfs-client-sts
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: stateless-dynamodb
  name: stateless-dynamodb
spec:
  type: NodePort
  ports:
  - port: 8000
    nodePort: 30637
    protocol: TCP
  selector:
    app: stateless-dynamodb

 

In-Memory Pod 로그

Initializing DynamoDB Local with the following configuration:
Port:   8000
InMemory:       true
Version:        2.5.3
DbPath: null
SharedDb:       false
shouldDelayTransientStatuses:   false
CorsParams:     null

 

 

Data Storage 설치 방법

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: stateful-dynamodb
  name: stateful-dynamodb
spec:
  replicas: 1
  selector:
    matchLabels:
      app: stateful-dynamodb
  template:
    metadata:
      labels:
        app: stateful-dynamodb
    spec:
      containers:
      - image: amazon/dynamodb-local:2.5.3
        name: dynamodb-local
        command: ["java", "-jar", "DynamoDBLocal.jar", "-sharedDb", "-dbPath", "/home/dynamodblocal/data"]
        ports:
        - containerPort: 8000
        volumeMounts:
        - name: dynamodb-data
          mountPath: /home/dynamodblocal/data
      volumes:
      - name: dynamodb-data
        persistentVolumeClaim:
          claimName: stateful-dynamodb-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: stateful-dynamodb-pvc
spec:
  storageClassName: nfs-client-sts
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: stateful-dynamodb
  name: stateful-dynamodb
spec:
  type: NodePort
  ports:
  - port: 8000
    nodePort: 30637
    protocol: TCP
  selector:
    app: stateful-dynamodb

 

 

Data Storage Pod 로그

Initializing DynamoDB Local with the following configuration:
Port:   8000
InMemory:       false
Version:        2.5.3
DbPath: /home/dynamodblocal/data
SharedDb:       true
shouldDelayTransientStatuses:   false
CorsParams:     null

 

 


Reference

https://hub.docker.com/r/amazon/dynamodb-local/tags

728x90
반응형

'AWS' 카테고리의 다른 글

AWS DynamoDB란?  (0) 2024.11.27
EKS Pod Identity Addon  (0) 2024.11.24
ALB access Log 활성화 → S3 권한 설정 및 로그 저장  (0) 2024.11.21
AWS Network ACL vs Security Group  (0) 2024.11.16
AWS Ingress Annotations 정리  (0) 2024.11.07