Skip to content

feat: DB EC2 리소스 추가 및 Prod 환경에 적용 #50

@Hexeong

Description

@Hexeong

상위 이슈

#39

작업 내용

Prod 환경의 RDS를 EC2 t4g.nano로 전환하는 첫 번째 단계입니다.
이 PR이 머지되면 기존 RDS는 유지된 채로 DB EC2만 새로 생성됩니다.

modules/app_stack/ 변경

  • db_ec2.tf 신규 작성
    • aws_instance.db_server (enable_db_ec2 ? 1 : 0)
    • ARM Ubuntu AMI 기반, private 배치, gp3 20GB
    • cloud-init으로 MySQL 설치 및 튜닝 설정 적용
  • security_groups.tf 수정
    • aws_security_group.db_ec2_sg 추가 (인바운드 3306: api_sg에서만 허용)
  • variables.tf 수정
    • enable_db_ec2 (bool, default: false)
    • db_instance_type (string)
    • db_ami_id (string)
  • output.tf 수정
    • db_server_private_ip, db_server_instance_id 추가
  • scripts/mysql_setup.sh.tftpl 신규 작성
    • MySQL 설치 + 벤치마크 기반 튜닝 적용

environment/prod/ 변경

  • main.tf: enable_db_ec2 = true 및 관련 변수 전달 추가
  • variables.tf: db_instance_type, db_ami_id 변수 추가

작업 상세 내용

  • modules/app_stack/scripts/mysql_setup.sh.tftpl 작성
  • modules/app_stack/db_ec2.tf 작성
  • modules/app_stack/security_groups.tf 수정
  • modules/app_stack/variables.tf 수정
  • modules/app_stack/output.tf 수정
  • environment/prod/variables.tf 수정
  • environment/prod/main.tf 수정

주의사항

이 작업 완료 후 RDS와 DB EC2가 동시에 존재하는 상태가 됩니다.
다음 단계인 데이터 마이그레이션(서브 이슈 2)이 완료되기 전까지 앱은 기존 RDS를 바라봅니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions