AWS에 Spring Boot 프로젝트 배포 - RDS, MySQL 세팅

차곡차곡·2024년 8월 19일
0

SpringBoot + React

목록 보기
7/9
post-thumbnail

이제껏 H2 DB를 통해 테스트용으로 사용했지만 서버가 다운되어도 데이터가 초기화 되지 않고 다른 사람들도 내 페이지에 접속해서 사용할 수 있게 EC2 인스턴스를 생성할 것이다.
또 팀원들과 함께 데이터베이스를 공유하기 위해 RDS도 생성한다.
그리고 EC2 서버에 내 프로젝트를 가져올 것이다.

  • EC2
    Elastic Compute Cloud의 약자. AWS에서 가장 중요한 서비스! 아마존이 서비스를 제공하는 리전에서 가상의 컴퓨터를 임대하는 개념이다. 인스턴스는 EC2를 생성할 때 사용하는 단위인데, 1대의 컴퓨터를 의미하고 생성 시 OS 등 가상 서버 관련 설정을 선택할 수 있다. (ubuntu, window)
  • RDS
    Amazon RDS(Relational Database Service)는 Amazon Web Services(AWS)에서 제공하는 관리형 관계형 데이터베이스 서비스로 RDS를 사용하면 데이터베이스 인프라의 설정, 운영 및 확장에 필요한 대부분의 작업을 자동화하여 더 쉽게 관리할 수 있다.

🛠️ AWS RDS 설정

AWS에 가입 후, RDS 대시보드로 들어오기

0. 지역 설정

1. DB 생성 후 설정 및 DB 선택


2. 템플릿 프리티어 선택 및 DB 식별자, 사용자, 암호 세팅

나머지는 돈이 많이 나가니 프리티어를 선택해주도록 하자.
그리고 구분하기 좋고, 본인이 알 수 있는 이름으로 지정해야함
특히 사용자 이름이랑 암호는 연결에 필수적이라 복사 붙여넣기 필수


3. 인스턴스 구성

  • db.t3.micro 설정


4. 스토리지 구성

  • 프리티어에서 제공하는 20G로 설정
  • 스토리지 자동 조정 해제 (20G 이상 초과 못하게)


5. 지역 설정

  • 퍼블릭 액세스를 반드시 "예"로 변경해줘야 한다. 그래야 접속을 할 수 있다.
  • 보안그룹도 새로 설정할 것이기 때문에 만들어준다.
  • 가용영역은 아무거나. 포트도 그대로.

6. 데이터베이스 인증

  • 설정한 암호를 사용해서 팀원들도 접속할 수 있도록 암호 인증을 선택해주자.

7. 추가 구성

  • 스프링부트에서 연결할 때 초기 데이터베이스가 필요하기 때문에 초기 데이터베이스 이름 필수
  • 프로젝트에서 사용할 데이터베이스 이름으로 설정
  • 백업은 돈 나갈 수 있으니 자동백업 취소 이후 생성하기 클릭! 빠르면 5분 느리면 10분정도 후에 db가 만들어진다.

8. 보안그룹 설정

  • db 식별자 > 보안그룹 > 그룹 id > 인바운드 규칙 편집 > 사용자 지정 tcp 추가
  • 마스터 이름과 암호만 알면 접근 가능하게 설정


💻 Spring Boot 연동

0. 연동 엔드포인트 복사


1. db 플러그인에 연동

  • db 이름은 자유 (플러그인이 인식하는 나만의 이름임)
  • Host에는 복사한 엔드포인트를 붙여넣어 준다.
  • UserName과 Password 에는 생성할 때 설정한 마스터 이름과 암호를 입력해준다.
  • Database에는 생성할 때 추가구성에서 설정한 이름을 넣어준다.

vscode

인텔리j



2. 스프링부트 설정

프로퍼티

spring.datasource.url=jdbc:mysql://엔드포인트:3306/추가구성DB이름?serverTimezone=UTC&characterEncoding=UTF-8

spring.datasource.username=마스터이름
spring.datasource.password=비밀번호
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.jpa.hibernate.ddl-auto=update

3. 스프링부트 실행 및 확인

  • 이후 서버를 실행하고, 기존에 만들었던 엔티티가 생성되는지 체크한다!
  • 문제 없이 생성되고 연동되면 끝!

참고 벨로그 :

https://velog.io/@matisse/AWS-%EB%B0%B0%ED%8F%AC-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC

https://velog.io/@dohaeng0/AWS%EC%97%90-Spring-Boot-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EB%B0%B0%ED%8F%AC-1-RDS-MySQL-%EC%84%B8%ED%8C%85

https://velog.io/@dradnats1012/%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85%ED%95%98%EB%8A%94-AWS-%EA%B8%B0%EC%B4%88-%EA%B0%95%EC%A2%8C-%EC%A0%95%EB%A6%AC

profile
계단식 성장

0개의 댓글