Blue-Green 배포
- 대체 환경을 생성하여 점진적으로 트래픽을 전환하는 방식
- 로드밸런서의 설정(등록/해제) 변경으로 롤백이 빠름
- 배포 과정에서 요청량을 처리하는 인스턴스 개수가 줄지 않음
- 배포 과정에서 인스턴스의 수를 2배로 늘려야 함으로 배포준비 시간이 오래 걸림
Blue/Green 배포를 위해 일단 기존 환경인 Blue환경을 확인한 후 신규 버전인 Green 환경 구성하여 로드밸런서 설정을 진행한다.
기존 Blue환경 구성 확인
* 기존 환경 구성 참조: https://happy-jjang-a.tistory.com/70
- ASG에 "mytest-nginx-asg" 그룹과 로드밸런서에 대상 그룹 설정되어 있음
- 로드밸런서 설정: 리스너 HTTP:80 및 대상그룹
- 로드밸런서를 통한 기존 환경 접속 확인
신규 Green환경 구성
1. 신규 AMI 생성
- 기존 nginx가 실행된 EC2에 접속하여 index.html 파일 수정
cd /usr/share/nginx/html
vi index.html
- "Welcome to nginx! - web 2"로 수정(기존 Blue환경은 "1"이 었음)
- 위의 EC2 '중지'하고 '이미지 및 템플릿 > 이미지 생성' 실행
- 이미지 이름 및 설명 입력하고 생성
2. 시작템플릿 생성
- 시작템플릿으로 가서 기존Blue환경에서 사용하던 템플릿 선택 후 '작업 > 템플릿 수정(새 버전 생성)' 선택, 템플릿 수정없이 새로운 시작 템플릿을 생성해도 상관없음
- [시작 템플릿 콘텐츠] 영역에서 위에서 신규로 생성한 AMI 선택 후 생성
- 최신버전이 1 올라감(기존 버전이 4였어서 최신버전이 5가 되었음)
3. 대상그룹 생성
- '대상그룹 생성' 클릭
- '인스턴스' 유형에 대상 그룹 이름 "my-test-TG-web2"으로 생성(인스턴스 등록은 불필요)
4. ASG(Auto Scaling Group) 생성
- ASG 생성 클릭
- ASG 그룹 이름 입력, 시작 템플릿 선택 시 위에서 생성한 시작템플릿 및 버전 선택
- 네트워크 설정은 기존 Blue환경과 동일하게 설정
- '기존 로드밸런서에 연결' 선택 후 위에서 생성한 대상그룹 선택 후 나머지는 모두 '다음'으로 넘기고 ASG 생성 완료 시킴
- ASG 2개 생성 됨
5. 로드밸런서 설정
- 로드밸런서 리스너 HTTP: 80 체크 후 '편집' 클릭
- 대상그룹 "my-test-TG-web2" 추가 후 저장
- 로드밸런서로 접속하면 기존 버전(Blue)과 신규 버전(Green) 번갈아 가면서 실행됨(로드밸런서 기반 Blue-Green 트래픽 가중치 50%씩 동작)
- 신규 버전 잘 반영되는 거 확인됐으니 로드밸런서에서 기존 Blue 버전 제거, 로드밸런서 리스너 HTTP: 80 체크 후 '편집' 클릭 후 기존 대상그룹 삭제
- 나머지 Blue 환경쪽 ASG, 대상그룹 삭제하면 Green환경만 남음
'개발 > AWS' 카테고리의 다른 글
AWS CloudWatch 사용자 지정 지표(Custom Metrics) 생성 (0) | 2022.03.11 |
---|---|
AWS Secrets Manager 개념 및 테스트 (0) | 2022.03.11 |
AWS Certificate Manager(ACM) 인증서 생성 (2) | 2022.03.08 |
RDS Multi AZ 고가용성 구성 테스트 (0) | 2022.03.06 |
AWS API Gateway 살펴보기(HTTP API, REST API 생성) (0) | 2022.03.04 |
댓글