일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 스프링부트공부
- 기술공부
- 카프카
- JPA예제
- 스프링
- nestjs
- nestjs공부
- nestjs스터디
- 자료구조공부
- Axon framework
- 기술면접공부
- 스프링 공부
- JPA 공부
- querydsl
- JPA
- 코테준비
- K8S
- 플러터 개발
- 알고리즘공부
- 스프링공부
- Flutter
- 스프링부트
- 자바공부
- DDD
- 플러터 공부
- Kafka
- JPA공부
- JPA스터디
- 코테공부
- 프로그래머스
- Today
- Total
DevBoi
[AWS] EC2에 RDS 세팅하기 본문
데이터베이스 생성은 생각보다 쉽다.
아래 사항만 기억하면된다.
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 연동이 다 잘 된것이다!!
'Infra > [AWS]' 카테고리의 다른 글
[AWS] S3 구성 (0) | 2023.06.08 |
---|---|
[AWS] Multiplatform Docker image를 빌드하는 법 (0) | 2023.05.28 |
[AWS] EC2환경에 테스트 앱 배포하기 (0) | 2023.05.25 |
[AWS] 방화벽 open 및 도커 포트 바인딩 (0) | 2023.05.25 |
[AWS] Docker image 생성 및 배포 (0) | 2023.05.25 |