위 영상을 보고 따라하며 정리한 내용입니다!
Jar 파일로 생성하는 방법
IntelliJ에서 배포하고 싶은 프로젝트를 연 후, Gradle 창에서 프로젝트명 > Tasks > build 로 들어가 bootJar를 더블 클릭한다.
위 사진처럼 BUILD SUCCESSFUL이라고 뜨면 성공입니다.
해당 프로젝트를 저장한 위치로 들어가 build > libs 에 들어가면 .jar 파일이 생성되어 있습니다.
Jar 파일 생성은 성공입니다.
AWS EC2에 배포하는 방법
AWS에 로그인하여 Console 창에서 EC2를 선택합니다.
만약 Console 창에 뜨지 않는다면 검색하셔도 됩니다.
클릭했을 때 뜨는 Resources에서 Instances (running)을 클릭합니다.
현재 running 중인 Instance가 없어 아무것도 없는 것처럼 보입니다.
'Instance state = running'이라고 되어 있는 곳 오른쪽의 X 버튼을 누르면 정지되어 있는 Instance들이 전부 보입니다.
여기서 새로운 Instance를 만들기 위해서는 'Launch instances'라는 주황색 버튼을 클릭하시면 됩니다.
원하시는 이름을 작성하시고,
OS Image도 원하시는 걸로 선택하시면 됩니다.
저는 강의를 따라 Ubuntu로 선택하였고, Amazon Machine Image (AMI) 라고 되어 있는 곳은 Free tier eligible (프리 티어 가능) 이라고 되어 있는 기본값을 그대로 가져갔습니다.
그 다음으로 설정해야 할 것은 Key pair입니다. 오른쪽에 있는 'Create new key pair'를 누르시면 아래와 같은 창이 뜹니다.
강의에서 SSH 접근 방식을 사용하기 위해 .pem으로 다운로드 받으셔서 저도 .pem으로 설정하고 'Create key pair'를 눌러주었습니다.
이 때 다운로드받은 'KeyName'.pem 파일과 위에서 생성한 Jar 파일은 한 폴더 안에 위치시켜 주셔야 하는 것 같습니다.
저는 따로 이를 관리할 파일을 만들어서 그 안에 두 개를 넣어주었습니다.
강의에서 다른 설정은 넘어가시고 Configure storage만 8에서 10으로 올려주시길래 따라 올려보았습니다.
컴퓨터의 저장 용량인데 위처럼 설정하시면 10GB로 설정한 것이 됩니다.
이렇게 설정하신 후 완료하시면 Instance 하나가 생성이 됩니다.
그 다음으로 설정해주어야 하는 것이 포트입니다.
저는 SpringBoot 어플리케이션에서 8080 포트를 사용하였는데, 이를 추가로 설정해주어야 하는 것입니다.
왼쪽 사이드 바를 쭉 내리시면 보이는 Security Groups을 클릭해주세요.
저에게는 이렇게 두 개가 뜨는데, 이 중 어떤 것을 설정해야 하는지 의문이 들어 찾아보았습니다.
EC2 Dashboard에 가시면 방금 제가 생성한 Instance가 보이고, 오른쪽으로 가보면 Security group name이라는 정보가 뜹니다.
제가 설정하고 싶은 Instance의 Security group은 'launch-wizard-1'이고, 이를 Security Groups에서 찾으면 됩니다.
원하는 Security Group을 선택하시고, 아래에서 Inbound rules라는 탭을 누르시면 위와 같은 화면이 뜹니다.
저는 이미 8080 포트를 추가하였기 때문에 첫 줄에 뜨고 있습니다.
설정을 추가하고 싶으시면 'Edit inbound rules'라는 버튼을 누르시면 됩니다.
왼쪽 하단의 'Add rule'이라는 버튼을 누르시면 규칙탭이 하나 더 생기는데, 이 때 Port range를 8080으로 적어주시고, Source type을 Anywhere-IPv4로 설정하신 후 저장하시면 됩니다.
여기까지 설정하셨다면 다시 EC2 Dashboard로 이동하시면 됩니다.
원하는 Instance 위에서 우클릭하시면 뜨는 'Connect'를 클릭합니다.
사실 이 다음부터는 Connect to instance의 SSH client 탭에 적혀있는 순서대로 하시면 됩니다.
대신 bash 쉘이 미리 설치되어야 있어야 합니다.
저는 Git Bash가 미리 깔려 있어 이를 사용하였습니다.
Git Bash를 jar 파일과 key pair를 옮겨둔 파일에서 불러옵니다.
ls 명령어를 통해 해당 key pair와 jar 파일이 존재하는지 확인할 수 있습니다.
chmod 400 명령어를 사용하여 권한을 부여해줍니다.
해당 명령어는 위에서 확인했던 Connect to instance의 SSH client 탭에 나와있습니다.
아무런 메세지가 뜨지 않으면 성공입니다.
그 다음으로 4번째 코드를 그대로 복사해와서 실행하시면 됩니다.
이런 창이 뜨시면 yes라고 입력하시고 엔터를 누르시면 됩니다.
ubuntu@ip-아이피주소:~$ 라고 뜨면 접속 성공입니다.
ubuntu에 java가 깔려있는지를 확인해야 합니다.
java -version
처음이시라면 bash 창에 java -version이라고 치시면 깔려있지 않다는 코멘트가 뜰 것입니다.
원하는 java 버전을 설치해주시면 되는데, 그 전에 아래 명령어를 먼저 입력해주세요.
sudo apt update
update를 한 후에 java 버전을 설치해야 오류가 나지 않습니다.
그 후 원하는 버전의 java를 설치하면 되는데 저는 17 버전을 사용하겠습니다.
sudo apt install openjdk-17-jre-headless
그 다음 ls를 치면 파일 목록이 나오는데, 저는 이미 jar 파일을 업로드해둔 상태로 보이고 있습니다.
처음이시라면 jar 파일을 업로드해주는 과정이 필요합니다.
아까 켰던 bash 창은 켜둔 채로 새로운 bash 창을 켜줍니다. (bash 창이 2개 떠있어야 합니다.)
새 bash 창에서 다시 chmod 400 권한을 설정해줍니다.
scp -i 키페어.pem ~/Desktop/파일이름.jar ubuntu@IP:~/받을서버경로
그 다음으로 위처럼 입력해주시면 됩니다.
다시 이전 창으로 돌아가서 ls 명령어를 치시면 아래와 같이 jar 파일이 들어가 있을 것입니다.
sudo java -jar 스프링 부트 jar 파일 을 입력하고 엔터를 누르면 어플리케이션이 구동됩니다.
Started 어플리케이션이름 이라고 뜨면 성공입니다.
추가로 저는 MariaDB와 Redis를 DB로 사용하고 있기 때문에 이 부분도 bash 창에서 설치해주었습니다.
MariaDB 설치
sudo apt install mariadb-server
sudo systemctl start mariadb
sudo systemctl status mariadb
mysql -u root -p // root 비밀번호 설정
Redis 설치
sudo apt-get install redis-server
'CI | CD' 카테고리의 다른 글
[Docker] 도커 컨테이너 통신하기 (0) | 2024.07.10 |
---|---|
[Docker] 도커 커맨드 사용법 - 실습편 (0) | 2024.07.10 |
[Docker] 컨테이너 구조 및 커맨드 사용법 - 이론편 (0) | 2024.07.10 |
[Docker] 도커 기초 (0) | 2024.07.10 |
[AWS] 클라우드와 AWS (0) | 2024.07.06 |