Amazon RDS ( Relational Database Service )
。AWS에서 RDBMS를 EC2 인스턴스 상에서 설치하여 제공하는 PaaS 서비스로서 어플리케이션에 활용하도록 자동화된 빠른 성능, 고가용성, 암호화, 확장, 자동백업을 제공
▶ EC2에서 DB를 설치하는 방식에 비해 DB 관련 설정을 자동으로 제공
。클라우드 환경에서 RDBMS를 쉽게 설정 / 운영 / 확장 할 수 있는 서비스.
▶ MySQL, PostgreSQL 등 여러 DB 엔진을 지원
。사용자는 RDS로 직접 로그인이 불가능하므로 DB SW 패치, 관리 등은 AWS의 역할임.
▶ EC2에서 DB를 설치하는 방식과 가장 큰 차이
。Public IPv4를 부여하지 않는 경우 외부에서 접근이 불가능하므로 Public IPv4를 부여하여 인터넷에서 DNS를 통해 접근가능.
。DB 자동 백업 / DB Snapshot / 자동 SW 버전 패치 / 다중 AZ 배포 등을 지원
。서브넷과 보안그룹을 지정하여 프로비전을 해야한다
。RDS의 중지는 가능하지만 약 7일 후에 자동으로 재 시작.
RDS는 EC2 인스턴스를 기반
。 EC2 인스턴스를 활용하므로 Serverless가 아니며 VPC내에서 DB 서버로서 구동
▶ EC2 인스턴스 기반으로 Instance Family 등도 지정하여 프로비전 할 필요가 존재.
。저장공간은 EBS를 활용하므로EBS type을 지정해야한다.
。스냅샷을 생성하여 RDS의 백업이 가능
RDS는 Private Subnet 내부에 위치하도록 설정
。외부로부터 접근은 차단 및 동일 VPC 내부의 어플리케이션 서버 역할의 EC2에서만 접근하도록 설정
RDS의 아키텍처

。VPC 내에서 주 용도로 사용할 Primary RDS와 읽기전용 용도의 StandBy RDS를 각각의 AZ에 구성
▶ Primary RDS에 문제가 발생하는 경우 Multi AZ을 통해 DNS를 StandBy RDS로 변경
。개발자에 의한 Standby RDS는 접근이 불가능
RDS Multi AZ
。2개 이상의 AZ에 걸쳐서 각각 RDS를 구축 및 Primary RDS와 별개의 StandBy RDS를 자동으로 동기화
▶ RDS의 안정성을 향상시키기 위한 용도

▶ Primary RDS에 장애 발생 시 자동으로 Standby RDS로 DNS를 변경
읽기 전용 복제본
。해당 RDS DB의 읽기 전용 복제본( = StandBy RDS )을 생성하여 쓰기 작업은 Primary RDS에서 수행하고 읽기 작업은 StandBy RDS에서 수행하도록 부하
▶ RDS 성능을 향상시키기 위한 용도 DB 읽기/쓰기 분리

。Primary RDS에 장애 발생 시 StandBy RDS으로 수동으로 DNS를 전환해야하는 단점이 존재.
▶ 해당 안정성 목적으로 사용 시 RDS Multi AZ 사용
RDS Multi Region
。다른 Region에 비동기 복제를 통해 통해 지속적으로 동기화하는 DB 클러스터 생성
▶ 주로 국가 간 서비스를 수행하는 경우 해당 국가에서의 Latency를 감소시키는 용도로 해당 국가의 Region에 동일한 DB 클러스터를 생성하여 감소
DB Subnet Group
。RDS가 프로비전되는 서브넷을 묶은 그룹
。외부에서 접근을 허용하기 위해서 Public Subnet으로 구성해야한다.
▶ 단 실무에서는 보안적인 이유로 Private Subnet을 사용
。고가용성의 이유로 최소 2개 이상의 동일 Region의 Subnet을 필요로한다.
Parameter Group
。RDS를 환경 ( = dev, prod, ... ) 에 따라서 정의된 DB의 Parameter 설정으로 설정하는 용도
▶ 동일한 DB Parameter 설정을 가지는 여러 RDS를 쉽게 가질 수 있다

RDS의 인증방법
유저/패스워드 방식
IAM을 통한 DB 인증 방식
。DB를 IAM User의 자격증명 / 역할을 통해 관리가능
RDS에서 제공하는 DB 엔진
。MS SQL Server
。Oracle / Oracle OLAP
▶ 위 DB들은 오픈소스가 아니므로 추가로 라이선스 비용을 부과
。MySQL Server
。PostgreSQL
。MariaDB
。IBM DB2
。Amazon Aurora
▶ Amazon Aurora는 MySQL과 PostgreSQL과 호환되므로 Amazon Aurora를 사용하는걸 권고
Amazon Aurora
。AWS에서 클라우드 환경에서 가장 효율적으로 사용할 수 있도록 구축한 Serverless DB Engine
▶ RDS와 달리 EC2 인스턴스등을 기반으로하는 서버를 필요로하지 않는다.
。Amazon Aurora는 MySQL과 PostgreSQL과 호환되므로 Amazon Aurora를 사용하는걸 권고