서비스 운영이 쉬워지는 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 배포 방법으로 서비스가 중단 되지 않고 서비스를 계속 진행 할 수 있다.
내가 기본적으로 생각하는 개념은 로드 밸런서의 중심으로 새로운 각 인스턴스에 하나씩 반영하면서 서버가 중지 되지 않는것처럼 보이게 하는것 같다.