<이전 글>
환경
Windows, Linux, Ubuntu, Git Bash, Spring Boot, MySQL
이전 글을 통해서 RDS 설정과 인텔리제이에서 MySQL 설정을 마무리해줬다면, 이제 EC2 서버 구매 및 배포를 해볼 차례다.
1. EC2 서버 구매하기
1-1. OS로 리눅스의 Ubuntu 설치 후 배포 준비
▪️ Windows가 아닌 리눅스의 Ubuntu 환경을 사용하는 이유
- Ubuntu는 오픈소스이기 때문에 라이선스 비용이 없다. 반면 Windows Server는 라이선스 비용이 발생한다.
- 리눅스 서버는 SSH를 통해 원격으로 쉽게 접근할 수 있어 서버 관리가 편리하다.
다른 이유들도 있겠지만, 필자는 이러한 이유들로 Ubuntu를 선택했다.
1-2. 콘솔페이지로 이동해서 '인스턴스 시작' 클릭
1-3. ⭐[중요] 인스턴스 설정 해주기
이름 및 태그는 선택사항이므로 원하는 이름으로 해주고, Ubuntu로 20.04 or 22.04를 선택해준다! (ubuntu 선택 중요!)
1-4. 인스턴스 유형으로 무료 버전인 t2.micro를 설정해준다. (1년 기한)
1-5. ⭐[중요] 키 발급받기
인스턴스 유형 메뉴의 바로 하단 키 페어 메뉴에서 '새 키 페어 생성' 클릭 후, key를 발급 받자. 발급받은 키는 서버 접속 시 매우 중요하므로 가지고 있어야 하는 점 주의!!!!
1-6. 체크 된 부분들을 확인해주고 '인스턴스 시작' 클릭!
여기까지 했으면 구매 완료다 ㅎㅎㅎ
참고) EC2 서버 종료하는 법
2. EC2 에 접속하기 (22번 포트)
▪️SSH 및 22번 포트 사용
SSH 프로토콜은 다른 것들보다 보안이 상대적으로 뛰어나기 때문에 SSH를 통해 접속할 예정이다.
SSH 프로토콜은 기본적으로 TCP의 22번 포트를 쓰기 때문에, 접속할 컴퓨터가 22번 포트가 열려있어야 접속 가능하다.
AWS EC2의 경우, 이미 22번 포트가 열려있다!!!
Mac OS의 경우는 Mac이 SSH가 있기 때문에 기본적인 명령어를 통해 접근이 가능하지만, 필자의 운영체제는 윈도우이므로(SSH가 없음 ㅎ) Git Bash라는 프로그램을 이용해 접근해보도록 하자. (포스팅 1편에서 Git Bash 설치를 언급한 이유)
2-1. Git Bash를 통해 접속
터미널로 가서 아래와 같이 명령어를 입력해주자.
ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
(참고) 아래와 같은 생김새다.
ssh -i /path/my-key-pair.pem ubuntu@13.125.250.20
- Key fingerprint 관련 메시지가 나올 경우 Yes를 입력해주면 됨!
- git bash를 종료할 때는 exit 명령어를 입력하여 ssh 접속을 먼저 끊어주어야 한다.
'AWS에 적힌 내 아이피' 는 AWS EC2 콘솔창의 EC2 대시보드 접속해서 '인스턴스'를 클릭하면 상세 정보를 볼 수 있다. Public IPv4 address 부분을 보면 된다.
git bash 창 끄지 않기! 추후에도 계속 써야함
3. EC2 준비 및 배포
3-1. 배포 파일 빌드하기
인텔리제이로 이동해서 우측 탭의 Gradle을 선택 후, Tasks > build > build 를 더블 클릭한다.
좌측 build 폴더 > libs 아래에 .jar 확장자로 끝나는 파일이 생성됐다면 빌드가 성공적으로 된 것이다! 🎇
3-2. ⭐[중요] (ssh로 접속한) Ubuntu에서 OpenJDK 설치 (17v 권장)
상단의 2-1 단계에서 했었던 git bash 창에서 아래와 같은 명령어를 실행해 OpenJDK를 설치해주어야 한다.
sudo apt-get update
sudo apt-get install openjdk-17-jdk
java -version
OpenJDK 버전이 꼭 17이어야 하는 것은 아니다. 프로젝트 요구 사항, 호환성, LTS 여부 등을 고려하여 적절한 버전을 선택하면 된다.
하지만 만약 특별한 요구 사항이 없다면, 최신 LTS 버전인 Java 17을 사용하는 것이 제일 좋다!!!!
4. FileZilla 이용한 배포 파일 업로드
포스팅 1편에서 언급하고 설치했던 FileZilla를 써서 배포 파일을 업로드해야한다.
4-1. FileZilla(이하 파일질라) 실행 후 다음과 같이 설정
위 캡쳐본의 순서대로 클릭 및 설정해주면, (호스트는 아까 확인했던 EC2 서버의 IP값) 서버의 파일들을 볼 수 있다.
4-2. 마우스로 드래그해서 파일 업로드
왼쪽 부분(본인 컴퓨터)에서 개발 완료된 프로젝트 폴더의 build > libs로 이동한다. (아까 상단에서 빌드 완료된 것 확인했었죠?)
프로젝트이름-어쩌고-SNAPSHOT.jar 파일을 드래그해서 오른쪽 부분(EC2)에 드랍하면 끝!
(FileZilla 설치한 이유 ㅎ 편해서)
5. 스프링 부트 작동
java -jar JAR파일명.jar
명령어 입력으로 스프링 부트를 작동시켜주자.
6. AWS에서 80, 8080 포트번호 열기
EC2 서버(=가상의 내 컴퓨터)에서 포트를 따로 설정하는 것 외에도, AWS EC2에서도 자체적으로 포트를 열고/닫을 수 있게 관리를 해주고 있다.
👉 그래서 AWS EC2 Security Group에서 인바운드 요청 포트를 열어줘야 함!!!
6-1. 해당 '보안 그룹' 클릭
6-2. '인바운드 규칙 편집' 클릭 > 두 가지 포트번호 추가 (80, 8080)
인바운드 규칙 편집을 클릭했다면 아래와 같이 설정 후 저장해준다.
- 80포트: HTTP 접속을 위한 기본포트
- 8080포트: 스프링 부트 기본포트
7. 접속해보자!
http://내 public 아이피:8080
성공 !!!
다음 포스팅에서는.. 저 뒤에 붙는 :8080을 떼버리는 포트포워딩과 nohup 적용 방법에 대해 들고오겠따!
<다음 글>
'Cloud > AWS' 카테고리의 다른 글
[AWS] 프리티어를 쓰고 있었는데 나도 모르는 요금이 청구됐다면?! (0) | 2024.10.10 |
---|---|
[AWS] EC2 포트포워딩, nohub 적용하기 (0) | 2024.08.04 |
[AWS] EC2 서버 중지 or 종료하는 방법 (0) | 2024.08.04 |
[AWS] EC2, RDS를 이용해 배포하기 1 - RDS 설정 및 인텔리제이와 연결 편 (0) | 2024.08.03 |