현재 진행 중인 프로젝트는 연습 삼아 배포까지 진행하고 있다.
AWS의 EC2를 서버를 통해 배포를 진행하는데, 문제가 발생했다.
빌드 에러

이전에도 이런 식으로 계속 무한 빌드 문제가 발생했었다.
하지만 EC2 Instance를 재부팅하면 될 때가 있었는데,
이번에는 Instance를 중지했다가 다시 실행해도 되지 않았다.

이 문제의 원인은 다음과 같다고 생각했다.

  • 계속 프로젝트를 진행하며 프로젝트의 크기가 커졌다.
  • 프리 티어에는 메모리가 1GB로 제한이 있어 성능이 좋지 못하다.
    • 따라서 부하를 받은 EC2 서버가 제대로 동작하지 않는다.

검색을 했을 때, 다양한 해결 방법들이 나왔다.
Swap memory를 이용한다던가, lib32z1 같은 번들을 설치한다던가.
하지만 뭔가 서버 설정을 건드리고 하는 방법들이라 꽤 위험해 보였다.

그래서 직접 빌드를 한 뒤에 JAR 파일만 따로 서버에 옮기기로 했다.
서버에 옮기는 방법은 FileZilla, SCP 등 다양한데,
나는 현재 S3을 사용하고 있으므로 S3을 이용하기로 했다.

AWS CLI

EC2에서 sudo apt install awscli를 통해 AWS CLI``를 설치할 수 있다. 이는 AWS의 다양한 명령어를 터미널에서 사용할 수 있는 번들이다. AWS CLI```에서 S3에 접근이 가능하므로, 이 기능을 이용할 것이다.

  1. aws configure 명령어를 통해 권한을 인증한다.
  2. aws s3 ls 명령어를 통해 인증된 권한의 버킷 목록을 확인한다.
    • 이 과정을 통해 인증이 잘 되었는지 알 수 있다.
  3. aws s3 cp s3://[bucket]/[folder]/[file] /[local path] 의 명령어를 사용한다.
    • 이는 S3 Bucket에 있는 File을 다운로드 하는 명령어이다.
    • 경로의 순서를 거꾸로 하면 S3에 업로드도 가능하다.

위 방식을 이용해서 S3에 JAR 파일을 업로드 한 뒤, 다운로드 한다.
이후 EC2에서 nohup java -jar 명령어를 통해 무중단 배포를 한다.
이제 빌드를 했을 때 에러가 날 걱정을 안해도 될 것이다.