Skip to content

Merge dev into main - #240

Merged
SinnoLn merged 1 commit into
mainfrom
dev
Aug 26, 2026
Merged

SinnoLn merged 1 commit into
mainfrom
dev

Conversation

@SinnoLn

@SinnoLn SinnoLn commented Aug 26, 2026 •

Copy link
Copy Markdown
Member
  • cicd 변경사항 적용을 위해 Main Merge
  • 이후, Dev 브랜치 자동 배포 적용

Summary by CodeRabbit

  • 새로운 기능

    • Grafana에서 애플리케이션, PostgreSQL, Redis 상태와 성능을 확인할 수 있는 대시보드를 추가했습니다.
    • CI 완료 후 컨테이너 이미지가 자동으로 게시되고 배포되도록 개선했습니다.
    • 수동 배포와 대시보드 게시를 지원합니다.
    • Prometheus 메트릭을 수집해 Grafana Cloud로 전송합니다.
  • 개선 사항

    • 배포 시 애플리케이션 상태 확인과 서비스 재기동 절차를 개선했습니다.
    • 데이터 볼륨 보호를 강화했습니다.
    • 배포 대상 확인 및 원격 명령 실행 안정성을 높였습니다.
  • 변경 사항

    • 개발 환경에서 Mailpit 서비스가 제거되었습니다.

* chore(observability): move Grafana dashboards to docs

* ci: deploy Grafana dashboards from GitHub Actions

* refactor(observability): manage Alloy configuration with deployment artifacts

* chore(dev): remove Mailpit from local and home environments

* build: separate local and CI Docker build flows

* refactor(deploy): optimize application rollout and health checks

* refactor(deploy): resolve instances through SSM Parameter Store

* fix(infra): improve AOP mTLS health check

* ci: reuse tested artifacts in deployment workflows

* refactor(infra): harden EBS deployment and reuse CI-built images
@coderabbitai

coderabbitai Bot commented Aug 26, 2026 •

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: a6f7e779-d2c6-4de5-8c7f-de4ff24439de

📥 Commits

Reviewing files that changed from the base of the PR and between 41bcd22 and 0ad9741.

📒 Files selected for processing (31)
  • .dockerignore
  • .github/scripts/home-dev-sync.sh
  • .github/scripts/ssm-command.sh
  • .github/scripts/ssm-deploy.sh
  • .github/workflows/ci.yml
  • .github/workflows/deploy-home-dev.yml
  • .github/workflows/deploy.yml
  • .github/workflows/grafana-dashboard.yml
  • Dockerfile
  • Dockerfile.local
  • deploy/config.alloy
  • deploy/docker-compose.home-dev.yml
  • deploy/docker-compose.yml
  • docker-compose.yml
  • docs/grafana/chaeso-zip-app.json
  • docs/grafana/chaeso-zip-infra.json
  • docs/test-infra.md
  • infra/check.sh
  • infra/environments/aws/prod/cicd.tf
  • infra/environments/aws/prod/dashboards/chaeso-zip-app.json
  • infra/environments/aws/prod/dashboards/chaeso-zip-infra.json
  • infra/environments/aws/prod/main.tf
  • infra/environments/aws/prod/monitoring.tf
  • infra/environments/aws/prod/terraform.tfvars.example
  • infra/environments/aws/prod/variables.tf
  • infra/modules/aws/app/config.alloy.tftpl
  • infra/modules/aws/app/main.tf
  • infra/modules/aws/app/outputs.tf
  • infra/modules/aws/app/remote-deploy.sh
  • infra/modules/aws/app/startup-script.sh.tftpl
  • infra/modules/aws/app/variables.tf

📝 Walkthrough

Walkthrough

CI가 GHCR에 이미지를 게시하고, 배포 워크플로가 이미지를 ECR로 promote한 뒤 SSM으로 배포합니다. Alloy와 Grafana 대시보드 구성을 추가하고, EC2 런타임과 개발 Compose 구성을 변경했습니다.

Changes

이미지 빌드 및 배포 파이프라인

Layer / File(s) Summary
사전 빌드 이미지 구성
.dockerignore, Dockerfile, Dockerfile.local, docker-compose.yml
기본 Dockerfile은 build/libs의 JAR을 사용합니다. Dockerfile.local은 Gradle 빌드와 Spring Boot 계층 추출을 수행합니다.
CI 이미지 게시
.github/workflows/ci.yml
main과 dev 브랜치의 성공한 push가 GHCR에 커밋 SHA와 브랜치 태그의 이미지를 게시합니다.
워크플로 기반 배포
.github/workflows/deploy.yml, .github/workflows/deploy-home-dev.yml
CI 완료 이벤트와 수동 실행을 처리합니다. 지정된 커밋 이미지를 검증하고 배포 및 알림에 사용합니다.
SSM 원격 실행
.github/scripts/ssm-command.sh, .github/scripts/ssm-deploy.sh
명령을 Base64로 인코딩해 SSM으로 실행합니다. 인스턴스 ID는 Parameter Store에서 조회할 수 있습니다.

Grafana 관측성 구성

Layer / File(s) Summary
Alloy 메트릭 수집
deploy/config.alloy, deploy/docker-compose.yml
애플리케이션과 PostgreSQL·Redis exporter 메트릭을 필터링해 Grafana Cloud로 전송합니다.
Grafana 대시보드
docs/grafana/*.json
애플리케이션, PostgreSQL, Redis의 상태와 성능 패널을 추가합니다.
대시보드 게시
.github/workflows/grafana-dashboard.yml
대시보드 JSON을 검증하고 Grafana API에 덮어써서 게시합니다.

EC2 런타임 및 개발 스택

Layer / File(s) Summary
Terraform 인스턴스 구성
infra/environments/aws/prod/*, infra/modules/aws/app/*
인스턴스 ID를 SSM Parameter Store에 저장합니다. Grafana Terraform 리소스를 제거하고 데이터 볼륨 삭제 방지를 추가합니다.
시작 및 원격 배포
infra/modules/aws/app/startup-script.sh.tftpl, infra/modules/aws/app/remote-deploy.sh, .github/scripts/home-dev-sync.sh
데이터 볼륨 마운트 실패 시 시작을 중단합니다. app 이미지와 embedded 서비스의 기동을 분리합니다.
개발 스택 및 mTLS 검증
docker-compose.yml, deploy/docker-compose.home-dev.yml, docs/test-infra.md, infra/check.sh
Mailpit을 제거합니다. mTLS 검증을 인증서 없는 HTTPS 요청 방식으로 변경합니다.

Estimated code review effort: 4 (Complex) | ~60 minutes

Sequence Diagram(s)

sequenceDiagram
  participant CI
  participant GHCR
  participant DeployWorkflow
  participant SSM
  participant EC2
  participant GrafanaCloud
  CI->>GHCR: 커밋 SHA 이미지 게시
  DeployWorkflow->>GHCR: 이미지 검증 및 조회
  DeployWorkflow->>SSM: 배포 명령 전송
  SSM->>EC2: 애플리케이션 배포 실행
  EC2->>GrafanaCloud: Alloy 메트릭 remote write
Loading
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@SinnoLn
SinnoLn merged commit f161112 into main Aug 26, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant