https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/Welcome.html
Amazon RDS (Relational Database Service)는 Amazon Web Services에서 제공하는 완전 관리형 관계형 데이터베이스 서비스이며 클라우드에서 관계형 데이터베이스를 더 쉽고 효율적으로 설정, 운영 및 확장할 수 있다.
* Amazon RDS 주요 특징
- 지원하는 데이터베이스 엔진
- Amazon RDS는 다양한 인기 있는 데이터베이스 엔진을 지원
Amazon Aurora (MySQL 및 PostgreSQL 호환), MySQL, PostgreSQL, MariaDB, Oracle, Microsoft SQL Server
* Amazon RDS는 다음과 같은 데이터베이스 관리 작업을 자동화한다
- 자동 백업 : RDS는 데이터베이스와 트랜잭션 로그를 자동으로 백업하며, 지정된 보존 기간 동안 복원이 가능함.
- 자동 패치 및 유지관리 : RDS는 데이터베이스 소프트웨어를 최신 상태로 유지하도록 자동으로 패치를 적용함.
- 고가용성 (Multi-AZ 배포) : Multi-AZ 배포를 통해 가용성과 내구성을 강화하며, 장애 발생 시 자동으로 백업 인스턴스로 전환함.
- 성능 모니터링 및 확장 : 성능 지표를 실시간으로 모니터링하고 필요에 따라 수직 또는 수평 확장이 가능함.
- 보안 기능 : VPC (Virtual Private Cloud) 내에서 데이터베이스를 실행하고, 데이터 암호화 및 접근 제어를 통해 보안을 강화함.
😎 RDS 인스턴스 실습 ( RDS 생성 및 사용 )-----------------------------------
'DB 인스턴스 식별자'와 '마스터 사용자 이름'은 AWS RDS에서 데이터베이스를 생성하고 관리할 때 기본적으로 필요한 필수 항목이다. DB 인스턴스 식별자는 인스턴스를 구분하는 고유 이름이고, 마스터 사용자 이름은 관리 권한을 갖는 계정이다.
* DB 인스턴스 식별자
정의: AWS RDS에서 데이터베이스(DB) 인스턴스를 고유하게 식별하기 위해 사용하는 이름이다.
목적: 식별자는 AWS 계정 내에 있는 모든 DB 인스턴스에서 유일해야 여러 인스턴스를 사용할 때 각각의 인스턴스를 구분할 수 있다.
예: my-maria, testdb01 ...
* 마스터 사용자 이름 (중요 : 까먹으면 안돼~~~)
정의: DB 인스턴스를 생성할 때 설정하는 관리자 계정의 사용자 이름이다. 이 계정은 데이터베이스에 대한 접근 권한을 제어하고 주요 관리 작업을 수행할 수 있다.
목적: 데이터베이스에 접속할 수 있는 최고 권한을 가진 사용자 계정이다. 데이터베이스에 로그인한 후 스키마 생성, 사용자 계정 추가 등 관리 작업을 수행한다. 예: admin, root, masteruser, mymaria ...
* 버스터블 클래스 : Amazon RDS 인스턴스 타입 중 하나인 T 클래스 인스턴스를 의미함. 일시적인 성능이 필요한 개발 및 테스트용, 간헐적으로 트래픽이 발생하는 소규모 애플리케이션, 웹 애플리케이션에 적합
EC2 컴퓨팅 리소스에 연결 안 함: DB를 독립적으로 설정하고 나중에 수동으로 연결.
EC2 컴퓨팅 리소스에 연결: 설정 시 EC2와 데이터베이스의 연결을 자동으로 구성
VPC는 AWS에서 제공하는 사용자 전용 가상 네트워크이며 클라우드 상에서 네트워크를 설계, 관리하고 퍼블릭 및 프라이빗 네트워크를 설정할 수 있다. 보안 그룹과 네트워크 ACL(Network Access Control List, 네트워크 트래픽의 입력 및 출력을 제어) 등 다양한 보안 기능을 통해 안전한 네트워크 환경을 구축할 수 있다.
이제 데이터베이스를 생성하게 된다.
* 윈도우 Mariadb 클라이언트 창에서 원격으로 접속하기
> mariadb -h 엔드포인트 -u마스터사용자이름 -p
> mariadb -hmaria-database-1.cnqagewi8bb8.ap-northeast-2.rds.amazonaws.com -umymaria –p
ERROR 2026 (HY000): TLS/SSL error: Server certificate validation failed.가 발생하면
AWS RDS 인증서 다운로드 : AWS RDS는 신뢰할 수 있는 CA (Certificate Authority)를 통해 인증서를 발급한다. 최신 인증서를 사용해야 하므로 AWS에서 RDS 인증서를 다운로드한다.
RDS 인증서 번들 다운로드 : https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem
* Springboot project와 연결 - application.properties에 아래 내용으로 적어 준다.
#mariadb server connect
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://maria-database-1.cnqagewi8bb8.ap-northeast-2.rds.amazonaws.com:3306/test?useSSL=true&trustServerCertificate=false&serverSslCert=C:\\work\\global-bundle.pem
spring.datasource.username=mymaria
spring.datasource.password=korea1234
* 추가 적으로 RDS를 EC2와 연결한다면 …
EC2와 RDS를 연결하면:
- 네트워크 접근이 설정되어 애플리케이션에서 데이터베이스를 사용할 수 있다.
- 보안 그룹 설정이 자동으로 조정되므로 추가 설정이 줄어든다.
- VPC 내에서 빠르고 안전하게 통신할 수 있다.
- 이를 통해 EC2 인스턴스는 애플리케이션 서버 역할을, RDS는 데이터베이스 역할을 수행하며 클라우드 애플리케이션 환경이 완성된다.