728x90
AWS Elastic Container Services(ECS) 에서 제공하는 배포 유형에는 '롤링 업데이트' 와 '블루/그린 배포' 가 있다. 그 중 롤링 업데이트로 배포하는 방법부터 먼저 포스팅하겠다.
3. 서비스 생성하기 - 블루/그린 배포
서비스 생성하기 - 롤링 업데이트
~<😆>롤링<😆>롤린<😆>롤링<😆>~
롤링 업데이트를 사용하는 경우 새 서비스 배포가 시작되면 AWS ECS 서비스 스케쥴러가 현재 실행 중인 작업을 새작업으로 바꾼다. 즉, 새로운 작업이 띄워질 때까지 기다렸다가 현재 실행 중인 작업을 내리기 때문에 무중단 배포가 가능하다.
1. 클러스터 > [서비스] 탭 > [생성] 버튼 클릭
2. 서비스 구성
3. 네트워크 구성
* 로드 밸런싱의 경우 외부 포트가 필요한 경우 설정해 줘야 한다. 이는 추후에 포스팅할 예정...⭐️
4. Auto Scaling (선택사항)
5. 서비스 생성 완료
서비스 생성이 완료되면, 서비스와 작업이 생성된걸 확인할 수 있다.
Bitbucket Pipeline 을 이용하여 AWS ECS에 배포하기
(Bitbucket Pipeline 을 이용하여 AWS ECR에 이미지 push하기 참고)
1. Bitbucket Pipeline 에 환경변수 추가하기
* 하나의 클러스터에 스테이징/프로덕션 별로 서비스를 띄워줄 것이기 때문에,
Repository variables 에는 클러스터명을 기재하고
Deployments 에는 서비스명을 기재
▷ bitbucket-pipeline.xml
pipelines:
tags:
staging-*:
- step:
name: Docker build and push to AWS ECR
services:
- docker
image: atlassian/pipelines-awscli
deployment: Staging
script:
- aws ecr get-login-password --region $AWS_REGION | docker login --username AWS --password-stdin $AWS_ECR_REPOSITORY
- IMAGE=$AWS_ECR_REPOSITORY/$AWS_ECR_REPOSITORY_NAME
- TAG=$BITBUCKET_TAG
- docker build -t $IMAGE:$TAG .
--build-arg ES_HOST=$ES_HOST
--build-arg ES_USER=$ES_USER
--build-arg ES_PASSWORD=$ES_PASSWORD
- docker push $IMAGE:$TAG
- MANIFEST=$(aws ecr batch-get-image --region $AWS_REGION --repository-name $AWS_ECR_REPOSITORY_NAME --image-ids imageTag=$TAG --query 'images[].imageManifest' --output text)
- aws ecr put-image
--region $AWS_REGION
--repository-name $AWS_ECR_REPOSITORY_NAME
--image-tag staging
--image-manifest "$MANIFEST"
- aws ecs update-service --region $AWS_REGION --cluster $AWS_ECS_CLUSTER --service $AWS_ECS_SERVICE --platform-version 1.3.0 --force-new-deployment
2. Bitbucket 에 push 하기
$ git tag staging-0.0.1
$ git push origin staging-0.0.1
728x90
'AWS' 카테고리의 다른 글
[ECR] 태그명 추가하기 (0) | 2021.05.20 |
---|---|
[Lambda] Serverless 프레임워크 사용하기 (0) | 2021.05.18 |
[ECS] AWS ECS 세팅하기 - 1. 작업정의 및 클러스터 생성 (0) | 2021.05.17 |
[EC2] AWS EC2 볼륨 크기 수정하기 (0) | 2021.05.12 |
[ECR] Bitbucket Pipeline 을 이용해 AWS ECR에 이미지 push하기 (0) | 2021.05.01 |