Amazon RDS (Relational database service)는 말 그대로 AWS에서 제공하는 관계형 데이터베이스 서비스로 완전 관리형으로 제공된다. 실제로 데이터베이스를 사용하기 위해서는 실행될 서버, 스토리지 구성뿐만 아니라를 DB를 설치하고, 운영하기 위한 업데이트도 필요하다. Amazon RDS는 이를 모두 내부적으로 처리하여 완전 관리형으로 제공한다. 그만큼 가격도 비싼데, 그 값을 하는지 한 번 알아보자.
RDS는 다음과 같은 기능들을 제공하고 있다.
Amazon RDS는 EC2 + EBS (Storage)로 구성되어 데이터베이스를 형태로 제공되는 PaaS 서비스이다. EC2의 컴퓨팅으로 운영체제와 데이터베이스를 실행하고, 데이터 저장을 위한 스토리지로 EBS를 사용한다. 때문에 우리는 연결된 스토리지의 용량을 원하는 대로 늘릴 수 있고, Auto scaling을 활성화하여 자동으로 확장하도록 구성할 수 있다.
일반적으로 데이터베이스는 쓰기 작업보다 읽기 작업이 훨씬 많다. 거기다 애플리케이션 동작 외에도 데이터 분석 등을 위해 DB 읽기 작업이 추가될 수 있다. 많은 읽기 작업으로 부하가 커질 수 있는데, RDS는 읽기 복제본(Read replicas)을 제공하여 작업 부하를 줄일 수 있다.
데이터가 비동기식으로 복제
다른 가용 영역(AZ), 다른 리전(Region)에도 생성 가능
Read replicas를 DB로 전환 가능
최대 5개 생성 가능
Read replica가 다른 AZ에 있어도 데이터 전송에 따른 네트워크 비용이 발생하지 않는다.
하지만 다른 리전에 있다면 데이터 전송 비용이 발생한다.
Multi-AZ는 데이터가 동기식으로 복제되며, 주로 재해복구를 위한 대비책으로 사용한다. 단일 DB 인스턴스도 언제든 무중단으로 Multi-AZ 전환이 가능하다.
단일 DB 인스턴스로 구성하고 Read replica를 직접 추가해 보자.
원하는 사양과 스토리지 Auto scaling을 사용 여부를 선택하면 된다.
RDS를 생성하려면 VPC와 DB 서브넷 그룹을 선택해야 한다.
VPC, 서브넷에 대해 잘 모르겠다면 AWS 네트워크 (VPC, Subnet, ...)를 참고하자
RDS를 생성하려면 DB 서브넷 그룹은 최소 2개 이상의 AZ를 포함해야 한다. (언제든지 Multi-AZ로 전환할 수 있도록 구성하기 위한 조건으로 보인다.)
DB 인스턴스가 생성될 AZ도 선택해준다.
보안 그룹을 새로 생성하고 이후에 필요한 허용 규칙을 추가해 주자.
RDS는 암호만을 사용한 인증뿐만 아니라 IAM 인증을 함께 사용할 수 있다.
DB 생성이 완료되면 엔드 포인트가 나타난다. 이 주소를 통해 RDS DB에 접속할 수 있다.