×
뎁스노트
로그인
홈
언어
프레임워크
개발도구
네크워크와 서버
데이터베이스
프로젝트 관리
데이터 사이언스
이야기
사진
모집 · 홍보
라이너의 블로그
라이너의 블로그
로그인
회원가입
글쓰기
글 올리기
개발 노트, 이야기를 작성해보세요.
질문하기
부담없이 무엇이든 질문하세요.
사진 올리기
사진을 올려보세요.
AWS
S3를 컨테이너 레지스트리로 활용할 수 있다면?
라이너
11일 전
팔로우
팔로잉
AWS S3를 단순한 스토리지 서비스로만 생각하셨다면, 이런 가능성도 있는데요, S3를 컨테이너 레지스트리로 활용하여 Docker 이미지를 저장하고 배포할 수 있습니다. 특히 이미지 빌드와 배포 속도를 높이고자 하는 개발자들에게 유용한 방법이 될 수도 있습니다. ## S3를 컨테이너 레지스트리로 사용하는 방법 S3를 컨테이너 레지스트리로 활용하려면, S3 버킷을 HTTP를 통해 공개하고, 특정 경로에 이미지 파일을 업로드하면 됩니다. 이렇게 설정하면 `docker pull` 명령어를 통해 해당 버킷에서 이미지를 직접 가져올 수 있습니다. **예시:** ```bash docker run --rm your-bucket-url/your-image ``` 이 명령어를 실행하면 S3 버킷에 저장된 이미지를 가져와 컨테이너를 실행할 수 있습니다. ## S3와 ECR의 업로드 속도 비교 S3를 레지스트리로 사용하는 주요 이점 중 하나는 업로드 속도입니다. 테스트 결과, S3는 ECR보다 최대 8배 빠른 업로드 속도를 보였습니다. 이는 S3가 단일 레이어의 청크를 병렬로 업로드할 수 있기 때문입니다. 반면, ECR은 OCI 분산 사양을 준수하여 레이어를 순차적으로 업로드해야 하므로 속도가 느려집니다. **업로드 속도 비교:** | 서비스 | 최소 속도 | 최대 속도 | | --- | ----- | ----- | | ECR | 24 MiB/s (8.2초) | 28 MiB/s (7.0초) | | S3 | 115 MiB/s (1.7초) | 190 MiB/s (1.0초) | ## S3를 레지스트리로 사용할 때의 고려사항 S3는 전통적인 컨테이너 레지스트리가 아니므로, `docker push` 명령어를 직접 사용할 수 없습니다. 따라서 이미지를 S3에 업로드하려면 AWS SDK 등을 활용하여 수동으로 업로드해야 합니다. 또한, 인증 및 권한 관리를 위해 S3 버킷 정책을 적절히 설정해야 합니다. **S3 버킷 정책 설정 예시:** ```json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::your-bucket-name/*" } ] } ``` 이러한 정책을 통해 모든 사용자가 버킷의 객체를 읽을 수 있도록 설정할 수 있습니다. ## 결론 S3를 컨테이너 레지스트리로 활용하면 업로드 속도를 크게 향상시킬 수 있습니다. 다만, 전통적인 레지스트리 기능이 부족할 수 있으므로, 프로젝트의 요구사항에 맞게 적절히 활용하는 것이 중요합니다. 특히 이미지 빌드와 배포 속도가 중요한 경우, S3를 활용한 레지스트리 구축을 고려해 볼 만합니다. **출처:** [Using S3 as a container registry](https://ochagavia.nl/blog/using-s3-as-a-container-registry/)
s3
docker
0
0
0
141
신고하기
사용자 차단하기
라이너
11일 전
팔로우
팔로잉
댓글
0
올리기
답변 작성
답변 모드로 쓰기
이미지 첨부
올리기
아직 댓글이 없습니다. 첫번째 댓글 작성자가 되어주세요 :)
0
0
0
신고하기
사용자 차단하기
아직 댓글이 없습니다. 첫번째 댓글 작성자가 되어주세요 :)