RDS 구매 및 MySQL 세팅
2. RDS 검색 후 결과 클릭
3. 데이터베이스 생성 클릭
4. 표준생성, MySQL 클릭
5. 프리 티어를 선택
6. 입력
- DB 인스턴스 식별자에 DB 이름 입력(이름은 원하는대로)
- 마스터 사용자 이름과 암호에 만들고 싶은 계정의 아이디, 비밀번호 입력(DB 접속용으로 사용)
7. DB 인스턴스 크기와 스토리지 설정은 Defualt 값 사용
8. 연결 → 추가 연결 구성 탭 클릭
설정
- 퍼블릭 엑세스 기능 : 예
- 이 설정을 해야 컴퓨터에서 AWS RDS의 MySQL과 연결 가능
- VPC 보안 그룹 : 새로 생성
- 보안 그룹 이름 지정
- 가용 영역 : 옵션 중 선택
9. 추가 구성 → 초기 데이터베이스 이름 입력
10. 데이터베이스 생성 클릭
RDS 포트 열기
1. db 선택
2. 연결& 보안 → 보안 → VPC 보안 그룹의 springboot-db-security 클릭
3. 보안 그룹 ID 클릭
4. 인바운드 규칙 편집 클릭
5. 소스 → 위치 무관 클릭(0.0.0./0, ::/0 생성 확인 후 규칙 저장)
Intellij 연결
인텔리제이 DB 아이콘 클릭 → Data Source → MySQL 선택
- Name : AWS 에서 설정한 DB 식별자 이름
- Host : AWS 대시보드 엔드 포인트
- User : RDS 에서 설정한 Username
- Password : RDS 에서 설정한 비밀번호
- Database : RDS 에서 설정한 DB 이름
Test Connection 성공 시 OK 클릭으로 DB와 연결
// application.properties
spring.datasource.url=jdbc:mysql://나의엔드포인트:3306/shop
spring.datasource.username=나의USERNAME
spring.datasource.password=나의패스워드
spring.jpa.hibernate.ddl-auto=update
- application.properites 파일은 GitHub Repository에 .gitignore 사용해 제외 또는 application.yml로 변환 후 암호화 후 올리기
EC2 구매
1. Name : 선택
2. Ubuntu로 20.04 or 22.04 선택
3. t2.micro 선택(1년 무료)
4. KEY 생성하기 클릭, key 발급
5. 나머지 체크리스트 체크 후 Launch instance 클릭
EC2 서버 종료하기
대상 인스턴스 마우스 우클릭 → 인스턴스 상태 클릭 → 중지 or 종료 클릭
EC2 접속
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 접속을 먼저 끊기
간단한 리눅스 명령어
ls: 내 위치의 모든 파일을 보여준다.
pwd: 내 위치(폴더의 경로)를 알려준다.
mkdir: 내 위치 아래에 폴더를 하나 만든다.
cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.
cd .. : 나를 상위 폴더로 이동시킨다.
cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기
rm -rf [지울 것]: 지우기
sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.
sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)
EC2 준비 및 배포
1. intellij : Gradle → Tasks → build → build 실행
2. 좌측 프로젝트 파일 → build → libs → .jar 파일 확인
3. ssh로 접속한 Ubuntu에서 OpenJDK 설치
sudo apt-get update
sudo apt-get install openjdk-17-jdk
java -version
4. Filezilla 사용 배포 파일 업로드
- Host: 내 EC2서버의 ip // User: ubuntu 로 입력
- 마우스로 드래그 해서 파일을 업로드/다운로드
- 왼쪽(본인 컴퓨터)에서 개발 완료된 myselectshop 프로젝트 폴더의 build > libs로 이동
스프링 부트 작동
java -jar JAR파일명.jar
AWS 80, 8080 포트 열기(AWS Security Group 인바운드 요청 포트)
Edit inbound rules 선택
- 80포트: HTTP 접속을 위한 기본포트
- 8080포트: 스프링 부트 기본포트
접속
http://내 public 아이피:8080
종료
- 터미널에서 ctrl + c
포트포워딩 & nohup 적용
포트포워딩 룰
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
서비스 시작
java -jar JAR파일명.jar
웹 브라우저에서 접속
http://내AWS아이피/
SSH 접속 끊어도 서버가 계속 돌게 하기
원격 접속을 종료하더라도 서버가 계속 돌아가게 하기
# 아래의 명령어로 실행하면 된다
nohup java -jar JAR파일명.jar &
서버 종료하기 - 강제종료하는 방법
# 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
ps -ef | grep java
# 아래 명령어로 특정 프로세스를 죽인다
kill -9 [pid값]
다시 켜기
# 아래의 명령어로 실행하면 된다
nohup java -jar JAR파일명.jar &
브라우저에서 접속하기
http://내AWS아이피/
'항해 99 > Web' 카테고리의 다른 글
웹 미니 프로젝트 3일차 - 마지막 (0) | 2024.02.02 |
---|---|
웹 미니 프로젝트 2일차 (0) | 2024.02.02 |
웹 미니 프로젝트 1일차 (0) | 2024.01.31 |
GPT 활용 웹개발 - 카드 삭제 기능 추가 (1) | 2024.01.30 |
GPT 활용 웹개발 기초 5주차 - 웹 배포하기 (0) | 2024.01.09 |