nginx를 통한 로드밸런싱 구성
Last updated
Last updated
nginx로 로드밸런싱 하는 무중단 배포 환경을 만든다.
머신 이미지 기능으로 복제한다.
서비스마다 스냅샷이라고 부르는 곳도 있다.
선택한 인스턴스와 동일한 환경을 가지게 된다.
설치한 패키지만 해당되고 젠킨스, 도커 등의 설정은 해당되지 않는다.
젠킨스 설정에서 instance-2, 3을 추가한다.
instance-2, 3을 추가하고 빌드 스크립트를 똑같이 입력한다.
/dev/null
에서 nohup.out
으로 변경한다.
젠킨스 빌드 후 instance-1로 가보면 배포에 실패한다.
기존에 이미 8080 포트에 서비스가 떠있었기 때문이다.
instance-2, 3은 도커 데몬이 실행되지 않고 있어 실패했다.
데몬 실행 명령어를 입력해준다.
인스턴스는 medium으로 생성한다.
nginx 인스턴스 외부 ip로 접속만 해도 페이지가 뜨는 게 확인되면 성공이다.
nginx 설정 파일로 진입한다.
include와 server 사이에 내용을 추가한다.
server 내부에 추가한다.
esc
shift + ;
wq
enter
접속해보면 not found가 뜬다.
설정이 완료되면 nginx를 reload 해줘야 하기 때문이다.
하지만 reload 해도 에러가 발생한다.
에러 로그를 살펴본다.
구글링 해보면 자원을 액세스 하지 못하는 문제로, rule을 추가해야 한다고 한다.
명령어를 실행하고 다시 페이지에 접속하면 정상적으로 결과가 나타난다.
nginx에 요청을 보낸 건데도 마치 그 뒤에 있는 CPU 바운드 애플리케이션이 응답한 것 같이 나온다.
restart
서비스를 shutdown 하고 다시 시작한다.
reload
설정 파일만 다시 로드한다.
특정 파일은 적용되지 않을 수도 있어 restart가 안전하다.