ci/cd를 프로젝트에 적용해보려고 구글링을 하는 과정에서 도커 컨테이너 이미지를 저장하는 데에서 글마다 다른 것을 발견했다. S3, ECR 모두 도커 컨테이너 이미지를 저장할 수 있지만 근본적으로 차이점이 있었다.
S3와 ECR의 차이점
1. ECR(Elastic Container Registry)
- AWS가 제공하는 docker 컨테이너 이미지 전용 저장소.
- Docker 이미지를 저장, 관리 그리고 배포에 최적화 되어 있음.
- aws의 다른 서비스와 밀접하게 연관되어 있음.
- ex) ECS(Elastic Container Service), EKS(Elastic Kubernetes Service)
- Docker 커맨드라인 인터페이스 (CLI)와 직접 통합되어 있어, Docker 이미지를 푸시하고 풀하는 것이 매우 간단함.
2. S3(Simple Storage Service)
- 범용 객체 스토리지 서비스로, 다양한 데이터 유형을 저장 가능.
- 컨테이너 이미지를 S3에 저장할 수 있지만, 이를 ECS나 EKS 같은 서비스와 직접 통합하여 사용하는 것은 더 복잡함.
- Docker 이미지에 특화된 보안 기능은 제공하지 않음.
- Docker 이미지를 S3에 업로드하고 다운로드하기 위해서는 추가 스크립트나 단계가 필요.
3. 결론
도커 컨테이너 이미지 파일을 저장하는 데는 ECR가 적합하고 그 외의 데이터(특히 이미지 파일)을 저장하는 데에는 S3가 적합하다.