AWS의 컴퓨팅 서비스인 EC2 인스턴스에 CI/CD를 위한 Jenkins 환경을 구축하고,
AWS의 관리형 쿠버네티스 서비스인 EKS를 이용해 클러스터를 구성하고 오케스트레이션 함으로써
개발자는 자동화된 빌드 및 테스트 환경을 사용할 수 있다.
- 개발자가 github에 소스 코드를 push한다.
- github에 연결된 Jenkins는 github 레포지토리에 commit된 내용을 감지한다.
- Pipeline을 생성하고 github의 소스 코드를 자동 빌드하게 설정한다.
- Dockerfile을 참조해 Docker 이미지를 빌드한뒤 push한다.
- Jenkins에서 manifest를 업데이트해 이미지 tag를 수정한다.
- ArgoCD에서 이미지 tag의 변경을 감지한다.
- ArgoCD는 Dockerhub에서 이미지를 pull한다.
- ArgoCD에서 소스 코드 변경 부분을 반영하여 업데이트하거나 파드를 재생성한다.