Skip to content

[이다솔] sprint8#249

Open
LeeDyol wants to merge 253 commits into
codeit-bootcamp-spring:이다솔from
LeeDyol:release
Open

[이다솔] sprint8#249
LeeDyol wants to merge 253 commits into
codeit-bootcamp-spring:이다솔from
LeeDyol:release

Conversation

@LeeDyol
Copy link
Copy Markdown
Collaborator

@LeeDyol LeeDyol commented Apr 8, 2026

요구사항

기본

  • Amazon Corretto 17 베이스 이미지 사용 및 Dockerfile 작성

  • 환경 변수 (PROJECT_NAME, PROJECT_VERSION, JVM_OPTS) 설정 및 80 포트 노출

  • Docker 이미지 빌드 및 'prod' 프로필 컨테이너 실행 테스트

  • 개발 환경용 'docker-compose.yaml' 작성

  • 애플리케이션 및 DB 볼륨 구성, '.env' 활용

  • AWS S3 버킷 및 IAM 사용자 생성 (.env에 키 정보 분리)

  • S3BinaryContentStorage 구현 및 PresignedUrl 다운로드 리다이렉트 적용

  • application.yaml을 통한 Storage Type (local / s3) 유연한 제어

  • AWS RDS (PostgreSQL) 프리티어 인스턴스 생성 및 초기화

  • AWS ECR 퍼블릭 레포지토리 생성 및 멀티플랫폼 이미지 푸시

  • AWS ECS 클러스터, 태스크 정의(EC2), 서비스 생성 및 배포 완료

심화

  • 멀티 스테이지 빌드 적용으로 이미지 경량화 (local-slim)

  • 라이브러리 레이어 캐시를 고려한 Dockerfile 최적화

  • CI: test.yml 작성 및 CodeCov 테스트 커버리지 뱃지 README 추가

  • CD: deploy.yml 작성 및 ECR 이미지 자동 빌드 / 푸시

주요 변경사항

  • 이미지 컨테이너 화: Dockerfile 멀티 스테이지 빌드 및 Alpine 이미지를 활용하여 컨테이너 이미지 크기 최적화

  • AWS S3 고도화: AWS S3를 연동하여 정적 파일(BinaryContent)을 클라우드 스토리지에서 안전하게 관리하도록 고도화

  • AWS를 활용한 배포: RDS(PostgreSQL), ECR, ECS 인프라를 구축하고 애플리케이션을 성공적으로 클라우드에 배포

  • 자동화 CI / CD 파이프라인: GitHub Actions를 활용한 파이프라인을 구축 및 배포 간 포트 충돌(Deadlock) 방지를 위한 대기 로직 추가

  • EC2 인스턴스 변경: 프리 티어를 적용하기 위해 t2.micro에서 t3.micro로 변경

  • JVM 옵션 최적화: 스프링 부트 애플리케이션 구동에 필요한 최소 메모리 확보를 위해 메모리 할당량 증가

스크린샷

스크린샷 2026-04-08 오후 1 17 51

RDS

스크린샷 2026-04-08 오후 1 17 34 스크린샷 2026-04-08 오후 1 13 27

ECR

스크린샷 2026-04-08 오전 9 36 14 스크린샷 2026-04-08 오후 1 16 53

ECS

  • 엔드포인트 주소: 43.203.224.140
스크린샷 2026-04-08 오후 1 16 21

VPN

스크린샷 2026-04-08 오후 1 15 23

IAM

스크린샷 2026-04-08 오후 1 14 38

멘토에게

  • 셀프 코드 리뷰를 통해 질문 이어가겠습니다.

LeeDyol added 30 commits March 31, 2026 13:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant