본문 바로가기

CI & CD9

[Nginx] 24시간 365일 중단 없는 서비스 만들기 4 - 무중단 배포 테스트 최종 코드를 깃허브로 푸시합니다. 배포가 자동으로 진행되면 CodeDeploy 로그로 잘 진행되는지 확인해 봅니다. tail -f /opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent-deployments.log 그럼 다음과 같은 메시지가 차례로 출력됩니다. [2021-07-20 00:43:07.431] [d-54435O08B]LifecycleEvent - ApplicationStart [2021-07-20 00:43:07.432] [d-54435O08B]Script - deploy.sh [2021-07-20 00:43:07.445] [d-54435O08B][stdout]> Build 파일 복사 [2021-07-20 00:43:07.. 2021. 7. 20.
[Nginx] 24시간 365일 중단 없는 서비스 만들기 3 - 무중단 배포 스크립트 만들기 무중단 배포 스크립트 작업 전에 API를 하나 추가하겠습니다. 이 API는 이후 배포 시에 8081을 쓸지, 8082를 쓸지 판단하는 기준이 됩니다. profile API 추가 ProfileController를 만들어 다음과 같이 간단한 API 코드를 추가합니다. package com.usedcar.admin.web; import lombok.RequiredArgsConstructor; import org.springframework.core.env.Environment; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import ja.. 2021. 7. 20.
[Nginx] 24시간 365일 중단 없는 서비스 만들기 2 - 엔진엑스 설치와 스프링 부트 연동하기 가장 먼저 EC2에 엔진엑스를 설치하겠습니다. 엔진엑스 설치 EC2에 접속해서 다음 명령어로 설치할 nginx를 찾습니다. amazon-linux-extras list | grep nginx nginx를 설치합니다. sudo amazon-linux-extras install -y nginx1 설치가 완료되었으면 다음 명령어로 엔진엑스를 실행합니다. sudo service nginx start 엔진엑스가 잘 실행되었다면 다음과 같은 메시지를 볼 수 있습니다. Redirecting to /bin/systemctl start nginx.service 보안 그룹 추가 먼저 엔진엑스의 포트번호를 보안 그룹에 추가하겠습니다. 엔진엑스의 포트번호는 기본적으로 80입니다. 해당 포트 번호가 보안 그룹에 없으니 [EC2.. 2021. 7. 19.
[Nginx] 24시간 365일 중단 없는 서비스 만들기 1 - 무중단 배포 소개 배포하는 동안 애플리케이션이 종료된다는 문제가 있습니다. 긴 기간은 아니지만, 새로운 Jar가 실행되기 전까진 기존 Jar를 종료시켜 놓기 때문에 서비스가 종료됩니다. 반면 24시간 서비스하는 네이버나 카카오톡 같은 경우 배포하는 동안 서비스가 정지되지 않습니다. 무중단 배포 소개 서비스를 정지하지 않고, 배포하는 것을 무중단 배포라고 합니다. 무중단 배포 방식에는 몇 가지가 있습니다. AWS에서 블루 그린(Blue-Green) 무중단 배포 도커를 이용한 웹서비스 무중단 배포 이외에도 L4 스위치를 이용한 무중단 배포 방법도 있지만, L4가 워낙 고가의 장비이다 보니 대형 인터넷 기업 외에는 쓸 일이 거의 없습니다. 우리가 진행할 방법은 엔진엑스(Nginx)를 이용한 무중단 배포입니다. 엔진엑스는 웹 서.. 2021. 7. 19.