문제 상황
프로젝트에서 Docker 이미지를 효율적으로 저장하고 배포할 레지스트리가 필요했습니다. 이를 통해 배포 프로세스를 표준화하고 관리 편의성을 확보하고자 했습니다. 레지스트리를 선택하는 과정에서, AWS ECR과 Docker Hub 중 어떤 것을 사용할지를 검토하게 되었습니다.
도입 이유 및 해결 방안
선택지
- Docker Hub: Docker의 기본 이미지 저장소로, 다양한 환경에서 접근이 가능하고 설정이 간단합니다.
- AWS ECR: AWS 전용의 Docker 이미지 레지스트리로, AWS 서비스와 긴밀히 통합된 보안 및 관리 기능을 제공합니다.
Docker Hub를 선택한 이유
Docker Hub를 이미지 레지스트리로 선택한 이유는 다음과 같습니다:
- 사용성과 접근성: Docker Hub는 Docker 커뮤니티의 기본 레지스트리로 널리 사용되며, 전 세계 개발자들이 공용 이미지에 쉽게 접근하고 공유할 수 있어 접근성이 뛰어납니다. 퍼블릭 이미지를 배포할 때도 간편한 방식으로 공개할 수 있습니다.
- 간편한 설정: Docker Hub는 GitHub Actions 등 CI/CD 파이프라인과 쉽게 연동되며, 간단한 인증 절차로 설정할 수 있습니다. 반면, AWS ECR을 이용하려면 AWS IAM 역할 및 권한 설정 등의 추가 작업이 필요하여 상대적으로 설정이 복잡할 수 있습니다.
- 공개 이미지 관리의 편리성: 오픈 소스 프로젝트나 외부와의 협업을 위한 Docker 이미지 배포 시 Docker Hub가 더 유리합니다. Docker Hub는 퍼블릭 레지스트리를 통해 이미지를 쉽게 공유할 수 있는 반면, AWS ECR은 기본적으로 프라이빗 레지스트리를 위해 설계되었습니다.
- 환경 독립성: Docker Hub는 특정 클라우드 제공자에 종속되지 않으며, 다양한 클라우드 환경과 온프레미스 환경에서도 쉽게 접근하고 사용할 수 있습니다. 반면 AWS ECR은 AWS 서비스와 통합이 용이하지만, AWS 외의 환경에서는 접근성이 제한적일 수 있습니다.
이러한 이유로, Docker Hub를 이미지 레지스트리로 선택하여 손쉬운 접근과 다양한 환경에서의 사용 편의성을 확보했습니다.
'PORTFOLIO > TECHNICAL DECISION-MAKING' 카테고리의 다른 글
[ACE Hand Wash - 기술적 의사 결정]코드 정리 대작전: 권한 확인 로직, 어디까지 분리해봤니? (0) | 2025.01.08 |
---|---|
[CodeChef - 기술적 의사 결정] Redis Sentinel 도입이 필요한 이유 (0) | 2025.01.06 |
[CodeChef - 기술적 의사 결정] Redis 도입이 필요한 이유 (0) | 2025.01.06 |
[CodeChef - 기술적 의사 결정] CI/CD 툴, Jenkins? Github Actions? (0) | 2025.01.06 |
[CodeChef - 기술적 의사 결정]이벤트 동시성 제어 (0) | 2025.01.06 |