-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Description
상위 작업 Ticket Number
ECS-39
브랜치명(Branch)
infra/dynamodb-elasticache-msk
이슈 내용(Description)
Terraform을 활용한 핵심 데이터 서비스(DynamoDB, ElastiCache, MSK) 인프라 구성
상세 내용(Details)
작업 목적
MSA 구조 기반 인프라 아키텍처에 따라, 핵심 데이터 저장소(DynamoDB), 인메모리 캐시(ElastiCache), 그리고 비동기 메시지 큐(MSK를 코드로 구성하여 자동화되고 재현 가능한 데이터 플랫폼을 구축
구성 대상
- DynamoDB |
- 테이블: mapzip.shop-main-table
- 목적: MSA 서비스의 핵심 데이터를 저장하는 NoSQL 데이터베이스
- 구성 조건:
- 과금 모델: On-Demand (PAY_PER_REQUEST)
- 파티션 키: id (String)
- 암호화: 기본 AWS 관리형 키로 활성화
- 삭제 방지: 활성화 (deletion_protection_enabled = true)
2.ElastiCache (Redis)
- 클러스터: mapzip.shop-redis
- 목적: 데이터베이스 부하 감소 및 응답 속도 향상을 위한 캐싱 계층
- 구성 조건: |
- 엔진: Redis |
- Subnet Group: VPC 내 프라이빗 서브넷 3개 활용
- 보안 그룹: 내부 서비스에서만 Redis 포트 접근 허용
- Multi-AZ: 자동 장애 조치(AutomaticFailover) 기능 활성화
- 암호화: 전송 중(In-Transit) 및 저장 시(At-Rest) 암호화 활성화
- MSK (Managed Streaming for Kafka)
- 클러스터: mapzip.shop-kafka
- 목적: 추천 생성 등 비동기 처리가 필요한 작업을 위한 메시지 큐 시스템
- 구성 조건:
- 인증 방식: SASL/IAM을 통한 클라이언트 인증 활성화
- Subnet Group: VPC 내 프라이빗 서브넷 3개 활용
- 보안 그룹: EKS Pod에서만 Kafka 포트(9098) 접근 허용
- 고가용성: Broker 3개 노드 구성 (프로덕션 기준)
- 암호화: 전송 중(In-Transit) 암호화 활성화
Prefix / Naming Rule
- 모든 리소스는 mapzip.shop prefix를 기반으로 환경(dev, prod 등)을 포함하여 네이밍
체크리스트(Tasks)
- DynamoDB 테이블 생성 (mapzip.shop-main-table)
- DynamoDB 삭제 방지 기능 활성화
- ElastiCache Subnet Group 구성 (프라이빗 서브넷 기반)
- ElastiCache 보안 그룹 구성 (내부 서비스만 허용)
- ElastiCache for Redis 클러스터 생성
- ElastiCache Multi-AZ 및 암호화 기능 활성화
- MSK 보안 그룹 구성 (EKS Pod만 허용)
- MSK 클러스터 생성
- 공통 태그 적용(Project, Owner, Environment 등)
- terraform plan 및 apply 테스트 완료
참조(References)
- Reference1
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels