Cloud System Engineer

무중단 배포 본문

클라우드/AWS

무중단 배포

클라우드 엔지니어 2021. 9. 7. 22:34

서비스를 사용하는 데 아무런 지장 없이 배포를 진행하는 경우를 뜻함.

 

Auto scaling 그룹 생성

생성완료

로드밸런서 생성

 

Auto scaling 그룹 -> 편집 -> practice-target-group 대상 그룹에 등록한 뒤 저장

 

브라우저에서 로드 밸런서의 DNS 주소로 접속 시도해서 샘플 프로젝트가 올라오는지 확인

 

새로운 버전 코드를 적용한 AMI 시작 탬플릿 생성

기존 버전의 코드를 서비스하고 있으니 새로운 버전의 코드를 배포할 계획이다.

 

중지된 인스턴스를 시작

/var/www/html/index.html 코드를 수정한다.

 

인스턴스를 중지 시키고 중지된 인스턴스를 이미지로 만든다.

 

 

탬플릿의 설정값을 처음부터 다 채우지 않고 기존 템플릿에서 같은 부분은 가져다 쓰기위해

예전에 생성해둔 템플릿을 선택한다.

 

 

Auto scaling 그룹을 생성 -> green이라는 이름으로 생성

시작템플릿은 방금생성한 beta 템플릿 선택

 

 

Group 그룹에는 기존 버전의 코드가 서비스 되고 있으며 혼자 로드밸런서에 등록돼서

클라이언트의 요청을 혼자서 처리하고 있다.

green에는 최신버전이고 아직 로드밸런서에 등록돼 있지 않기 때문에 클라이언트의 요청을 받지 않고 있음.

 

기존 그룹에만 요청이 제대로하고있는지 접속 시도

 

 

브라우저에 로드밸런서의 주소로 접속을 시도하면 기존버전과 최신버전코드가 번갈아 실행 될 것이다.

 

기존 그룹에 있는 로드벨런서를 제거 한다.

 

 

브라우저에서 새로고침을 계속 하다보면 기존그룹이 로드밸런서에서 제거되어 green 그룹의 최신 버전만 실행 되는 것을 확인할 수 있다.

 

시간이 지난 후 새롭게 배포된 버전에 문제가 없어 롤백할 일이 없다는 확신이 들면

기존 그룹 인스턴스를 종료하면 된다

 

 

 

코드를 안전하고 빠르게 배포하는 데 필요한 여러 배포 개념에 대해 알아봤습니다.

새로운 버전이라도 서버에 배포되어 사용자에게 서비스되기 전까지 사용자에게 아무런 효용도 주지 않으므로 배포는 중요하다.

 

요약

1.AMIpractice-instance를 시작 코드를 새로 받고 -> 최신버전을 AMI 시킨다.

2.AMI를 시작템플릿 생성 -> 그린 그룹에 인스턴스 수를 기존 그룹과 똑 같은 수로 추가

3.새로운 인스턴스들은 시작 템플릿에 정의돼 있는 AMI를 갖고 생성하기 때문에 방금 배포한

최신 버전의 코드가 적용돼 있는 인스턴스 들이다.

4.로드밸런서에 그린 그룹을 등록 기존 그룹과 , 그린 그룹 인스턴스들이 모든 요청을 나눠서 처리한다.

5.요청을 처리하는데 문제가 없을 경우 기존 그룹을 로드밸런서에서 제외한다.

'클라우드 > AWS' 카테고리의 다른 글

AWS VPC  (0) 2021.09.10
AWS Elastic Load Balancing 서버 트래픽 분산 관리  (0) 2021.09.06
Auto Scaling  (0) 2021.09.06
AWS 데이터 베이스  (0) 2021.03.12
AWS Web-load balancing  (0) 2021.03.11