마무리
최종 완성된 아키텍처는 다음과 같다.

0. 오픈 소스(Spring PetClinic)는 Jenkins 파이프라인에서 자동으로 빌드를 수행한다.
1. Jenkins는 Maven 빌드, Dockerfile 기반 이미지 빌드 준비, ECS Task Definition 생성 등 파이프라인 실행 환경을 구성한다.
2. 빌드가 완료된 코드를 기반으로 Docker 이미지를 생성한다.
3. 보안 검사를 통과한 이미지는 ECR에 업로드된다.
4. ECS Task Definition, appspec.yml, imagedefinitions.json을 포함한 배포용 아티팩트 ZIP 파일을 생성하여 S3 버킷에 업로드한다.
5. CodePipeline은 S3/ECR의 최신 아티팩트를 소스로 삼아 파이프라인을 실행하며, CodeDeploy가 ECS 클러스터로 Blue/Green 배포를 수행한다.
- 해당 과정에서 ALB가 헬스 체크 및 트래픽 전환을 담당한다.
6. 배포된 서비스는 CloudWatch를 통해 운영 상태를 지속적으로 관측한다.
변경 사항은 다음과 같다.
- 기존엔 SAST, SCA, DAST 보안도구를 모두 통합해 DevSecOps CI/CD 파이프라인을 구현하는 것이 목표였으나, DAST 통합까지만 진행되었다.
- Promehteus, Grafana, CloudWatch 등 모니터링 도구를 사용할 예정이었지만, CloudWatch만 진행되었다.
인프라 구축은 모두 IaC로 작성되었으며, 테라폼 코드를 작성 과정은 추후 작성할 예정이다.