서비스 운영이 쉬워지는 AWS 인프라 구축 가이드 를 읽고 실습 한 내용이고 AWS Blue/Green deployment 생성 방법에 대해서 설명한다.
AWS에서 Blue/Green 배포 개념

EC2 인스턴스 v1을 정지하고AMI v1생성용 인스턴스를 생성

v2을 배포 후 인스턴스 종료하고AMI v2와시작 템플릿 v2생성- 로드 밸런서에
Green 그룹을 등록해서Green,Blue인스턴스들을 나눠서 처리 Green,Blue요청 처리에 문제가 없으면Blue 그룹을 로드 밸런서에서 제외- 몇 시간 모니터링 후 문제가 없으면
Blue 그룹인스턴스를 모두 종료
Blue/Green 배포
Blue/Green 배포를 위한 Auto Scaling 그룹 만들기

- Blue 그룹을 생성하기 위해
[Auto Scaling 그룹 생성]클릭


[시작 템플릿]에서 기존에 AMI로 만든exercise-launch-template를 선택하여다음클릭

[시작 템플릿 준수]선택- a, c 리전의 기본값을 설정 후
[다음]클릭

로드 밸런스설정한exercise-target-group선택 후[다음]클릭

그룹 크기설정 후[다음]클릭

- 메일, 연락처 알림은 추가 하지 않으므로
[다음]클릭

- 태그 추가 후
[다음]클릭

- 검토 화면에서 값들이 제대로 설정됐는지 확인하고
Auto Scaling 그룹 생성클릭

- Auto Scaling 생성 확인
기존 버전의 코드 서비스하기

[로드 밸런서]->[exercise-lb]선택 ->DNS 이름복사

- 브라우저에서 로드 밸런서의 DNS 주소로 접속 확인
새로운 버전의 코드를 적용한 AMI와 시작 템플릿 생성

- 인스턴스 상태
[stopeed]상태에서 오른쪽 마우스 클릭[이미지]->[이미지 생성]클릭

[이미지 이름]입력 후[이미지 생성]클릭

[이미지]->[AMI]메뉴에 이미지가 생성될때까지 기다리면 상태 값이available로 변경 확인

[인스턴스]->[시작 템플릿]에서[시작 템플릿 생성]버튼 클릭

- 템플릿 생성 정보 입력 후
[시작 템플릿 생성]버튼 클릭

[인스턴스]->[시작 템플릿]에서exercise-launch-template-beta시작 템플릿 생성 확인

[Auto Scaling 그룹 생성]버튼 클릭

- 위에 정보 입력 후
[다음]버튼 클릭

- 세부 정보 구성 후
[다음]버튼 클릭

로드 밸런스설정한exercise-target-group선택 후[다음]클릭
- 그 이하 설정은
Blue와 같으니 위에 부분을 참고하면 된다.

EXERCISE-GROUP-GREEN생성 확인
로드 밸런서에 등록해 Blue/Green 배포 진행하기

- 로드 밸런서에 DNS 이름을 복사 후 브라우저에 새로고침을 해보면 2가지 화면이 나오는 것을 확인할 수 있다.

- Blue/Green 처리 과정 화면

- Green 그룹이 로드 밸런서에 올바르게 등록된것을 확인했으니 Blue 그룹에 대상 그룹을 제거 해야된다.
[Auto Scaling Groups]->[EXERCISE-GROUP-BLUE]선택 ->[편집]버튼 클릭

- 로드 밸런싱 타겟 제거 후 저장

- 로드 밸런서에 DNS 이름을 복사 후 브라우저에 새로고침을 해보면 Blue 화면이 나오는 것을 확인할 수 있다.
정리
AWS에서 배포 방법을 공부하기 위해서는 기본적으로 로드밸런서, 시작템플릿, AMI 등 개념을 알고 있어야 할 것 같다.
서비스를 배포 하는 도중에 서비스가 중단이 되면 큰 문제가 발생하지만, Blue/Green 배포 방법으로 서비스가 중단 되지 않고 서비스를 계속 진행 할 수 있다.
내가 기본적으로 생각하는 개념은 로드 밸런서의 중심으로 새로운 각 인스턴스에 하나씩 반영하면서 서버가 중지 되지 않는것처럼 보이게 하는것 같다.