AWS ec2 인스턴스 생성 및 Spring boot API 띄우기
작년 이맘때쯤 회사에서 사람을 모아 작은 사이드 프로젝트를 시작했다.
서버 담당이 나 혼자라서 springboot, db, AWS 모두 경험하게 됐다.
결국 흐지부지 돼서 오픈은 못했지만🥹 그 과정을 남겨보려 한다.
(프리티어 기간이 끝나서 매달 돈이 나가고있음. 이거 정리하고 아예 지울예정)
개발환경
1. Spring boot 2.7.13(세월의 흔적이 느껴진다. 지금은 initializr에 3점대밖에 없다)
2. Java 11(세월의 흔적2 지금은 17이 최소다)
3. Maria DB
4. AWS EC2(Amazon Linux)
1. AWS EC2 콘솔 > 인스턴스 시작 클릭
2. 이름 설정
플젝 이름으로 설정해줬다.
3. OS 선택
고민없이 프리티어로 선택
4. 인스턴스 유형 선택
고민없이 프리티어 선택 22
5. 키 페어 설정
새 키 페어 생성 > 키 페어 생성 하면 자동으로 선택되고 키가 다운받아진다. 이때 받은 키는 따로 보관한다.
6. 네트워크 설정
설정 바꾸지 않고 그대로 진행
7. 스토리지 구성
30 최대로 변경
8. 인스턴스 시작
9. 인스턴스 생성 완료
인스턴스를 실행하면 이렇게 뜨게 된다.
10. 터미널 접속 (Mac)
키 권한 변경 후 접속
chmod 400 kkuksae-key.pem
ssh -i kkuksae-key.pem "ec2-user@{ip}"
11. 탄력적 IP 설정
인스턴스 중지 후 다시 실행하면 IP가 바뀌기때문에 고정 IP를 설정해줘야 한다.
네트워크 및 보안 > 탄력적 IP > 탄력적 IP 주소 할당
12. 탄력적 IP 할당
13. 작업 > 탄력적 IP 주소 연결
14. 네트워크 및 보안 > 보안 그룹
인스턴스 만들면서 같이 생성된 보안그룹 선택
http 호출용 8080과 데이터베이스 연결용 3306 인바운드 규칙에 추가
15. EC2 인스턴스 JDK 설치
yum list java*
sudo yum install java-11-amazon-corretto.x86_64
java -version
16. API 프로젝트 빌드
IntelliJ > Gradle > build > build
build/libs 밑에 jar 파일 확인
17. 인스턴스로 .jar 파일 이동
git clone 받지 않고 filezila로 옮겨서 진행했다.
프로토콜 SFTP 선택, 호스트에 ip 입력, 로그온 유형 키 파일로 선택
18. 인스턴스에서 jar 파일 실행
nohup java -jar server-0.0.1-SNAPSHOT.jar &
19. postman 확인
퍼블릭 IPv4 DNS로 도메인 설정 후 호출해주면 정상적으로 response가 오는 것을 확인할 수 있다.
끝!
참고 사이트
AWS EC2 인스턴스 생성 및 설정
EC2란? Amazon Elastic Compute Cloud(Amazon EC2)는 Amazon Web Services(AWS) 클라우드에서 확장 가능 컴퓨팅 용량을 제공합니다. Amazon EC2를 사용하면 하드웨어에 선투자할 필요가 없어 더 빠르게 애플리케이션을
rachel0115.tistory.com
[ AWS ][ 서버 구축하기 2 ] 맥 터미널에서 EC2 인스턴스 접속하기 (feat. pem 파일) 🖥
윈도우에서는 putty 같은 ssh 프로그램을 이용해서 접속해야하지만,맥 같은 경우에는 기본으로 설치되어 있는 터미널 앱을 사용해서 접속이 가능하다!!! 📌 AWS EC2 인스턴스 생성하는 방법위 하이
velog.io
https://bcp0109.tistory.com/356
AWS 1편: EC2 생성 후 Spring Boot 띄우기
Overview AWS EC2 인스턴스를 생성하고 Spring Boot 서버를 띄워보는 것까지 진행합니다. 주 목표는 서버를 외부에 제공하는 거라서 따로 배포 시스템을 구축하지 않고 단순히 빌드 파일을 복사해서 수
bcp0109.tistory.com