본문 바로가기

전체글236

[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.
[Travis CI] 코드가 푸시되면 자동으로 배포하기 5 - 배포 자동화 구성 이제 실제로 Jar를 배포하여 실행까지 해보겠습니다. deploy.sh 파일 추가 먼저 step2 환경에서 실행될 deploy.sh를 생성하겠습니다. scripts 디렉토리를 생성하여 여기에 스크립트를 생성합니다. #!/bin/bash REPOSITORY=/home/ec2-user/app/step2 PROJECT_NAME=used-car-admin echo "> Build 파일 복사" cp $REPOSITORY/zip/*.jar $REPOSITORY/ echo "> 현재 구동중인 애플리케이션 pid 확인" # 1 CURRENT_PID=$(pgrep -fl used-car-admin | grep jar | awk '{print $1}') echo "현재 구동중인 어플리케이션 pid: $CURRENT_PID.. 2021. 7. 18.
[Travis CI] 코드가 푸시되면 자동으로 배포하기 4 - Travis CI와 AWS S3, CodeDeploy 연동하기 AWS의 배포 시스템인 CodeDeploy를 이용하기 전에 배포 대상인 EC2가 CodeDeploy를 연동 받을 수 있게 IAM 역할을 하나 생성하겠습니다. EC2에 IAM 역할 추가하기 S3와 마찬가지로 IAM을 검색하고, 이번에는 [역할] 탭을 클릭해서 이동합니다. [역할 => 역할 만들기] 버튼을 차례로 클릭합니다. 앞에서 만들었던 IAM의 사용자와 역할의 차이 역할 AWS 서비스에서만 할당할 수 있는 권한 EC2, CodeDeploy, SQS 등 사용자 AWS 서비스 외에 사용할 수 있는 권한 로컬 PC, IDC 서버 등 지금 만들 권한은 EC2에서 사용할 것이기 때문에 사용자가 아닌 역할로 처리합니다. 서비스 선택에서는 [AWS 서비스 => EC2]를 차례로 선택합니다. 정책에선 EC2RoleF.. 2021. 7. 18.