Skip to content

[ECS-47] DynamoDB & ElastiCache&MSK 생성 #28

@csm123455

Description

@csm123455

상위 작업 Ticket Number

ECS-39

브랜치명(Branch)

infra/dynamodb-elasticache-msk

이슈 내용(Description)

Terraform을 활용한 핵심 데이터 서비스(DynamoDB, ElastiCache, MSK) 인프라 구성

상세 내용(Details)

작업 목적
MSA 구조 기반 인프라 아키텍처에 따라, 핵심 데이터 저장소(DynamoDB), 인메모리 캐시(ElastiCache), 그리고 비동기 메시지 큐(MSK를 코드로 구성하여 자동화되고 재현 가능한 데이터 플랫폼을 구축

구성 대상

  1. 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) 암호화 활성화
  1. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions