TIL

AWS - EC2, RDS 내 SpringBoot 프로젝트와 연결하기

Big Iron 2023. 3. 18. 20:18

오늘은 단순히 내 SpringBoot 프로젝트와 MySQL을 연동하고 AWS에 배포하는 과정을 적어보려고 한다.

  1. AWS 사이트 접속
    [https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2#\]

  2. RDS 검색, 클릭

    image

  3. 데이터베이스 생성 클릭

  4. 표준 생성 및 DB 유형 선택

    image

  5. 템플릿 선택

    image

  6. DB 이름, 사용자 이름, 암호 입력

    image

  7. DB크기 및 스토리지 설정

    image

  8. 연결 - 추가 연결 구성 클릭

    image

  9. 퍼블릭 액세스 기능 "예" 선택 및 보안그룹 설정

    image

  10. 추가구성 - 데이터베이스 옵션 설정 및 아래의 데이터베이스 생성 클릭. 이름은 알아서 설정하자.

    image

이제 생성한 RDS 포트를 열고 MySQL과 연동해 보겠다.

  1. 내가 생성한 DB 클릭.

    image

  2. 연결 & 보안 VPC보안그룹 클릭

    image

  3. 보안 그룹 ID 클릭

    image

  4. 인바운드 규칙 편집 클릭

    image

  5. 소스 > 위치 무관 클릭해서 lPv4 클릭. 규칙 저장

    image

IntelliJ에서 MySQL 연동 설정

  1. 링크 접속
    [https://ap-northeast-2.console.aws.amazon.com/rds/home?region=ap-northeast-2#databases:]

  2. DB 클릭

    image

  3. 엔드포인트 복사

    image

  4. IntelliJ 접속 > 화면 우측 Database탭 클릭 후 MySQL 클릭

    image

  5. 이미지 따라하고 아래 Test Connection 클릭 > 확인

    image

SpringBoot 프로젝트와 MySQL 연동하기

  1. SpringBoot 프로젝트의 application.properties를 연다
  • spring.datasource.url=jdbc:mysql://나의엔드포인트:3306/myselectshop
  • spring.datasource.username=나의USERNAME
  • spring.datasource.password=나의패스워드
  • spring.jpa.hibernate.ddl-auto=update
  1. 프로젝트 실행 및 연결된 DB 확인하기
  • console 창에서 select * from 조회할테이블명; 입력.

AWS EC2 서버 이용

  1. 사이트 접속
    [https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2]

  2. 인스턴스 시작

    image

  3. 제일 상단 이름 설정하고 애플리케이션 ubuntu 검색, 선택

    image

![image](https://user-images.githubusercontent.com/108318494/226106681-2fb73f62-44bf-4df0-b280-dd0b9f277d2f.png)
  1. 인스턴스 유형 선택 > 키페어 있다면 선택 없다면 아래 이미와 같은 형식으로 생성

    image

![image](https://user-images.githubusercontent.com/108318494/226106808-68583deb-9f23-4b1e-8808-a72bef06db6b.png)
  1. AWS EC2에 접속하기
  • Mac OS: Mac은 ssh가 있어서, 명령어로 바로 접근 가능!

    • 터미널을 열기 (spotlight에 terminal 입력)
    • 방금 받은 내 Keypair의 접근 권한을 바꿔주기
      • sudo chmod 400 받은키페어를끌어다놓기
    • SSH로 접속하기
      • ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
    • 예) 아래와 비슷한 생김새!
  • Window: ssh가 없으므로, git bash라는 프로그램을 이용!

    • gitbash를 실행하고, 아래를 입력!
      • ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
    • 예) 아래와 비슷한 생김새!
  • Key fingerprint 관련 메시지가 나올 경우 Yes를 입력

  • git bash를 종료할 때는 exit 명령어를 입력하여 ssh 접속을 먼저 끊는다

  • 간단한 리눅스 명령어 연습하기

    • 리눅스는 윈도우 같지 않아서, '쉘 명령어'를 통해 OS를 조작한다. (일종의 마우스 역할)

[가장 많이 쓰는 몇 가지 명령어]

  • ls: 내 위치의 모든 파일을 보여준다.
    • pwd: 내 위치(폴더의 경로)를 알려준다.
    • mkdir: 내 위치 아래에 폴더를 하나 만든다.
    • cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.
    • cd .. : 나를 상위 폴더로 이동시킨다.
    • cp -r [복사할 것] [붙여넣기 할 것]: 복사 붙여넣기
    • rm -rf [지울 것]: 지우기
    • sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.
    • sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)

EC2 준비하고 배포하기

  1. 배포 파일 빌드하기

    • 우측 탭 중에서 Gradle 을 선택.
    • Tasks > build > build 를 더블 클릭.
      image
  2. 좌측 build 폴더 > libs 아래 .jar 확장자로 끝나는 파일 생성 > 빌드 성공.

    image

  3. OpenJDK 설치하기 하나씩 실행

  • sudo apt-get update
  • sudo apt-get install openjdk-17-jdk
  • java -version
  1. Filezilla실행, 다음과 같이 설정

    image

![image](https://user-images.githubusercontent.com/108318494/226108205-316af890-28c8-4e04-a7a8-a9edd83c8994.png)
  1. IntelliJ에서 Filezilla로 파일 드래그

    image

![image](https://user-images.githubusercontent.com/108318494/226108302-e3d62bb7-5d2c-4571-91b0-09659d28c5e5.png)
  1. 스프링 부트 작동시키기
  • git bash에 아래 입력
    • java -jar JAR파일명.jar
  • 예시
    • java -jar studybook-0.0.1-SNAPSHOT.jar
  1. AWS에서 80, 8080 포트를 열어주기
  • EC2 관리 콘솔로 들어간다 > 보안그룹(영문: Security Group)을 눌러 들어간다. 이미지에선 launch-wizard-1
    image
  1. 해당 보안그룹 클릭

    image

  2. Edit inbound rules를 선택합니다.

    image

  3. 두 가지 포트 추가.

  • 80포트: HTTP 접속을 위한 기본포트
  • 8080포트: 스프링 부트 기본포트
    image
  1. 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