-
스프링부트 게시판을 ec2로 업로드aws 2024. 1. 23. 03:13
1. 인스턴스 시작

로그인 -> 인스턴스 시작 클릭
2. 인스턴스 이름 지정

인스턴스 이름 지정
3. OS 선택

Ubuntu 선택 -> Amazon Machine Image(AMI)를 '프리 티어 사용 가능'으로 선택
4. 인스턴스 유형 선택

'프리 티어 사용 가능'이 t2.micro라서 선택
5. 키 페어 생성


키 페어 이름 입력 후 생성을 눌러 다운로드
키 페어는 생성 후 다시 받을 수 없기 때문에 잘 보관해야 한다.
6. 네트워크 설정

인바운드 보안 그룹 규칙
- 유형 - 'ssh'
- 소스 유형 - '위치 무관'
7. 스토리지 구성

프리티어는 30GiB까지 사용 가능
8. 인스턴스 생성 완료

9. 보안 그룹 선택

10. 인바운드 규칙 설정

- 사용자 지정 TCP - TCP - 8080 - AnywhereIPv4 - spring boot port
- SSH - TCP - 22 - AnywhereIPv4
- HTTP - TCP - 80 - AnywhereIPv4
- HTTPS - TCP - 443 - AnywhereIPv4
11. 보안 그룹 생성

이름과 설명 입력
12. 보안 그룹 변경


보안 그룹 추가로 10 ~ 11에서 만든 보안 그룹 추가 후 기존의 보안 그룹은 제거
13. 인스턴스에 연결


사용자 이름을 'ubuntu'로 해서 연결
14. FileZilla 접속

15. PuTTy private key 생성

Load를 눌러 5번에서 만든 .pem파일 선택

Save private key 클릭

.ppk 파일 생성
16. PuTTy 접속

Host Name과 Post 입력

Private key file for authentication에 14번에서 만든 .ppk 파일 선택

Accept 클릭

ubuntu 입력하고 접속 완료
17. 시간 기준 변경

sudo timedatectl set-timezone 'Asia/Seoul'
기존 UTC에서 KST로 변경
18. 업데이트
sudo apt update sudo apt upgrade19. mariadb 설치
sudo apt-get install -y mariadb-server
mysql --version 혹은 mariadb --version으로 설치가 되었는지 확인
20. root권한 획득
sudo su21. root 계정 비밀번호 설정

mysqladmin -u root -p password 'admin'
22. 사용할 db와 계정 생성

mysql -u root -p 접속

create database devdb;
create user 'scott'@'%' identified by 'scott';
grant all on devdb.* to 'scott'@'%' with grant option;
flush privileges;

db툴로 접속 확인
23. 외부 IP 접속 허용

/etc/mysql/mariadb.conf.d/50-server.cnf50-server.cnf에 들어가서 bind-address 주석 처리

10번에서 설정한 인바운드 규칙에 mariadb 포트인 '3306' 추가
24. 게시판과 db연결

퍼블릭 IPv4 DNS로 연결
25. jar 전송

intellij의 터미널에 ./gradlew bootJar 입력하여 jar 생성

jar 전송
26. jar 실행

nohup java -jar dev-0.0.1-SNAPSHOT.jar 1> /dev/null 2>&1 &
ps -ef | grep dev-로 pid 확인
출처
https://extsdd.tistory.com/116
https://blogshine.tistory.com/322
https://velog.io/@jaybon/AWS-EC2-Spring-boot-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0