아마존 관계형 데이터베이스 서비스
1. 개요
아마존 관계형 데이터베이스 서비스(Amazon RDS)는 아마존 웹 서비스(AWS)에서 제공하는 관리형 관계형 데이터베이스 서비스이다. 2009년 MySQL 지원을 시작으로, Oracle, Microsoft SQL Server, PostgreSQL, MariaDB 등 다양한 데이터베이스 엔진을 지원한다. 주요 기능으로는 Multi-AZ 배포를 통한 고가용성 지원, 읽기 복제본을 통한 읽기 성능 향상, 성능 지표 및 모니터링, 자동 백업 기능, 그리고 종량제 방식의 요금 체계 등이 있다. Amazon RDS는 범용, 메모리 최적화, 이전 세대 등 다양한 데이터베이스 인스턴스 유형을 제공하며, Oracle Cloud, Microsoft Azure SQL, Google Cloud SQL 등과 경쟁 관계에 있다.
| name: Amazon Relational Database Service | |
| 개발사 | Amazon.com |
|---|---|
| 출시일 | 2009년 10월 26일 |
| 운영 체제 | 크로스 플랫폼 |
| 언어 | 한국어 |
| 장르 | 관계형 데이터베이스 SaaS |
| 라이선스 | 독점 소프트웨어 |
| 웹사이트 | Amazon Relational Database Service 공식 웹사이트 |
-
클라우드 데이터베이스 -
아마존 레드시프트
-
클라우드 데이터베이스 -
아마존 오로라
아마존 오로라는 아마존 웹 서비스에서 제공하는 관계형 데이터베이스로, MySQL 및 PostgreSQL 호환성을 제공하며 자동 스토리지 확장, 데이터 복제, 빠른 데이터베이스 복제 기능을 갖춘 클라우드 환경에 최적화된 시스템이다. -
아마존 웹 서비스 -
아마존 알렉사
아마존 알렉사는 아마존이 개발한 인공지능 음성 비서로, 스마트홈 기기 제어, 음악 스트리밍, 정보 검색 등의 기능을 제공하지만 개인 정보 보호 논란도 있으며, 아마존은 기능 확장과 수익성 개선을 위해 노력 중이다. -
아마존 웹 서비스 -
아마존 레드시프트
2. 역사
2009년 10월 26일, 아마존은 MySQL 데이터베이스를 지원하는 아마존 RDS를 처음 출시했다. 2011년 6월에는 Oracle Database 지원이 추가되었고, 2012년 5월에는 Microsoft SQL Server 지원, 2013년 11월에는 PostgreSQL 지원, 2015년 10월에는 MariaDB(MySQL의 포크) 지원이 추가되었다.
2014년 11월, AWS는 향상된 고가용성과 성능을 제공하는 MySQL 호환 데이터베이스인 Amazon Aurora를 발표했고, 2017년 10월에는 PostgreSQL 호환 데이터베이스를 출시했다.
2019년 3월, AWS는 RDS에서 PostgreSQL 11 지원을 발표했다.
3. 기능
AWS 관리 콘솔 또는 Amazon RDS API를 사용하여 새로운 데이터베이스 인스턴스를 시작할 수 있다. Amazon RDS는 다양한 사용 사례를 지원하기 위해 여러 기능을 제공한다. 주요 기능은 다음과 같다.
* 자동 백업: Amazon RDS는 RDS DB 인스턴스의 자동 백업을 생성하고 저장한다. DB 인스턴스의 첫 번째 스냅샷은 전체 DB 인스턴스의 데이터를 포함하며, 이후 스냅샷은 증분 백업 방식이다. 최대 보존 기간은 35일이다.
* 운영: 데이터베이스 인스턴스는 AWS Management Console, Amazon RDS API, AWS CLI를 사용하여 관리할 수 있다. 2018년부터 RDS 인스턴스를 실수로 삭제하는 것을 방지할 수 있다. DB 공간 증가는 지원되지만 할당된 공간 감소는 지원되지 않는다.
3.1. Multi-Availability Zone (AZ) 배포
아마존은 2010년 5월 Multi-AZ(다중 가용 영역) 배포 지원을 발표했다. 아마존 RDS Multi-AZ를 사용하면 사용자는 데이터베이스 엔진에 따라 동기식 물리적 또는 논리적 "대기" 복제본을 다른 가용 영역(물리적으로 분리된 위치의 독립적인 인프라)에서 자동으로 프로비저닝하고 유지 관리할 수 있다. Multi-AZ 데이터베이스 인스턴스는 생성 시 개발하거나 나중에 Multi-AZ 배포로 실행하도록 수정할 수 있다. Multi-AZ 배포는 MySQL, MariaDB, Oracle, PostgreSQL 및 SQL Server 인스턴스에 대해 향상된 가용성 및 데이터 내구성을 제공하는 것을 목표로 하며 운영 환경을 대상으로 한다. 계획된 데이터베이스 유지 관리 또는 계획되지 않은 서비스 중단의 경우 아마존 RDS는 자동으로 최신 대기 상태로 장애 조치하여 관리자 개입 없이 데이터베이스 작업을 재개할 수 있다.
Multi-AZ RDS 인스턴스는 선택 사항이며 비용이 부과된다. RDS 인스턴스를 생성할 때 사용자는 Multi-AZ RDS 인스턴스를 사용할지 묻는 질문을 받는다. Multi-AZ RDS 배포에서는 백업이 대기 인스턴스에서 수행되므로 I/O 활동이 일시 중단되지 않지만 사용자는 백업 중 몇 분 동안 지연 시간이 증가할 수 있다.
3.2. 읽기 복제본 (Read Replicas)
읽기 복제본은 읽기 위주의 데이터베이스 작업 부하를 위해 확장하는 등 다양한 사용 사례를 허용한다. MySQL, MariaDB 및 PostgreSQL에 대해 최대 5개의 복제본을 사용할 수 있다. 인스턴스는 각 데이터베이스 엔진의 기본 비동기 데이터베이스 복제 기능을 사용한다. 기본적으로 백업이 구성되어 있지 않으며, 읽기 확장에 접근하고 사용할 수 있다. MySQL 및 MariaDB 읽기 복제본은 2012년 10월부터 다시 쓰기가 가능하게 되었다. PostgreSQL 읽기 복제본은 이를 지원하지 않는다. 복제본은 데이터베이스 인스턴스 수준에서 수행되며 데이터베이스 또는 테이블 수준의 복제를 지원하지 않는다. MySQL, MariaDB 및 PostgreSQL 인스턴스의 [https://aws.amazon.com/ko/rds/features/read-replicas/ 읽기 레플리카]는 각 데이터베이스 엔진 기본 제공의 비동기 복제 기능을 사용한다.
3.3. 성능 지표 및 모니터링
아마존 RDS의 성능 지표는 AWS Management Console 또는 아마존 클라우드워치 API에서 확인할 수 있다. 2015년 12월, 아마존은 MySQL, MariaDB, Aurora 데이터베이스 엔진에 대한 확장된 지표 세트를 제공하는 선택적 향상된 모니터링 기능을 발표했다.
3.4. RDS 요금
Amazon RDS는 사용한 만큼 비용을 지불하는 종량제 방식이다. RDS는 시간 단위로 요금이 부과되며, 온디맨드 DB 인스턴스와 예약형 DB 인스턴스 두 가지 옵션으로 제공된다. 온디맨드 인스턴스는 지속적인 시간당 사용 요율이 적용된다. 예약형 RDS 인스턴스는 1년 및 3년 기간으로 제공되며, 선결제 없음, 부분 선결제 및 전체 선결제 옵션이 있다. 현재 AWS는 "선결제 없음" 지불 옵션이 있는 3년 예약은 제공하지 않는다.
RDS 인스턴스 실행에 대한 시간당 비용 외에도 사용자는 프로비저닝된 스토리지의 양, 데이터 전송 및 수행된 입출력 작업에 대해 요금이 부과된다. AWS는 프로비저닝된 IOPS(Input and Output Operations per second, 초당 입출력 작업)를 도입하여 사용자가 애플리케이션에서 초당 필요한 IO 수를 정의할 수 있도록 했다. IOPS는 RDS 인스턴스 실행의 총 비용에 상당한 영향을 미칠 수 있다.
아마존 RDS는 오로라 서버리스(Aurora Serverless) 옵션도 제공한다. 서버리스 가격 단위는 ACU 시간당 달러이다. ACU는 '오로라 용량 한도'(Aurora Capacity Limit)를 나타낸다. 이 옵션은 워크로드를 대폭 확장해야 하는 고객을 위해 설계되었다.
AWS 프리 티어(Free Tier)의 일환으로 아마존 RDS 프리 티어를 통해 새로운 AWS 고객은 클라우드에서 관리형 데이터베이스 서비스를 무료로 시작할 수 있다. 아마존 RDS 프리 티어를 사용하여 새로운 애플리케이션을 개발하거나, 기존 애플리케이션을 테스트하거나, 아마존 RDS에 대한 실무 경험을 얻을 수 있다.
3.5. 자동 백업
Amazon RDS는 RDS DB 인스턴스의 자동 백업을 생성하고 저장한다. DB 인스턴스의 첫 번째 스냅샷은 전체 DB 인스턴스의 데이터를 포함하며, 이후 스냅샷은 증분 백업 방식이다. 최대 보존 기간은 35일이다. 다중 AZ RDS 배포에서 백업은 대기 인스턴스에서 수행되므로 I/O 활동이 일시 중단되지 않지만, 백업 중 몇 분 동안 지연 시간이 증가할 수 있다.
3.6. 운영
데이터베이스 인스턴스는 AWS Management Console, Amazon RDS API, AWS CLI를 사용하여 관리할 수 있다. 2018년부터 RDS 인스턴스를 실수로 삭제하는 것을 방지할 수 있다. DB 공간 증가는 지원되지만 할당된 공간 감소는 지원되지 않는다.
4. 데이터베이스 인스턴스 유형
아마존 RDS는 다양한 워크로드를 지원하기 위해 여러 유형의 DB 인스턴스를 제공한다. 2017년 12월에는 36개의 DB 인스턴스 유형을 지원했으며, 그 중 27개는 최신 세대였다. 2020년 8월에는 82개의 DB 인스턴스 유형을 지원한다.
인스턴스 유형은 크게 범용, 메모리 최적화, 이전 세대로 나뉜다.
* 범용 인스턴스: 컴퓨팅, 메모리, 네트워크 리소스가 균형 있게 제공된다.
* 메모리 최적화 인스턴스: 메모리 집약적인 애플리케이션에 적합하다.
* 이전 세대 인스턴스: 기존 애플리케이션과의 호환성을 위해 제공되지만, 신규 워크로드에는 권장되지 않는다.
4.1. 범용 인스턴스
범용 인스턴스는 컴퓨팅, 메모리, 네트워크 리소스가 균형 있게 제공되는 인스턴스 유형이다. t2, t3, m4, m5, m6g 등 다양한 세대의 인스턴스가 제공된다.
| 인스턴스 유형 | 메모리 | EBS 최적화 / 처리량 | 코어 | 네트워크 성능 |
|---|---|---|---|---|
| db.t2.micro | 1 GB | N/A | 1 코어 | 낮음 ~ 보통 |
| db.t2.small | 2 GB | N/A | 1 코어 | 낮음 ~ 보통 |
| db.t2.medium | 4 GB | N/A | 2 코어 | 낮음 ~ 보통 |
| db.t2.large | 8 GB | N/A | 2 코어 | 보통 |
| db.t2.xlarge | 16 GB | N/A | 4 코어 | 보통 |
| db.t2.2xlarge | 32 GB | N/A | 8 코어 | 높음 |
| db.t3.micro | 1 GB | N/A | 2 코어 | 최대 5 Gbps |
| db.t3.small | 2 GB | N/A | 2 코어 | 최대 5 Gbps |
| db.t3.medium | 4 GB | N/A | 2 코어 | 최대 5 Gbps |
| db.t3.large | 8 GB | N/A | 2 코어 | 최대 5 Gbps |
| db.t3.xlarge | 16 GB | N/A | 4 코어 | 최대 5 Gbps |
| db.t3.2xlarge | 32 GB | N/A | 8 코어 | 최대 5 Gbps |
| db.m4.large | 8 GB | 450 Mbit/s | 2 코어 | 보통 |
| db.m4.xlarge | 16 GB | 750 Mbit/s | 4 코어 | 높음 |
| db.m4.2xlarge | 32 GB | 1000 Mbit/s | 8 코어 | 높음 |
| db.m4.4xlarge | 64 GB | 2000 Mbit/s | 16 코어 | 높음 |
| db.m4.10xlarge | 160 GB | 4000 Mbit/s | 40 코어 | 10 기가비트 |
| db.m4.16xlarge | 256 GB | 10000 Mbit/s | 64 코어 | 25 기가비트 |
| db.m5.large | 8 GB | 최대 3500 Mbit/s | 2 코어 | 최대 10 Gbps |
| db.m5.xlarge | 16 GB | 최대 3500 Mbit/s | 4 코어 | 최대 10 Gbps |
| db.m5.2xlarge | 32 GB | 최대 3500 Mbit/s | 8 코어 | 최대 10 Gbps |
| db.m5.4xlarge | 64 GB | 3500 Mbit/s | 16 코어 | 최대 10 Gbps |
| db.m5.12xlarge | 192 GB | 7000 Mbit/s | 48 코어 | 10 기가비트 |
| db.m5.24xlarge | 384 GB | 14000 Mbit/s | 96 코어 | 25 기가비트 |
| db.m6g.large | 8 GB | 최대 4750 Mbit/s | 2 코어 | 최대 10 Gbps |
| db.m6g.xlarge | 16 GB | 최대 4750 Mbit/s | 4 코어 | 최대 10 Gbps |
| db.m6g.2xlarge | 32 GB | 최대 4750 Mbit/s | 8 코어 | 최대 10 Gbps |
| db.m6g.4xlarge | 64 GB | 4750 Mbit/s | 16 코어 | 최대 10 Gbps |
| db.m6g.8xlarge | 128 GB | 9000 Mbit/s | 32 코어 | 12 Gbps |
| db.m6g.12xlarge | 192 GB | 13500 Mbit/s | 48 코어 | 20 Gbps |
| db.m6g.16xlarge | 256 GB | 19000 Mbit/s | 64 코어 | 25 Gbps |
4.2. 메모리 최적화 인스턴스
메모리 최적화 인스턴스는 메모리 집약적인 애플리케이션에 적합한 인스턴스 유형이다. 2017년 12월 기준으로 r3, r4 세대의 인스턴스 유형을 지원한다.
| 인스턴스 유형 | 메모리 | EBS 최적화 / 스루풋 | 코어 | 네트워크 성능 |
|---|---|---|---|---|
| db.r3.large | 15.25 GB | N/A | 2 코어 | Moderate |
| db.r3.xlarge | 30.5 GB | N/A | 4 코어 | Moderate |
| db.r3.2xlarge | 61 GB | N/A | 8 코어 | High |
| db.r3.4xlarge | 122 GB | N/A | 16 코어 | High |
| db.r3.8xlarge | 244 GB | N/A | 32 코어 | 10 Gigabit |
| db.r4.large | 15.25 GB | 437 Mbit/s | 2 코어 | 최대 10 Gbps |
| db.r4.xlarge | 30.5 GB | 875 Mbit/s | 4 코어 | 최대 10 Gbps |
| db.r4.2xlarge | 61 GB | 1750 Mbit/s | 8 코어 | 최대 10 Gbps |
| db.r4.4xlarge | 122 GB | 3500 Mbit/s | 16 코어 | 최대 10 Gbps |
| db.r4.8xlarge | 244 GB | 7000 Mbit/s | 32 코어 | 10 Gbps |
| db.r4.16xlarge | 488 GB | 14000 Mbit/s | 64 코어 | 25 Gbps |
2016년 7월에는 메모리 최적화 인스턴스 유형으로 r3 세대를 지원했다.
이후 r4, r5, r6g, x1e, x1, z1d 등 다양한 세대의 인스턴스가 제공되었다.
| 인스턴스 유형 | 메모리 | EBS 최적화 / 처리량 | 코어 | 네트워크 성능 |
|---|---|---|---|---|
| db.r4.large | 15.25 GB | 437 Mbit/s | 2 코어 | 최대 10 Gbps |
| db.r4.xlarge | 30.5 GB | 875 Mbit/s | 4 코어 | 최대 10 Gbps |
| db.r4.2xlarge | 61 GB | 1750 Mbit/s | 8 코어 | 최대 10 Gbps |
| db.r4.4xlarge | 122 GB | 3500 Mbit/s | 16 코어 | 최대 10 Gbps |
| db.r4.8xlarge | 244 GB | 7000 Mbit/s | 32 코어 | 10 Gbps |
| db.r4.16xlarge | 488 GB | 14000 Mbit/s | 64 코어 | 25 Gbps |
| db.r5.large | 16 GB | 최대 3500 Mbit/s | 2 코어 | 최대 10 Gbps |
| db.r5.xlarge | 32 GB | 최대 3500 Mbit/s | 4 코어 | 최대 10 Gbps |
| db.r5.2xlarge | 64 GB | 최대 3500 Mbit/s | 8 코어 | 최대 10 Gbps |
| db.r5.4xlarge | 128 GB | 3500 Mbit/s | 16 코어 | 최대 10 Gbps |
| db.r5.12xlarge | 384 GB | 7000 Mbit/s | 48 코어 | 10 Gbps |
| db.r5.24xlarge | 768 GB | 14000 Mbit/s | 96 코어 | 25 Gbps |
| db.r6g.large | 16 GB | 최대 4750 Mbit/s | 2 코어 | 최대 10 Gbps |
| db.r6g.xlarge | 32 GB | 최대 4750 Mbit/s | 4 코어 | 최대 10 Gbps |
| db.r6g.2xlarge | 64 GB | 최대 4750 Mbit/s | 8 코어 | 최대 10 Gbps |
| db.r6g.4xlarge | 128 GB | 4750 Mbit/s | 16 코어 | 최대 10 Gbps |
| db.r6g.8xlarge | 256 GB | 9000 Mbit/s | 32 코어 | 12 Gbps |
| db.r6g.12xlarge | 384 GB | 13500 Mbit/s | 48 코어 | 20 Gbps |
| db.r6g.16xlarge | 512 GB | 19000 Mbit/s | 64 코어 | 25 Gbps |
| db.x1e.xlarge | 122 GB | 500 Mbit/s | 4 코어 | 최대 10 Gbps |
| db.x1e.2xlarge | 244 GB | 1000 Mbit/s | 8 코어 | 최대 10 Gbps |
| db.x1e.4xlarge | 488 GB | 1750 Mbit/s | 16 코어 | 최대 10 Gbps |
| db.x1e.8xlarge | 976 GB | 3500 Mbit/s | 32 코어 | 최대 10 Gbps |
| db.x1e.16xlarge | 1952 GB | 7000 Mbit/s | 64 코어 | 10 Gbps |
| db.x1e.32xlarge | 3904 GB | 14000 Mbit/s | 128 코어 | 25 Gbps |
| db.x1.16xlarge | 976 GB | 7000 Mbit/s | 64 코어 | 10 Gbps |
| db.x1.32xlarge | 1952 GB | 14000 Mbit/s | 128 코어 | 25 Gbps |
| db.z1d.large | 16 GB | 1 코어 | 최대 10 Gbps | |
| db.z1d.xlarge | 32 GB | 2 코어 | 최대 10 Gbps | |
| db.z1d.2xlarge | 64 GB | 4 코어 | 최대 10 Gbps | |
| db.z1d.3xlarge | 96 GB | 6 코어 | 최대 10 Gbps | |
| db.z1d.6xlarge | 192 GB | 12 코어 | 10 Gbps | |
| db.z1d.12xlarge | 384 GB | 48 코어 | 25 Gbps |
4.3. 이전 세대 인스턴스
이전 세대 인스턴스는 현재 새로운 워크로드에는 권장되지 않지만, 기존 애플리케이션과의 호환성을 위해 계속 제공된다. 이전 세대 인스턴스에는 t1, m1, m2, m3, cr1, r3 등이 있다.
| 인스턴스 유형 | 메모리 | EBS 최적화 / 처리량 | 코어 | 네트워크 성능 |
|---|---|---|---|---|
| db.t1.micro | 0.613GB | 해당 없음 | 1 코어 | 매우 낮음 |
| db.m1.small | 1.7GB | 해당 없음 | 1 코어 | 낮음 |
| db.m1.medium | 3.75GB | 해당 없음 | 1 코어 | 보통 |
| db.m1.large | 7.5GB | 해당 없음 | 2 코어 | 보통 |
| db.m1.xlarge | 15GB | 해당 없음 | 4 코어 | 높음 |
| db.m2.xlarge | 17.1GB | 해당 없음 | 2 코어 | 보통 |
| db.m2.2xlarge | 34.2GB | 해당 없음 | 4 코어 | 보통 |
| db.m2.4xlarge | 68.4GB | 해당 없음 | 8 코어 | 높음 |
| db.m3.medium | 3.75GB | 해당 없음 | 1 코어 | 보통 |
| db.m3.large | 7.5GB | 해당 없음 | 2 코어 | 보통 |
| db.m3.xlarge | 15GB | 500Mbit/s | 4 코어 | 높음 |
| db.m3.2xlarge | 30GB | 10000Mbit/s | 8 코어 | 높음 |
| db.cr1.8xl | 244GB | 해당 없음 | 32 코어 | 10 기가비트 |
| db.r3.large | 15.25GB | 해당 없음 | 2 코어 | 보통 |
| db.r3.xlarge | 30.5GB | 해당 없음 | 4 코어 | 보통 |
| db.r3.2xlarge | 61GB | 해당 없음 | 8 코어 | 높음 |
| db.r3.4xlarge | 122GB | 해당 없음 | 16 코어 | 높음 |
| db.r3.8xlarge | 244GB | 해당 없음 | 32 코어 | 10 기가비트 |
5. 경쟁 및 대안
오라클은 Oracle Cloud를 통해 자사의 데이터베이스 기술을 지원하는 서비스를 제공하고 있다. 마이크로소프트는 Windows Azure SQL을 통해 Microsoft SQL 데이터베이스를 지원한다. MySQL을 지원하는 경쟁 서비스로는 RackSpace 클라우드 데이터베이스, Google Cloud SQL, HP Cloud for MySQL, Xeround Cloud Database, ClearDB 등이 있다.