본문 바로가기

기초 공부/상식

[nginx를 사용한 무중단배포] nginx를 사용하는 이유

728x90

안녕하세요 오늘은 무중단 배포에 대해 공부 중 알게된 지식을 적어보려합니다.

 

우선 무중단 배포란 서비스를 중단시키지 않고 서비스를 업데이트 하는 것을 말합니다.

 

예를 들어 네이버 메인 화면을 계속 보고있는데 F5로 새로고침 한 번 눌렀더니 업데이트된 메인화면이 나타나는 겁니다.

 

이 무중단 배포 방식에는 여러가지가 있는데 

 

크게 세 가지가 있습니다. 

1) 롤링 업데이트

2) 블루/그린

3) 카나리 

 

이 세 가지에 대해서는 추후 자세히 다뤄보겠습니다.

 

본 글에서는 그 중 블루/그린 배포 방식을 실제 구현할 때 느낀 것들을 적어보려합니다.

 

우선 첫 번째 구성도 입니다.

 

AWS EC2 인스턴스안에 컨테이너로 구성된 간단한 웹 서버입니다.

NGINX가 로드밸런서 및 리버스 프록시 역할을 하고 있고 사용자의 트래픽을 각각 컨테이너에 라운드 로빈 방식으로 분산합니다. 

 

이 구조에서 블루/그린 방식으로 무중단 배포를 하려면 

 

1) 새로운 v2버전의 컨테이너를 생성한다.

2) nginx에서 로드밸런서를 변경해 준다.

 

인데 저는 웹서버에 변경된 사항을 적용하려면 restart만 생각했었습니다. 따라서 nginx restart를 해주면 변경된 로드밸런서가 적용될거라고 생각했습니다.

 

근데 문제는 그렇게하면 nginx가 꺼지기 때문에 무중단 배포가 아니게됩니다.

따라서 무중단 배포를 수행하려면 nginx reload를 해주면됩니다. 

이 reload를 통해 무중단 배포가 가능해집니다. 

설정한 파일의 문법에 에러가 있다면 기존버전으로 정상 작동한다는데 이 원리에 대해 알게 되면 수정하겠습니다.

 

 

 

오늘 글에서는 nginx를 왜 무중단 배포에 사용하는지에 대해 알아봤습니다.

 

다음번엔 무중단 배포에 대해 아주 자세히 다뤄보도록하겠습니다.

 

반응형