[AWS] EC2에 접속하고 Spring Boot 프로젝트를 배포해보자!

Drumj·2024년 5월 3일
0

AWS

목록 보기
3/3

1. EC2 접속

연결 버튼 클릭 후 SSH 클라이언트로 넘어가면 아주 친절하게 어떻게 접속 할 수 있는지 알려준다. 하나하나 따라가 보도록 하자!


1-1. 키 페어 파일 권한 수정

권한을 주는 명령어는

chmod 400 {본인 파일명}

이지만... 맥에서는 아주 잘 작동하는데 윈도우에서는 해당 명령어가 작동하지 않는다.. ㅠㅠ

하지만~ 윈도우의 마우스 딸-깍으로 해결할 수 있다.

해당 명령어의 뜻은 나에게만 읽기 권한이 있다는 뜻.

윈도우는 번거롭게 명령어 안 치고 마우스 딸깍으로 해결할 수 있다.
현재 읽기 쓰기 모두 체크가 되어 있는데 이건 뒤에 다른 작업까지 해서 그렇..다.. 일단 이렇게 읽기 권한을 주기만 하면 OK!


1-2. SSH 접속

SSH 접속 명령어는 다음과 같다.

ssh -i "{본인 키 파일 명}" ubuntu@{본인 EC2의 퍼블릭 IP/DNS}

만약 본인 키 파일 명이 myKey.pem 이고 EC2의 퍼블릭 IP가 127.0.0.1 이라고 가정하면

ssh -i "myKey.pem" ubuntu@127.0.0.1

이라고 작성하면 접속 할 수 있다. 해당 명령어는 아까 위에서 봤던 연결 페이지에서 예시를 알려주기 때문에 쉽게 접근 할 수 있을 것이다.

Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-1008-aws x86_64)

 ~~중략~~

ubuntu@ip-127-0-0-1:

접속하고 나면 위와 같이 Welcome to Ubuntu 가 나오고 마지막에 ubuntu@ip 가 나오면 성공!


1-3. 좀 더 쉽게 접속할 수 있는 방법은 없을까?

호스트를 등록하면 아주 쉽게 접속할 수 있다. 호스트를 등록하는 방법에 대해 알아보자.

위까지 따라왔으면 현재는 EC2에 접속해 있을 것이다. ctrl+D를 눌러서 EC2에서 빠져나온 다음

cp my-key.pem ~/.ssh/

해당 명령어를 통해 키 페어 파일을 복사하자. 본인의 파일명을 작성해야한 다는 것을 까먹지 말자.

또!! 권한을 수정해주자

chmod 600 my-key.pem

아까와 마찬가지로 윈도우에서는 해당 명령어가 실행되지 않는다.. 아까 위에서 봤던 사진처럼 이번엔 쓰기 권한을 추가해주자.

그 다음은 config 파일을 생성해서 내용을 입력해야한다.

vi ~/.ssh/config

해당 명령어를 치고

# 아래는 파일 내용
Host {원하는 호스트 이름}
User {유저 이름}
HostName {탄력적 IP}
IdentityFile {키 페어 파일 위치}

이렇게 내용을 넣어야 하는 모양이다.

이것 또한 마찬가지로..!! 윈도우에서는 따로 프로그램을 설치해야 vi 또는 Vim 명령어를 실행할 수 있다고 한다.. 아오...

그래서 또 딸깍으로 해결하기로 했다.

내 컴퓨터에서 찾아보면 .ssh 폴더가 만들어져 있는것을 볼 수 있다.
해당 폴더에 들어가서 직접 config 파일을 만들어주기로 했다.

파일 형식이 뭔지 몰라서 우선 무작정 txt 파일을 만들고 파일 내용을 입력한 후에 .txt 를 삭제해서 확장자를 없애버렸다 ㅋㅋㅋㅋ
(하지만 굉장히 잘 작동한다는 것을 바로 다음에 알 수 있습니다.)

config파일에 아래와 같이 작성했다고 가정하자.

Host myServerHost
User ubuntu
HostName 127.0.0.1
IdentityFile ~/.ssh/finaleKey.pem
ssh myServerHost

라고만 작성해도 EC2에 접속이 가능하다.


2. JDK 다운 받기

호스트를 등록해서 EC2 접속이 아주 편하게 만들었다. 그렇다면 이제 JDK를 다운 받고 스프링 프로젝트를 배포해보자!

ssh myServerHost

다시 EC2에 접속을 한다.

sudo apt-get update
sudo apt-get install openjdk-17-jdk

그리고 위 명령어를 입력하면 jdk를 다운 받을 수 있다 숫자 부분만 바꾸면 해당 버전으로 다운 받을 수 있는 것 같다.

다운이 완료되고

java --version

으로 꼭 확인을 해보자.


3. 프로젝트 배포

우선 프로젝트를 빌드하고 jar 파일을 만들자

명령어로 실행할 수도 있지만 나는 마우스로 딸깍하는걸 좋아하기 때문에..
인텔리제이에서 gradle.build 를 수행하고 왔다.

#프로젝트 폴더에서 실행해야 합니다.
# 빌드 파일 복사
scp ./build/libs/{project}-0.0.1-SNAPSHOT.jar {호스트 이름}:/home/ubuntu

내 프로젝트 이름이 practice이라 가정하고 아까 설정한 호스트 이름이 myServerHost 이기때문에

scp ./build/libs/practice-0.0.1-SNAPSHOT.jar myServerHost:/home/ubuntu

이렇게 작성하면 jar 파일이 EC2에 복사가 된다.

그렇다면 다시 EC2로 접속해서

ssh myServerHost

nohup java -jar practice-0.0.1-SNAPSHOT.jar &

명령어를 실행하면 jar 파일이 실행된다.

마지막으로 http://{탄력적 IP}:8080 으로 접속해서 스프링이 잘 작동되는지 확인해보자!

nohup 으로 프로젝트를 실행했기 때문에 EC2와 접속을 끊어도 스프링은 계속 동작하고 있다.


마무리

이렇게 해서 아주 간단하게 EC2에 접속하는 방법과
수동으로 프로젝트 파일을 배포하는 방법을 알아봤다.

이제 다음으로 GitHub Actions를 사용해서 자동 배포하는 방법을 알아보도록하자!

이전 포스트와 마찬가지로
뱀귤 님 티스토리를 참고해서 다시 작성한 것입니다.

0개의 댓글