Skip to content

개발자 GitOps 배포 검증·임시 AWS 운영 경로 dev 반영 - #16

Merged
masondev1024 merged 24 commits into
devfrom
feat/developer-delivery-e2e
Sep 27, 2026
Merged

masondev1024 merged 24 commits into
devfrom
feat/developer-delivery-e2e

Conversation

@masondev1024

@masondev1024 masondev1024 commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

변경 내용

  • dev/main 공통 테스트·IaC·의존성·비밀정보 검사와 main 전용 이미지 발행 경로를 연결했습니다.
  • prod/validation 각각의 image-only 배포 후보, source SHA·SBOM·해시 검사, GitHub provenance 및 OCI 이미지 attestation 검증을 추가했습니다.
  • validation 앱은 Argo CD가 배포하고, 세션별 DB 설정·인증 정보·Ingress는 별도 부트스트랩으로 분리했습니다. 배포 요청 전에 서명된 후보와 Git의 일치를 재검사합니다.
  • 실제 단기 ServiceAccount 계정으로 권한·Argo revision·Rollout/Pod digest를 대조하는 조회 도구를 추가했습니다.
  • 기존 후속 구현인 RDS TLS·런타임/마이그레이션 계정 분리·writer readiness·canary parity·부하 요청 제한·복제 승격 안전 검사와 Jenkins/읽기 전용 장애 진단 도구를 포함했습니다.
  • 임시 AWS 프로필은 MySQL 8.4, 연장 지원 비활성화, 최대 3시간 및 예비비 포함 USD 5.50 이내로 제한했습니다. 정상 종료·마감 정리·잔존 자원 재확인을 구성했습니다.
  • 공개 Markdown은 루트 README만 유지하고 개인 기록·실행 로그·로컬 상태·인증 정보는 추적 대상에서 제외했습니다.
  • prod/validation의 모든 DB workload에 TLS CA를 연결하고 마이그레이션 Secret을 분리했습니다. 평문 로그인 fallback을 없애고 실험 계정도 무작위 비밀번호의 해시만 저장합니다.
  • ALB 제어 권한은 계정·리전·클러스터 태그와 세션 VPC로 제한했습니다. 실험 helper는 기존 자원을 삭제·교체하지 않고 고유 이름 및 Job 수명 제한을 사용합니다.

변경 이유

이미지 빌드, 배포 후보 생성, 실제 GitOps 배포, 정상 HTTP/데이터 흐름을 서로 다른 검증 단계로 구분하기 위한 변경입니다. 임의 JSON 플래그나 관리자 impersonation만으로 배포·권한 검증에 성공했다고 판단하지 않습니다.

데이터·실행 영향

  • 기존 변경을 보존한 기능 브랜치를 dev에 먼저 통합한 뒤 별도 main 릴리스 PR을 진행합니다.
  • CI는 PR에서 검증만 수행하며 main CD는 검사를 통과한 이미지를 기존 ECR에 발행합니다. CD가 Git을 직접 push하거나 앱을 즉시 배포하지 않습니다.
  • 인프라 생성과 Argo sync에는 별도 명시 실행·범위 확인이 필요합니다. 배포 후보를 Git에 반영하는 별도 PR 전에는 초기 validation 이미지를 사용할 수 없습니다.
  • 마이그레이션은 재실행 가능한 추가형 DDL과 별도 계정 구성이며, canary 복구가 DB DDL을 자동 되돌린다고 가정하지 않습니다.
  • 평문으로 저장된 기존 로그인 계정은 비밀번호 재설정이 필요합니다. 기존 DB를 자동으로 정리하거나 비밀번호를 바꾸지 않습니다.
  • 새 비용 프로필은 계획 제한이며 AWS 청구 하드캡이 아닙니다. 기존 관측 결과와 이번 신규 GitOps 실환경 검증을 혼동하지 않습니다.

검증

  • CI와 같은 Python 3.12 및 kubectl 1.36: 650 tests passed, skipped 0. 실제 promtool 쿼리 검사와 AWS SDK stub 테스트 포함.
  • AWS Access Analyzer 정책 검사 0 findings. IAM 모의 검사에서 타 클러스터 삭제·소유 태그 변경 및 타 VPC ingress 변경 거부 확인. 이는 실제 ALB controller 동작 검증과 별개입니다.
  • prod/validation 및 플랫폼 manifest 렌더링, Terraform 두 구성 fmt/validate 통과.
  • 공개 파일 snapshot의 Trivy HIGH/CRITICAL IaC·비밀정보 검사, Python 의존성 audit 및 Bandit HIGH 이상 검사 수행.
  • 원격 CI는 이 PR의 checks에서 확인합니다. 신규 AWS GitOps/HTTP/DB 복구 E2E는 아직 실행 전이며 이 PR의 로컬 테스트 결과로 대체하지 않습니다.

되돌리기

  • 문제가 확인되면 변경 revert를 dev → main PR로 반영하고, 배포 이미지 변경은 직전 검증 digest를 가리키는 별도 PR로 복구합니다.
  • 임시 AWS 세션은 해당 계정·리전·소유 태그를 확인한 정리 도구로만 삭제합니다. 다른 세션이나 기존 ECR 저장소는 삭제하지 않습니다.
  • DB 추가형 변경은 별도 호환성 확인 없이 삭제하지 않습니다. raw 기록과 상태 파일은 로컬에 보존합니다.

masondev1024 and others added 22 commits August 24, 2026 19:15
release: 레플 응모 서비스 운영 고도화
# Conflicts:
#	k8s/overlays/prod/kustomization.yaml
최신 main의 배포 이미지 태그를 보존하고 dev의 부하·복구 검증 결과를 통합했습니다. 변경 범위 검증과 관련 테스트가 통과했습니다.
…-notes

chore: keep engineering notes local-only
Comment thread scripts/tests/test_governance_contract.py Fixed
@masondev1024
masondev1024 marked this pull request as ready for review September 27, 2026 14:25
@masondev1024
masondev1024 merged commit 7b6533a into dev Sep 27, 2026
13 checks passed
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.

2 participants