1. DB 생성
RDS 탭에 들어가 데이터베이스를 생성해준다.
프리티어를 사용할 예정이므로 과금 조건은 과감하게 해제한다!!
RDS 확장 지원 활성화에 체크 해제 해야 한다 (과금 사항!!)
마스터 사용자 이름, 마스터 암호는 SpringBoot yml에서 DB Connection 설정과 Local 에서 Test 할때 필요하다.
스토리지 부분의 할당된 스토리지는 프리티어에서는 20 GB 가 제공된다.
스토리지 자동 조정 기능은 과금 사항이므로 체크 해제해야 한다!!!
- 퍼블릭 엑세스 : '예' 선택 시 VPC 외부에서도 해당 RDS에 접근이 가능, 같은 VPC의 EC2에서만 접근할 경우 '아니오' 선택
* 만약 아니요를 선택한다면 퍼블릭IP가 할당되지않아, 외부에서 접근이 불가능하다.
- 보안그룹은 EC2에 적용하기 위한 보안그룹이 있다면 적용해준다. 나중에 인바운드 규칙을 수정해주면 되기 때문!
보안 그룹을 생성해주지 못했다면 이 구간에서 생성해줘도 좋다. 보안그룹을 Custom해서 EC2, Local 연결하면 된다.
DB에 암호로 접근할 것이기 때문에 위 조건으로 체크한다.
프리티어가 가능한 선에서 모니터링 옵션을 설정해줘도 무방하다.
- 초기 데이터베이스 이름은, DB를 해당 이름 으로 만들어주는것이다. (필자는 기존 프로젝트에서 사용하던 DB명 기입)
- 백업 : 자동백업을 해제해 줘야한다, 사이드 프로젝트용, 연습용이라면 백업이 필요가 없기도 하고, 활성화가 되어있으면, 스냅샷을 생성하는 과정에서 DB 메모리를 많이 사용하기 때문이다. (과금된다는 얘기도 있다.)
2. 보안 그룹 설정.
위 과정에서 미리 생성해둔 보안 그룹을 설정해주지 않았다면 참고하길!!
DB를 생성하면 다음과 같이 보안 그룹 규칙이 default에만 적용되어있었을 것이다.
아래의 보안 그룹규칙에는 2개만 나올것이다. 맨위의 인바운드 규칙은 Local IP를 자동으로 설정 해준것이다.
EC2 인바운드 보안그룹을 클릭하여 추가 설정을 해주도록 하자.
RDS 보안 설정
EC2에서 postgres에 연결할 RDS의 5432 포트 개방 설정 진행
생성한 DB 선택 화면
생성된 DB 인스턴스 화면에서 VPC보안 그룹 클릭
RDS 인스턴스의 인바운드 규칙 탭
인바운드 규칙 편집 클릭
3. 접속 URL 확인
RDS의 연결 및 보안 부분의 엔드포인트와 포트넘버를 확인하고 Spring Boot의 application.properties나 yml에 적용해둔다.
ex) jdbc:postgresql://엔드포인트:[port]
4. 파라미터 그룹 설정
RDS의 파라미터 그룹 탭에서 파라미터 그룹을 생성해준다.
생성한 파라미터 그룹에서 rds.force_ssl 의 값을 0으로 바꿔줘야 한다.
편집 탭에서 해당 파라미터 검색 후 0으로 수정해준다!
5. RDS 수정 -> 파라미터 그룹 설정 및 재부팅.
RDS를 수정한 뒤 작업 -> 재부팅을 통해 재부팅 해준다.
4. EC2에 RDS 적용하기
EC2에 Java 17과 Postgresql을 설치한다
$ sudo apt-get install openjdk-17-jdk
$ java --version // java 버전 확인
$ sudo apt-get install postgresql
$ psql --verison // Postgresql 버전 확인
5. EC2에서 RDS 접속하여 DB 생성
1. EC2에서 postgres 계정으로 변경
$ sudo -i -u postgres
2. postgres 계정으로 RDS Postgres 접속
$ psql --host=<db endpoint> --port=<port> --dbname=<db식별자> --username=<마스터네임>
Password for user fbrjs: <password>
만약, rds 생성 과정에서 초기 데이터베이스 이름을 지정해주지 않았다면 다음 과정 필요!
$ psql --host=<db endpoint> --port=<port> --username=<마스터네임>
Password for user fbrjs: <password>
postgres=> create database <database name>;
참고
https://lucas-owner.tistory.com/45
[AWS] RDS 생성 - (EC2 연결, SpringBoot 배포)(2)
목표 - 지난번에 배포했던 AWS EC2와 RDS 생성/연결 하는것을 진행 해보자. DB는 MySQL 5.7.34 버전을 사용할 예정이다. 마찬가지로 프리티어(무료)를 사용할 예정이고, EC2 연결 및 Local 에서 연결 Test 까
lucas-owner.tistory.com
https://kanoos-stu.tistory.com/62
[JMeter] 10분만에 EC2에 Spring Boot 프로젝트 배포 및 RDS(Postgres) 연결 정리
스프링 부트를 사용한 예제 애플리케이션을 AWS를 통해 모노리식에서 MSA로 MSA에서 다시 컨테이너 오케스트레이션으로 개선해나가는 과정을 모두 담은 강의를 출시하게 되었습니다.강의 과
kanoos-stu.tistory.com
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/PostgreSQL.Concepts.General.SSL.html
PostgreSQL DB 인스턴스와 함께 SSL 사용 - Amazon Relational Database Service
PostgreSQL DB 인스턴스와 함께 SSL 사용 Amazon RDS는 PostgreSQL DB 인스턴스를 위한 SSL 암호화를 지원합니다. SSL을 사용하여 애플리케이션과 PostgreSQL DB 인스턴스 사이의 PostgreSQL 연결을 암호화할 수 있습
docs.aws.amazon.com
'Infra & Cloud > AWS' 카테고리의 다른 글
[AWS] AWS RDS vs AWS Aurora 비교 분석 (2) | 2024.11.20 |
---|---|
[AWS] EC2 환경에서 Redis 구축하기 (0) | 2024.07.25 |
[AWS] EC2에 MySQL 적용 및 사용하기 (0) | 2024.06.15 |
[AWS] S3 이미지 업로드 및 EC2 연결하기 (0) | 2024.06.13 |
[AWS] EC2에서 https 프로토콜 적용하기 (0) | 2024.05.25 |