skkuding / codedang

Online Judge for SKKU
https://codedang.com
MIT License
43 stars 10 forks source link

feat(infra): add lifecycle policy to ecr repositories #2132

Closed bocklag closed 3 weeks ago

bocklag commented 3 weeks ago

Description

closes TAS-931 이전에 ECR 레포지토리에 배포되어 있던 도커 이미지 파일을 자동으로 제거하는 수명 정책을 추가합니다.

<왜 최근 6개의 이미지를 킵하나요?> 저희 코드당은 배포 시 Docker Buildx를 사용합니다. 여러 플랫폼에 대한 빌드를 지원하며, 이 때에 두 개의 image와 한 개의 image index 파일 (총 3개의 파일)이 생성되어 ECR에 저장 됩니다. 따라서, 최신의 이미지 파일과 직전 이미지 파일을 보존하기 위해 직전 6개의 파일을 저장해 두도록 설정하였습니다.

<적용 방법> 깃헙 액션에서 이미지를 제거하는 방법, 그리고 AWS ECR에서 수명 정책을 생성하는 방법, 총 두 가지의 선택지가 있었습니다. 기존 코드당 테라폼 코드에서는 이미 콘솔 내에서 생성된 레포지토리를 참조하는 방식으로 짜임새가 맞추어져 있어, 테라폼으로 수명 정책을 추가하는 것으로도 문제가 없음을 판단하였습니다.

또한, 깃헙 액션 상에서 코드를 작성할 경우, 각 CD 파일에서 admin, client, iris에 대한 레포지토리에 각각 접근해야 하기 때문에 코드 상 중복이 많아지고, 유지 관리에 어려움이 발생할 수 있다고 판단, 최종적으로 수명 정책을 테라폼 내에서 추가하는 것으로 결정하였습니다.

Additional context


Before submitting the PR, please make sure you do the following

vercel[bot] commented 3 weeks ago

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated (UTC)
codedang ✅ Ready (Inspect) Visit Preview Oct 1, 2024 4:16am