Amazon Relational Database Service
사용 설명서 (API 버전 2014-10-31)

DB 인스턴스 스토리지

MySQL, MariaDB, PostgreSQL, Oracle, 및 Microsoft SQL Server용 Amazon RDS의 DB 인스턴스는 데이터베이스 및 로그 스토로지의 크기 때문에 Amazon Elastic Block Store(Amazon EBS)를 사용합니다. Amazon RDS는 필요한 스토리지 용량에 따라 자동으로 데이터를 여러 Amazon EBS 볼륨에 나누어 저장하여 성능을 강화합니다.

Amazon RDS 스토리지 유형

Amazon RDS에서는 범용 SSD(gp2라고도 함), 프로비저닝된 IOPS SSD(io1이라고도 함), 마그네틱 등 세 가지 스토리지 유형을 제공합니다. 이러한 3가지 유형은 성능 특성과 가격이 다르므로 데이터베이스 워크로드 요건에 따라 스토리지 성능과 비용을 조정할 수 있습니다. 이제 MySQL, MariaDB, Oracle, PostgreSQL RDS DB 인스턴스는 스토리지의 최대 32TiB까지 생성할 수 있습니다. SQL Server RDS DB 인스턴스는 스토리지의 최대 16TiB까지 생성할 수 있습니다. 이 스토리지 크기 때문에 프로비저닝된 IOPS SSD 및 범용 SSD 스토리지 유형을 사용합니다.

다음은 세 가지 스토리지 유형에 대한 간략한 설명입니다.

  • 범용 SSD – gp2라고도 하는 범용 SSD 볼륨은 광범위한 워크로드에 이상적인 비용 효율적 스토리지를 제공합니다. 이러한 볼륨은 시간을 연장할 경우 3,000IOPS의 버스트 기능까지 지원되어 지연 시간이 한 자릿수 밀리초에 불과합니다. 이러한 볼륨에 대한 기준 성능은 볼륨의 크기에 의해 결정됩니다.

    스토리지 크기 범위를 포함하여 범용 SSD 스토리지에 대한 자세한 내용은 범용 SSD 스토리지 단원을 참조하십시오.

  • 프로비저닝된 IOPS – 프로비저닝된 IOPS 스토리지는 I/O 지연 시간이 짧고 I/O 처리량이 일정한 I/O 집약적 워크로드, 특히 데이터베이스 워크로드 요구 사항을 충족하도록 설계되었습니다.

    스토리지 크기 범위를 포함하여 프로비저닝된 IOPS 스토리지에 대한 자세한 내용은 프로비저닝된 IOPS SSD 스토리지 단원을 참조하십시오.

  • 마그네틱 – Amazon RDS는 역호환성을 위해 마그네틱 스토리지도 지원합니다. 새 스토리지가 필요할 경우 범용 SSD 또는 프로비저닝된 IOPS를 사용하는 것이 좋습니다. 마그네틱 스토리지에서는 DB 인스턴스에 허용되는 최대 스토리지 크기가 나머지 스토리지 유형의 크기보다 작습니다. 자세한 내용은 마그네틱 스토리지 단원을 참조하십시오.

Amazon EBS 볼륨은 인스턴스 구성, I/O 특성, 워크로드 수요 등 성능에 영향을 끼치는 몇 가지 요인이 있습니다. 프로비저닝된 IOPS 볼륨을 최대한 활용할 수 있는 자세한 내용은 Amazon EBS 볼륨 성능을 참조하십시오.

범용 SSD 스토리지

범용 SSD 스토리지는 비용 효율적이어서 대부분의 데이터베이스 워크로드에 적합합니다. 다음은 범용 SSD DB 인스턴스의 스토리지 크기 범위입니다.

  • MySQL, MariaDB, Oracle 및 PostgreSQL DB 인스턴스: 20GiB–32TiB

  • Enterprise, Standard, Web 및 Express 에디션용 SQL Server: 20GiB–16TiB

범용 SSD 스토리지용 기준 I/O 성능은 각 GiB 당 3 IOPS이기 때문에 더 큰 크기는 더 좋은 선능을 가지고 있다는 의미입니다. 예를 들어, 100GiB 볼륨에 대한 기준 성능은 300IOPS인 반면에 1TiB 볼륨에 대한 기준 성능은 3000IOPS입니다. 3.34TiB 이상의 볼륨은 10,000IOPS의 기준 성능을 갖습니다.

1TiB보다 작은 크기는 늘어난 시간에 대해 3,000IOPS로 확장됩니다 (확장되는 것은 1TiB보다 큰 크기와 연관이 없습니다). 버스트 성능은 인스턴스 I/O 크레딧 밸런스에 의해 결정됩니다. 인스턴스 I/O 크레딧에 대한 자세한 내용은 I/O 크레딧 및 버스트 성능 단원을 참조하십시오.

많은 워크로드는 버스트 밸런스를 절대 고갈시키지 않아 범용 SSD가 많은 워크로드의 이상적인 스토리지가 될 수 있습니다. 하지만, 일부 워크로드가 3,000IOPS 버스트 스토리지 크레딧 밸런스를 소비할 수 있으므로 워크로드의 요건에 맞게 스토리지 용량을 계획해야 합니다.

I/O 크레딧 및 버스트 성능

범용 SSD 스토리지 성능은 볼륨 크기에 따라 결정됩니다. 그 이유는 볼륨 크기가 볼륨의 기본 성능과 I/O 크레딧의 누적 속도에 영향을 미치기 때문입니다. 즉, 볼륨이 클수록 기본 성능이 높아지고 I/O 크레딧의 누적 속도도 빨라집니다. I/O 크레딧이란 범용 SSD 스토리지에서 기본 성능 이상이 필요할 때 대용량 I/O를 버스트하는 데 사용할 수 있는 가용 대역폭을 의미합니다. 스토리지에 I/O에 대한 I/O 크레딧이 많을수록 워크로드가 더 높은 성능이 필요할 때 기본 성능 이상으로 버스트하는 시간이 길어질 뿐만 아니라 성능도 좋아집니다.

범용 SSD 스토리지를 사용할 경우, DB 인스턴스에서 초기 I/O 크레딧 밸런스는 540만 I/O 크레딧과 동일합니다. 이 초기 I/O 크레딧 잔고는 30분 동안 3,000 IOPS의 버스트 성능을 유지할 수 있는 수준입니다. 이 밸런스는 부트 볼륨에 빠른 초기 부팅 주기를 제공하고 기타 애플리케이션에 좋은 부트스트래핑 환경을 제공하도록 설계되었습니다. 볼륨은 볼륨 크기의 GiB 당 3 IOPS의 기준 성능 비율로 I/O 크레딧을 획득합니다. 예를 들어, 100-GiB SSD 볼륨은 300IOPS의 기준 성능을 갖습니다.

스토리지에 기본 성능 I/O 이상이 필요한 경우 I/O 크레딧 밸런스에서 I/O 크레딧을 사용하여 필요한 성능을 버스트할 수 있습니다. 버스트는 최대 3,000IOPS까지 올라갑니다. 1,000GiB 이상의 스토리지는 최대 버스트 성능 이상의 기준 성능을 갖습니다. 스토리지가 초당 획득한 I/O 크레딧 이하를 사용하는 경우 미사용 I/O 크레딧은 I/O 크레딧 밸런스에 가산됩니다. 범용 SSD 스토리지를 사용하는 DB 인스턴스에서 최대 I/O 크레딧 밸런스는 초기 I/O 크레딧 밸런스(540만 I/O 크레딧)와 동일합니다.

스토리지가 I/O 크레딧 밸런스를 모두 사용한다고 가정하십시오. 만약 그렇다면, I/O 수요가 기본 성능 밑으로 떨어져서 미사용 I/O 크레딧이 I/O 크레딧 밸런스에 가산될 때까지 최대 성능은 기본 성능과 동일한 수준을 유지합니다. (여기에서 기본 성능 수준이란 스토리지가 I/O 크레딧을 획득하는 속도를 말합니다.) 스토리지가 클수록 기본 성능이 높아지고 I/O 크레딧 밸런스의 보충 속도도 빨라집니다.

참고

마그네틱 스토리지와 범용 SSD 스토리지를 서로 전환할 때는 잠재적으로 I/O 크레딧 밸런스가 고갈될 수도 있어 전환 시간이 더 오래 걸릴 수 있습니다. 스토리지 조정에 대한 자세한 내용은 스토리 작업 단원을 참조하십시오.

다음 표에는 몇 가지 스토리지 크기가 나와 있습니다. 각 스토리지 크기마다 스토리지의 기본 성능, 즉 I/O 크레딧이 누적되는 속도가 표시되어 있습니다. 또한 I/O 크레딧 밸런스가 가득 찬 상태에서 시작할 경우 최대 3,000IOPS일 때 버스트 지속 시간도 나열되어 있습니다. 그 밖에 비어있는 I/O 크레딧 밸런스를 스토리지가 다시 채우는 데 걸리는 시간(초)도 확인할 수 있습니다.

스토리지 크기(GiB) 기본 성능(IOPS) 3,000IOPS(초)에서 최대 버스트 지속 시간 고갈된 I/O 크레딧 밸런스를 보충하는 데 소요되는 시간(초)
1 100 1,862 54,000
100 300 2,000 18,000
250 750 2,400 7,200
500 1,500 3,600 3,600
750 2,250 7,200 2,400
1,000 3,000 무제한 해당 사항 없음
3,333 10,000 무제한 해당 사항 없음
10,000 10,000 무제한 해당 사항 없음

스토리지의 버스트 지속 시간은 스토리지 크기, 필요한 버스트 IOPS 및 버스트 실행 시 I/O 크레딧 밸런스에 따라 달라집니다. 이 관계는 다음 방정식과 같습니다.

(Credit balance) Burst duration =  ------------------------------------ (Burst IOPS) - 3(Storage size in GiB)

I/O 크레딧 밸런스의 고갈로 인해 스토리지 성능이 종종 기본 수준으로 제한됩니다. 그렇다면, 더 높은 기준 성능 수준의 범용 SSD 추가 할당을 고려하십시오. 또는 IOPS 성능을 유지해야 하는 워크로드인 경우에는 Provisioned IOPS 스토리지로 전환하는 것도 좋습니다.

I/O 성능이 꾸준하게 요구되는 워크로드인 경우 100GiB 미만의 범용 SSD 스토리지를 프로비저닝하면 I/O 크레딧 밸런스가 고갈되어 오히려 지연 시간이 늘어날 수 있습니다.

참고

일반적으로 대부분의 워크로드는 I/O 크레딧 밸런스를 초과하지 않습니다.

기준 성능과 I/O 크레딧 밸런스가 성능에 어떻게 영향을 주는지에 대한 자세한 내용은 Amazon RDS 및 GP2에서 버스트와 기준 성능 비교 이해를 참조하십시오.

프로비저닝된 IOPS SSD 스토리지

빠르고 일관적인 I/O 성능이 필요한 프로덕션 애플리케이션의 경우에는 프로비저닝된 IOPS(초당 입/출력 연산 수) 스토리지를 권장합니다. 프로비저닝된 IOPS 스토리지는 성능이 예측 가능하며, 일관적으로 지연 시간이 짧은 스토리지 유형입니다. 프로비저닝된 IOPS 스토리지는 일관적인 성능이 필요한 온라인 트랜잭션 프로세싱(OLTP) 워크로드에 이상적일 뿐만 아니라 프로비저닝된 IOPS는 이런 워크로드의 성능 튜닝에도 효과적입니다.

DB 인스턴스를 생성할 때 IOPS 속도와 볼륨 크기를 지정합니다. Amazon RDS는 사용자가 변경할 때까지 DB 인스턴스의 IOPS 속도를 제공합니다.

참고

데이터베이스 워크로드는 프로비저닝한 100% IOPS를 달성할 수 없을 수 있습니다.

다음 표는 각 데이터베이스 엔진에 따른 프로비저닝된 IOPS 범위 및 스토리지 크기 범위를 나타냅니다.

데이터베이스 엔진 프로비저닝된 IOPS 범위 스토리지 범위
MariaDB 1,000–40,000 IOPS 100GiB–32TiB
SQL Server, Enterprise 및 Standard Edition 1000–32,000 IOPS 20GiB–16TiB
SQL Server, Web 및 Express Edition 1000–32,000 IOPS 100GiB–16TiB
MySQL 1,000–40,000 IOPS 100GiB–32TiB
Oracle 1,000–40,000 IOPS 100GiB–32TiB
PostgreSQL 1,000–40,000 IOPS 100GiB–32TiB

프로비저닝된 IOPS 스토리지를 다중 AZ 배포 또는 읽기 전용 복제본과 결합합니다.

프로덕션 OLTP 사용 사례에서 내결함성을 높이는 것이 목적일 때는 다중 AZ 배포를, 빠르고 예측 가능한 성능이 목적일 때는 프로비저닝된 IOPS 스토리지를 사용하는 것이 바람직합니다.

MySQL, MariaDB 또는 PostgreSQL 읽기 전용 복제본와 함께 프로비저닝된 IOPS SSD 스토리지를 사용합니다. 읽기 전용 복제본의 스토리지 유형은 마스터 DB 인스턴스의 스토리지와 독립되어 있습니다. 예를 들어, 프로비저닝된 IOPS SSD 스토리지를 사용하는 마스터 DB 인스턴스에 읽기 전용 복제본의 범용 SSD를 사용하여 비용을 절감할 수 있습니다. 그러나 이 경우의 읽기 전용 복제본 성능은 프로비저닝된 IOPS SSD 스토리지를 사용하는 마스터 DB 인스턴스와 읽기 전용 복제본 구성 성능과 차이를 보일 수 있습니다.

프로비저닝된 IOPS 스토리지 비용

프로비저닝된 IOPS 스토리지는 한 달간 사용 여부에 상관없이 프로비저닝된 리소스에 대한 요금이 청구됩니다.

요금에 대한 자세한 내용은 Amazon RDS 요금을 참조하십시오.

Amazon RDS 프로비저닝된 IOPS SSD 스토리지 최대한 활용하기

워크로드가 I/O 제한되면 프로비저닝된 IOPS SSD 스토리지의 사용에 따라 시스템이 동시에 처리할 수 있는 I/O 요청 수가 증가합니다. 이처럼 동시 처리 가능한 수가 증가하면 대기열의 I/O 요청 시간이 줄어들어 지연 시간이 감소하는 효과가 있습니다. 지연 시간 감소는 데이터베이스 커밋 속도의 향상으로 이어져 응답 시간이 개선되고 데이터베이스 처리 속도가 빨라집니다.

프로비저닝된 IOPS SSD 스토리지는 IOPS를 지정하여 I/O 용량을 예비할 수 있습니다. 하지만, 다른 시스템 용량 속성과 마찬가지로 재하 시 최대 처리 속도는 처음 사용된 리소스에 따라 제약을 받게 됩니다. 이러한 리소스로는 네트워크 대역폭, CPU 메모리 또는 데이터베이스 내부 리소스가 있습니다.

마그네틱 스토리지

또한 Amazon RDS는 이전 버전과의 호환성을 위해 마그네틱 스토리지를 지원합니다. 새 스토리지가 필요할 경우 범용 SSD 또는 프로비저닝된 IOPS SSD를 사용하는 것이 좋습니다. 다음은 마그네틱 스토로지의 몇 가지 제한입니다.

  • SQL 서버 데이터베이스 엔진을 사용할 경우 스토리지를 확장할 수 없습니다.

  • 탄력적 볼륨을 지원하지 않습니다.

  • 최대 4TiB 크기로 제한됩니다.

  • 최대 1,000IOPS로 제한됩니다.

스토리지 성능 모니터링

Amazon RDS는 DB 인스턴스의 성능을 측정할 수 있는 몇 가지 측정치가 있습니다. Amazon RDS 관리 콘솔의 인스턴스에 대한 요약 페이지에서 지표를 볼 수 있습니다. 또한 Amazon CloudWatch를 사용하여 이 측정치를 모니터링할 수도 있습니다. 자세한 내용은 DB 인스턴스 측정치 보기 단원을 참조하십시오. 향상된 모니터링은 더 자세한 I/O 측정치를 제공합니다. 자세한 내용은 확장 모니터링 단원을 참조하십시오.

다음 지표는 DB 인스턴스용 스토리지를 모니터링하는 데 유용합니다.

  • IOPS – 완료한 초당 I/O 작업 횟수입니다. 이 지표는 지정된 시간 간격 동안의 평균 IOPS로 보고됩니다. Amazon RDS는 1분 간격으로 읽기 IOPS와 쓰기 IOPS를 따로 보고합니다. 총 IOPS는 읽기 IOPS와 쓰기 IOPS의 합계입니다. 일반적인 IOPS 값 범위는 초당 0에서 수만에 이릅니다.

  • Latency(지연 시간) – I/O 요청을 제출하여 완료될 때까지 걸리는 시간입니다. 이 지표는 지정된 시간 간격 동안의 평균 지연 시간으로 보고됩니다. Amazon RDS는 초 단위를 사용하여 1분 간격으로 읽기 IOPS와 쓰기 IOPS를 따로 보고합니다. 일반적인 지연 시간 값은 밀리초(ms) 단위로 표시됩니다. 예를 들어 0.002초의 경우 Amazon RDS는 2ms를 보고합니다.

  • Throughput(처리량) – 디스크와 송/수신하는 초당 바이트 수입니다. 이 지표는 지정된 시간 간격 동안의 평균 처리량으로 보고됩니다. Amazon RDS는 초당 메가바이트(MB/s) 단위를 사용하여 1분 간격으로 읽기 처리량과 쓰기 처리량을 따로 보고합니다. 일반적인 처리량 값 범위는 0에서 I/O 채널의 최대 대역폭까지입니다.

  • Queue Depth(대기열 깊이) – 대기열에서 처리를 기다리는 I/O 요청 수입니다. 애플리케이션에서 I/O 요청을 제출하였지만 디바이스가 다른 I/O 요청을 처리하고 있을 때는 전송되지 않는 경우가 있습니다. 이때 대기열에서 기다리게 되는데 이 대기 시간이 지연 시간과 서비스 시간(측정치로 사용하지 않음)을 구성합니다. 이 지표는 지정된 시간 간격 동안의 평균 대기열 깊이로 보고됩니다. Amazon RDS는 1분 간격으로 대기열 깊이를 보고합니다. 일반적인 대기열 깊이 값은 0에서 수백에 이릅니다.

측정된 IOPS 값은 개별 I/O 작업 크기와 독립적입니다. I/O 성능을 측정할 경우, 단순한 I/O 작업 수가 아닌 인스턴스 처리량에 관심을 두어야 한다는 의미입니다.

스토리지 성능에 영향을 끼치는 요인

시스템 활동과 데이터베이스 워크로드 모두 스토리지 성능에 영향을 미칠 수 있습니다.

시스템 활동

다음 시스템 관련 활동은 I/O 용량을 사용하기 때문에 진행되는 동안에는 데이터베이스 인스턴스 성능이 떨어질 수 있습니다.

  • 다중 AZ 대기 생성

  • 읽기 전용 복제본 생성

  • 스토리지 유형 변경

데이터베이스 워크로드

어떤 경우, 데이터베이스 또는 애플리케이션 설계에 따라 동시 처리 가능한 연산 문제, 잠금 또는 그 밖에 데이터베이스 논쟁을 불러일으킬 수 있습니다. 이런 경우, 프로비저닝된 대역폭 모두를 직접 사용하지 못할 수 있습니다. 또한, 다음과 같은 워크로드 관련 상황이 발생할 수 있습니다.

  • 기본 인스턴스 유형의 제한된 처리량에 도달했습니다.

  • 애플리케이션이 충분한 I/O 작업을 실행하지 않기 때문에 대기열 깊이는 지속적으로 1 미만입니다.

  • 몇 가지 I/O 용량을 사용하지 않아도 데이터베이스의 쿼리 문제가 있을 수 있습니다.

최대치에 이르거나 가까운 시스템 리소스가 단 하나도 없고, 스레드를 추가하더라도 데이터베이스의 트랜잭션 터리 속도가 증가하지 않는 경우에는 병목 현상의 원인이 데이터베이스에 있을 가능성이 높습니다. 가장 공통적인 원인은 행 잠금과 인덱스 페이지 잠금이지만 그 밖에 다른 가능성도 있습니다. 이런 경우에는 데이터베이스 성능 튜닝 전문가에게 조언을 구해야 합니다.

DB 인스턴스 클래스

Amazon RDS 데이터베이스 인스턴스의 최대 성능을 얻으려면 자체 스토리지 유형을 지원하는 충분한 대역폭이 있는 현재 작업 인스턴스 유형을 선택합니다. 예를 들어, 10Gb 네트워크에 연결된 EBS에 최적화된 인스턴스를 선택해야 합니다.

EBS 최적화를 지원하는 Amazon EC2 인스턴스의 전체 목록은 EBS 최적화를 지원하는 인스턴스 유형을 참조하십시오.

최상의 성능을 얻으려면 최신 세대 인스턴스를 사용할 것을 권장합니다. 이전 세대 DB 인스턴스는 인스턴스 스토리지 제한이 더 낮습니다. 다음과 같은 이전 세대 인스턴스에는 6TiB 이상의 확장이 지원되지 않습니다.

  • db.m1.small

  • db.m1.medium

  • db.m1.large

  • db.m1.xlarge

  • db.m2.xlarge

  • db.m2.2xlarge

  • db.m2.4xlarge

  • db.m3.large

  • db.m3.xlarge

  • db.m3.2xlarge

자세한 내용은 이전 세대 DB 인스턴스를 참조하십시오.