본문 바로가기
스프링부트

AWS 서버 / MySQL 연결 (배포과정)

by DDveloper 2021. 3. 24.

Spring boot - MySQL 연결

1. RDS 구매 & 포트열기 (기본적인 보안세팅)

ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2#

  • RDS 검색 -> 데이터베이스 생성 -> 표준생성,mysql,프리티어 선택
  • DB인스턴스 식별자 자유롭게 입력 ex) springboot-db
  • 마스터 사용자 이름/암호 (꼭 기억해야함)
  • 연결 - 퍼블릭 엑세스 가능 '예' 체크! (그래야 RDS접근 가능함)
  • 보안그룹 - 새로생성 - 새 보안그룹이름생성 ex) springboot-db-security, 가용영역 아무거나 선택
  • 추가구성 - 초기 데이터베이스 이름 입력 ex) myselectshop  후 데이터베이스 생성 클릭
  • RDS 왼쪽 메뉴에서 데이터베이스 클릭 후 데이터베이스 이름 클릭
  • 연결&보안탭에서 보안그룹 - 인바운드 규칙편집 - 규칙추가 - 포트범위3306 소스 위치무관 후 저장

2. IntelliJ- mysql 연결

ap-northeast-2.console.aws.amazon.com/rds/home?region=ap-northeast-2#databases:

  • 엔드포인트 링크 확인 
  • 인텔리제이에서 오른쪽 데이터베이스 메뉴 클릭 - +아이콘 클릭 - 데이터 소스 - mysql 선택
  • 이름 자유롭게 / 호스트 - 엔드포인트 링크 넣기 / id pw database 1번에서 설정한 값으로 넣고 테스트
     (만약 테스트 때 오류난다면 1. 비밀번호 틀림 / 2. 포트 안열어줌 의 경우

3. application.properties 에 MySQL 연결 설정  

spring.datasource.url=jdbc:mysql://나의엔드포인트:3306/myselectshop 
spring.datasource.username=나의USERNAME 
spring.datasource.password=나의패스워드 
spring.jpa.hibernate.ddl-auto=update

4. IntelliJ에서 파일 빌드

  • 우측 Gradle메뉴 - Tasks - build폴더 - build 두번클릭
  • 시간 지나면 왼쪽 폴더 목록에 bulid - libs에 저장됌

AWS 서버

1. EC2 서버 구매링크

ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2

 

2. 많이 쓰이는 리눅스 명령어

ls: 내 위치의 모든 파일을 보여준다.

pwd: 내 위치(폴더의 경로)를 알려준다.

mkdir: 내 위치 아래에 폴더를 하나 만든다.

cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.

cd .. : 나를 상위 폴더로 이동시킨다.

cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기

rm -rf [지울 것]: 지우기

sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.
sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)

3. EC2접속

  • git bash 실행 -> ssh -i 받은키페어를 끌어다놓기 ubuntu@아이피(AWS에적힌내아이피)
  • git bash 종료 시 exit 명령어 입력을 통해 ssh 접속을 먼저 끊어주세요

4. OpenJDK 설치(ubuntu에 한줄씩 실행)

sudo apt-get update						// 저장소 업데이트
sudo apt-get install openjdk-8-jdk		// 입력하고 중간에 Y 입력 한번 더 해야함
java -version							// java 설치여부 확인 (openjdk, 1.8버전 확인)

5. FileZilla 로 파일 옮긴 후 작동시키기

java -jar JAR파일명.jar			// ubuntu 안에 해당파일 있는 경로에서

6. 8080, 80번 포트 열어주기 

  • AWS 인스턴스 - 보안 - 보안그룹 - 인바운드규칙 - 규칙추가 
  • 80은 HTTP, 8080은 사용자지정 TCP 선택 후 소스는 둘다 위치무관으로 저장

7. 8080 -> 80번 포트로 가는작업 = 포트포워딩

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
  • 리눅스에서 제공, 80으로 들어온걸 8080으로 연결해주는 의미    (ubuntu에 입력)

* 만약 포트포워딩 해도 접속이 안된다면

sudo iptables -t nat -L  // 입력해서 포트포워딩 상태 확인

sudo iptables -D PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 포트번호
// 입력해서 삭제 반복

8. nohup 설정 (서버 계속 작동하게 하기)

nohup java -jar JAR파일명.jar &    			// 서버 계속 돌아가게 설정  // 입력 후 엔터 두번



// 종료하는 법
# 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
ps -ef | grep java

# 아래 명령어로 특정 프로세스를 죽인다
kill -9 [pid값]

도메인 등록

1. www.gabia.com/로그인 후 서비스 관리 - 관리툴 - 도메인 연결 - DNS 설정 - 호스트:@ 값:ip주소 입력 후 저장

댓글