728x90
반응형
Overview
이전에 AWS DynamoDB에 대해서 알아보았다.
이번에는 Local Cluster에 DB로 설치하는 방법에 대해서 알아본다.
DynamoDB의 개념에 대해서 알아보고 싶다면 아래의 글을 참고하길 바란다.
2024.11.27 - [AWS] - AWS DynamoDB란?
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
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 |