728x90
- 완전관리형 NoSQL DB서비스
- 하드웨어 프로비저닝, 구성 및 설정, 복제, 패치, 클러스터 스케일링 등을 신경쓸 필요가 없다.
- KMS를 이용한 Key관리 지원을 통한 보안 강화도 도모함
- DB 테이블
- DynamoDB
- 자동으로 AWS 리전별로 데이터를 AZ 3곳에 복제하여 저장
- 하나 장애가 발생하여 정지해도 DB 정상 사용 가능 → ⭐ 고가용성
- 높은 가용성 및 지속성 제공
- 따로 데이터 백업 필요 ❌
- AWS S3와 같이 저장 용량은 무제한
- 데이터 형식
- Scalar Data types : Number, String, Binary
- Multi-valued types : Number Set, String Set, Binary Set
- Primary Key
- 해시키 : 고유값
- 해키키 + 범위키 :정렬 / 범위 값 / 모델 복합
- 인덱스
- 로컬 보조 인덱스(LSI)
- 글로벌 보조 인덱스(GSI)
No-SQL
- SQL과 반대
- 정형화되지 않은 구조
- 대규모, 대용량 동시 서비스가 필요한 곳에서 사용
- MongoDB, DynamoDB
- environment
- public subnet 1
- private subnet 3
- deploy cloud9 to public subnet
- dynamo 테이블 생성
aws dynamodb create-table \
--table-name ProductCatalog \
--attribute-definitions \
AttributeName=Id,AttributeType=N \
--key-schema \
AttributeName=Id,KeyType=HASH \
--provisioned-throughput \
ReadCapacityUnits=10,WriteCapacityUnits=5
aws dynamodb create-table \
--table-name Forum \
--attribute-definitions \
AttributeName=Name,AttributeType=S \
--key-schema \
AttributeName=Name,KeyType=HASH \
--provisioned-throughput \
ReadCapacityUnits=10,WriteCapacityUnits=5
aws dynamodb create-table \
--table-name Thread \
--attribute-definitions \
AttributeName=ForumName,AttributeType=S \
AttributeName=Subject,AttributeType=S \
--key-schema \
AttributeName=ForumName,KeyType=HASH \
AttributeName=Subject,KeyType=RANGE \
--provisioned-throughput \
ReadCapacityUnits=10,WriteCapacityUnits=5
aws dynamodb create-table \
--table-name Reply \
--attribute-definitions \
AttributeName=Id,AttributeType=S \
AttributeName=ReplyDateTime,AttributeType=S \
--key-schema \
AttributeName=Id,KeyType=HASH \
AttributeName=ReplyDateTime,KeyType=RANGE \
--provisioned-throughput \
ReadCapacityUnits=10,WriteCapacityUnits=5
aws dynamodb wait table-exists --table-name ProductCatalog && \
aws dynamodb wait table-exists --table-name Reply && \
aws dynamodb wait table-exists --table-name Forum && \
aws dynamodb wait table-exists --table-name Thread
- 테이블 목록
- ProductCatalog
- Forum
- Thread
- Reply
Explore DynamoDB with the CLI
- 높은 수준의 추상화 : Table (내부에 다른 테이블 구성을 가지고 있는 데이터베이스의 개념 ❌)
- 테이블 내부
items
: 타 DB의 row와 유사Attributes
: column과 유사- Items: Attributes의 모음
- 테이블 생성시의 반드시 하나의 속성을
Partition Key
(Hash Key라고도 함)로 지정해야한다.- 모든 아이템은 해당 행을 고유하게 식별하는 기본키(Primary Key)가 존재해야함
- 선택적으로 다른 키를 정렬 키로 지정할 수도 있다.
- Partition Key하나만 존재하면 해당 키는 Primary Key가 된다.
- 만약, Partition Key와 Primary Key가 둘 다 존재하면 Partition Key - Sort Key 조합이 기본키가 된다.
- 즉, Sort Key는 다르고 Partition Key는 같은 Item 쌍이 존재할 수 있다.
- 동일한 Partition Key → 동일한 Attributes Collections에 속한다고 할 수 있음
- Read/Write Capacity Modes
- 온디맨드 용량 사용
- → 쓰기 작업시, WRU
- → 읽기 작업시, RRU
- 프로비저닝된 용량 사용
- → 쓰기 작업시,WCU
- → 읽기 작업시, RCU
- 온디맨드 용량 사용
🔗 Reference
728x90
'⚙️ DevOps > AWS' 카테고리의 다른 글
[AWS/EFS, API Gateway, Lambda] 비디오 서버 서버리스로 마이그레이션 하기 (45) | 2024.01.28 |
---|---|
[AWS/DynamoDB] Explore DynamoDB with the CLI (35) | 2024.01.21 |
[AWS/Secrets Manager] 키 관리 Secrets Manager 로 간단히 하기 (32) | 2023.12.09 |
[AWS/Elastic IP] EC2에 탄력적 IP 주소 할당하기 (0) | 2022.08.09 |
[AWS/RDS] RDS TimeZone 변경하기 (0) | 2022.05.20 |