DevBoi

[AWS] EC2에 RDS 세팅하기 본문

Infra/[AWS]

[AWS] EC2에 RDS 세팅하기

HiSmith 2023. 5. 25. 23:06
반응형

데이터베이스 생성은 생각보다 쉽다.

아래 사항만 기억하면된다.

 

1. 손쉬운 생성

2. 프리티어(프로덕션이나, 개발인 경우 과금 청구)

3. EC2연결 설정 (아닌경우는 무시해도됨)

 

3번을 체크하지않고, 직접 할수도 있긴하다.

저 작업은 VPC와 보안그룹에 대한 것만 자동생성해서, Ec2에서 디비에 대한 인바운드 규칙만 추가해주는 것이다.

실제로도 aws에서도 아래와 같이 설명해주고 있다.

 

*이 데이터베이스의 컴퓨팅 리소스로 추가할 EC2 인스턴스를 선택합니다. VPC 보안 그룹이 이 EC2 인스턴스에 추가됩니다. VPC 보안 그룹은 EC2 인스턴스가 데이터베이스에 액세스하도록 허용하는 인바운드 규칙과 함께 데이터베이스에 추가됩니다.

 

 

일단. 체크하고 생성하고 변경된 정책에 대한 확인을 해보자

못보던 보안 그룹이 생성됬다. (ec2-rds-2) 이거말고도 비슷하게 디비 포트에 대한 방화벽 오픈을 해주었는데...

무튼 이렇게 하면 ec2와 rds가 서로 통신할 수있도록 방화벽이 오픈 된 것이다.

 

 

우선 DBMS로 정상 접속 확인하고

Jpa에 대한 설정을 넣고, 통신이 되어서 디비쪽에 테이블이 생성이 잘 되었는지 확인해보자

 

 

1. DBMS 에서 접속

위 대로 했으면 당연히 DBMS로 RDS 접속이 불가할 것이다.

 

왜냐면, 신경써줘야 하는것이 3개가 있기 때문이다.

 

1. 퍼블릭 엑세스 허용

 

2. VPC 보안 

RDS 상세 정보에, 연결& 보안 영역 > VPC 보안 그룹 상세로 들어간다.

보안그룹에 들어가면, rds-ec2 서로 연결되어 이미 인바운드규칙에 ec2가 되어있는 것도있다.

무튼, 이 인바운드 규칙에 0.0.0.0/0를 추가해서 접근 가능하도록해준다.

 

3. 서브넷 추가

RDS 의 인터넷 서브넷은 외부에서 접근이 불가한 내부 인터넷이다.

 

VPC > 라우팅 테이블 > 라우팅 목록 중 0.0.0.0이 있는 대상이 있다.

(이게 외부에서 접근 가능할수 있도록하는 인터넷 라우팅 설정이다)

라우팅서브넷 연결에 RDS관련 서브넷을 추가해준다.

 

쉽게 얘기하면, VPC > 라우팅 테이블 > 기존에 있는 라우팅 테이블 상세 > 서브넷 연결 > RDS관련 서브넷 추가

이렇게 하면 RDS접근이 가능하다.

 

 

 

 

2. JPA 간단 설정

 

build.gradle 추가

implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'mysql:mysql-connector-java:8.0.30'

 

application.yml 설정

##스웨거, 여러패키지로 인해 오류발생
spring:
  mvc:
    pathmatch:
      matching-strategy: ant-path-matcher
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://[엔드포인트]:3306/inna?serverTimezone=UTC&characterEncoding=UTF-8
    username: [아이디]
    password: [비번]
  jpa:
    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
    open-in-view: false
    show-sql: true
    hibernate:
      ddl-auto: create
  output:
    ansi:
      enabled: always
  jackson:
    serialization:
      FAIL_ON_EMPTY_BEANS: false
#logging:
#  level:
#    '[org.hibernate.type]': trace
#    '[org.hibernate.sql]': debug
upload:
  #path: /Users/ysj/Desktop/workspace/files/
  path: /home/ubuntu/post/

 

 

도커 빌드해서, 한번 서버에서 run 시켜보자

 

정상적으로 빌드되어 서버가 기동되는 것을 볼 수 있다.

쉽게 얘기하면, ec2 - rds - local 연동이 다 잘 된것이다!!

반응형