EC2를 이용해 스프링 프로젝트를 배포하는 과정을 정리해본다.
먼저 AWS에 가입하고 EC2로 이동한 후에 '인스턴스 시작'을 클릭해서 생성 화면으로 넘어간다.
이름을 지어주고 OS를 선택해주면 되는데 서버용으로 많이 사용되는 Ubuntu를 선택했다
아래 쪽에 어떤 스펙의 컴퓨터를 사용할지 고를 수 있는데 개발용으로 사용하는게 목적이라 프리 티어로도 충분하다고 생각한다.
ssh로 터미널에서 EC2에 접근하기 위해 키페어를 생성해준다.
키 페어는 한번 생성하면 두번 다시 다운로드 받을 수 없기 때문에 잘 보관하고 있어야 한다 !
보안 그룹을 생성해주고 ssh, https, http 트래픽 허용에 체크해준다.
밑에 나머지 값 들은 디폴트 세팅으로 해서 인스턴스를 생성해주었다.
인스턴스 목록이 보이는 화면에서 인슨턴스 ID를 눌러 들어가게 되면 자세한 정보들이 나오는데 우측에 연결이라는 버튼을 누르게되면 어떠한 방법으로 접속할 건지 볼 수 있다.
EC2 Instance Connect을 사용하여 연결을 선택하고 연결을 눌러주면
이렇게 웹상에서 바로 접속할 수 있다.
발급 받은 키페어를 이용해 접속하려면
SSH 클라이언트를 선택하고
아래의 인스턴스 엑세스 방법을 보고 차례대로 진행해주면 된다.
정상적으로 EC2에 접속되었다면 초기 세팅이 필요하다.
먼저 Java와 git을 설치해주고 사용하고 있는 DB를 설치해준다.
그리고 정적 파일 배포에는 2가지 방식이 있는데,
일단은 1번 방법으로 진행했다. 깃을 설치했다면 깃헙에서 SSH KEY를 생성해야 한다.
cd ~/.ssh
ssh-keygen -t rsa -C 깃허브계정(메일)
위 명령어를 통해 .ssh 디렉토리에 키페어를 생성하게 되고 id_rsa.pub 파일이 생성된다.
cat id_rsa.pub
cat 명령어로 id_rsa.pub 내용을 조회하고 복사해서 깃허브 ssh에 넣어줘야 한다.
깃허브로 이동해서 setting -> SSH and GPG keys -> new SSH key
이곳에 이름을 지어주고 Key에 내용을 붙여넣기 한다.
여기 까지 되었다면 이제 SSH를 이용해서 git clone을 받으면 된다.
깃허브 레포지토리로 이동 후 Code -> SSH 탭에 있는 주소를 복사해서 클론을 진행한다.
정상적으로 클론이 되었다면 프로젝트가 있는 경로로 이동한 후
./gradlew build
위 명령어를 통해 프로젝트를 빌드 한다.
빌드가 성공했다면 build -> libs 디렉토리가 생성되고 폴더 안에 jar 파일이 생성된 것을 확인할 수 있다.
nohup java -jar 파일이름.jar &
위 명령어로 생성된 jar 파일을 실행시켜준다. nohup 명령어 뒤에 &를 붙이면 백그라운드에서 실행한다는 의미로 EC2 접속을 끊더라도 서버가 종료되지 않게된다.
jobs
jobs 명령어로 현재 백그라운드에서 실행되고 있는 것들을 확인하고
fg %인덱스
fg %(인덱스 번호) 로 해당 프로그램을 가져올 수 있다. 그 상태에서 control + c를 입력해서 종료 시켜줄 수 있다.
정상적으로 API가 호출되는 모습을 확인할 수 있었다.
이렇게 EC2에서 Spring Boot 서버를 실행해 보았다 ! 고정 IP로 사용하기 위해서는 탄력적 IP를 적용해줘야 하고 추가 요금이 발생한다, 개발용 테스트용으로는 따로 설정해주지 않아도 충분할 것 같다.