SMALL
AWS ECR 이란?
AWS 에서 관리해주는 도커 이미지를 관리해주고 pull, push 해줄수 있는 서비스이다.
비슷한 서비스인 Docker Hub가 있다. 하지만 장단점이 존재하고 어떠한 서비스에 적용할것인지는 관련 회의를 통해 결정해야 할것 같다.
왜냐하면 AWS ECR 를 쓴다면 AWS 의존성이 높아진다는 단점도 있다. 하지만 AWS가 관리하기 때문에 비교적 안전하다고 할수 있을것 같다.
AWS ECR vs Docker Hub
항목 | Docker Hub | AWS ECR |
장점 | ||
가용성 | 전세계적으로 사용 가능 | AWS 리전 내에서 사용 가능 |
통합 | Docker CLI와 잘 통합됨 | AWS 서비스 및 인증(예: IAM)과 통합 |
가격 | 무료 계층 제공 | 사용량 기반 비용; 데이터 전송 및 저장 비용 발생 |
자동 빌드 | GitHub 및 Bitbucket와 연결하여 자동 빌드 지원 | AWS CodePipeline과 같은 다른 AWS 서비스 필요 |
저장소 보안 | 민감하지 않은 이미지를 위한 공개 저장소 가능 | 모든 리포지토리가 사적 (private) |
단점 | ||
비용 | 프라이빗 리포지토리는 유료 | 데이터 저장 및 전송에 대한 비용 발생 |
통합 | AWS 서비스와 직접적인 통합 미제공 | Docker CLI 외부의 통합이 제한적 |
저장소 수 제한 | 무료 계층에서 제한적 | 유료, 그러나 많은 리포지토리를 지원하는 계층 제공 |
보안 | 공개 리포지토리에 대한 보안 우려 | AWS의 강력한 보안 및 접근 관리 제공 |
장단점을 정리해보았다. 하지만 실제로 현재 진행중인 서비스에는 AWS 중점으로 다른 플랜폼을 이용안하고 AWS 서비스만으로 구성해보자는 프로젝트라 AWS 에 있는 ECR 를 써보기로 하였다.
사용방법 + GithubAction
.github/workflows/deploy.yml
기존에 쓰던 deploy 에 내용만 추가 하면 된다.
- name: Login to AWS ECR
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ap-northeast-2
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1
- name: Build and Push Docker image
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
ECR_REPOSITORY: idea-rush
IMAGE_TAG: latest
run: |
docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
- name: Execute Server Init Script
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.WAS_HOST }}
username: ${{ secrets.WAS_USER }}
key: ${{ secrets.WAS_PASSWORD }}
script: |
docker stop ${{ env.ECR_REPOSITORY }}
docker rm ${{ env.ECR_REPOSITORY }}
docker pull ${{ env.ECR_REGISTRY }}:${{ env.IMAGE_TAG }}
docker run -d -p 8080:8080 --name idea-rush ${{ env.ECR_REGISTRY }}
이런식으로 쓰면 된다. 다만 바뀌게 되면 수정하여 쓰면 된다.
반응형
LIST
'AWS' 카테고리의 다른 글
LoadBalancer (1) | 2023.08.31 |
---|---|
ElastiCache - Redis 설정 (0) | 2023.08.29 |
AWS scale-up (0) | 2023.08.24 |
Swap (0) | 2023.08.18 |
AWS CI/CD GithubAction (0) | 2023.07.29 |