오늘은 단순히 내 SpringBoot 프로젝트와 MySQL을 연동하고 AWS에 배포하는 과정을 적어보려고 한다.
AWS 사이트 접속
[https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2#\]RDS 검색, 클릭
데이터베이스 생성 클릭
표준 생성 및 DB 유형 선택
템플릿 선택
DB 이름, 사용자 이름, 암호 입력
DB크기 및 스토리지 설정
연결 - 추가 연결 구성 클릭
퍼블릭 액세스 기능 "예" 선택 및 보안그룹 설정
추가구성 - 데이터베이스 옵션 설정 및 아래의 데이터베이스 생성 클릭. 이름은 알아서 설정하자.
이제 생성한 RDS 포트를 열고 MySQL과 연동해 보겠다.
내가 생성한 DB 클릭.
연결 & 보안 VPC보안그룹 클릭
보안 그룹 ID 클릭
인바운드 규칙 편집 클릭
소스 > 위치 무관 클릭해서 lPv4 클릭. 규칙 저장
IntelliJ에서 MySQL 연동 설정
링크 접속
[https://ap-northeast-2.console.aws.amazon.com/rds/home?region=ap-northeast-2#databases:]DB 클릭
엔드포인트 복사
IntelliJ 접속 > 화면 우측 Database탭 클릭 후 MySQL 클릭
이미지 따라하고 아래 Test Connection 클릭 > 확인
SpringBoot 프로젝트와 MySQL 연동하기
- SpringBoot 프로젝트의 application.properties를 연다
- spring.datasource.url=jdbc:mysql://나의엔드포인트:3306/myselectshop
- spring.datasource.username=나의USERNAME
- spring.datasource.password=나의패스워드
- spring.jpa.hibernate.ddl-auto=update
- 프로젝트 실행 및 연결된 DB 확인하기
- console 창에서 select * from 조회할테이블명; 입력.
AWS EC2 서버 이용
사이트 접속
[https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2]인스턴스 시작
제일 상단 이름 설정하고 애플리케이션 ubuntu 검색, 선택
![image](https://user-images.githubusercontent.com/108318494/226106681-2fb73f62-44bf-4df0-b280-dd0b9f277d2f.png)
인스턴스 유형 선택 > 키페어 있다면 선택 없다면 아래 이미와 같은 형식으로 생성
![image](https://user-images.githubusercontent.com/108318494/226106808-68583deb-9f23-4b1e-8808-a72bef06db6b.png)
- AWS EC2에 접속하기
Mac OS: Mac은 ssh가 있어서, 명령어로 바로 접근 가능!
- 터미널을 열기 (spotlight에 terminal 입력)
- 방금 받은 내 Keypair의 접근 권한을 바꿔주기
- sudo chmod 400 받은키페어를끌어다놓기
- SSH로 접속하기
- ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
- 예) 아래와 비슷한 생김새!
- ssh -i /path/my-key-pair.pem ubuntu@13.125.250.20
Window: ssh가 없으므로, git bash라는 프로그램을 이용!
- gitbash를 실행하고, 아래를 입력!
- ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
- 예) 아래와 비슷한 생김새!
- ssh -i /path/my-key-pair.pem ubuntu@13.125.250.20
- gitbash를 실행하고, 아래를 입력!
Key fingerprint 관련 메시지가 나올 경우 Yes를 입력
git bash를 종료할 때는 exit 명령어를 입력하여 ssh 접속을 먼저 끊는다
간단한 리눅스 명령어 연습하기
- 리눅스는 윈도우 같지 않아서, '쉘 명령어'를 통해 OS를 조작한다. (일종의 마우스 역할)
[가장 많이 쓰는 몇 가지 명령어]
- ls: 내 위치의 모든 파일을 보여준다.
- pwd: 내 위치(폴더의 경로)를 알려준다.
- mkdir: 내 위치 아래에 폴더를 하나 만든다.
- cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.
- cd .. : 나를 상위 폴더로 이동시킨다.
- cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기
- rm -rf [지울 것]: 지우기
- sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.
- sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)
EC2 준비하고 배포하기
배포 파일 빌드하기
- 우측 탭 중에서 Gradle 을 선택.
- Tasks > build > build 를 더블 클릭.
좌측 build 폴더 > libs 아래 .jar 확장자로 끝나는 파일 생성 > 빌드 성공.
OpenJDK 설치하기 하나씩 실행
- sudo apt-get update
- sudo apt-get install openjdk-17-jdk
- java -version
Filezilla실행, 다음과 같이 설정
![image](https://user-images.githubusercontent.com/108318494/226108205-316af890-28c8-4e04-a7a8-a9edd83c8994.png)
IntelliJ에서 Filezilla로 파일 드래그
![image](https://user-images.githubusercontent.com/108318494/226108302-e3d62bb7-5d2c-4571-91b0-09659d28c5e5.png)
- 스프링 부트 작동시키기
- git bash에 아래 입력
- java -jar JAR파일명.jar
- 예시
- java -jar studybook-0.0.1-SNAPSHOT.jar
- AWS에서 80, 8080 포트를 열어주기
- EC2 관리 콘솔로 들어간다 > 보안그룹(영문: Security Group)을 눌러 들어간다. 이미지에선 launch-wizard-1
해당 보안그룹 클릭
Edit inbound rules를 선택합니다.
두 가지 포트 추가.
- 80포트: HTTP 접속을 위한 기본포트
- 8080포트: 스프링 부트 기본포트
- PostMan 등 접속해보기
- http://내 public 아이피:8080 이용
'TIL' 카테고리의 다른 글
Stream() 사용 방법. (0) | 2023.03.20 |
---|---|
백 & 프론트 협업시 발생하는 CORS에러 해결 방법. (0) | 2023.03.20 |
다양한 Exception 커스텀하는 방법. (0) | 2023.03.16 |
IOC와 DI란 ?? (0) | 2023.03.12 |
Usecase - 유스케이스 다이어그램 (0) | 2023.02.27 |