https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS
Amazon RDS 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이라고도 함) 및 마그네틱(표준이라고도 함)의 세 가지 스토리지 유형을 제공합니다. 성능 특성과 가격이 다르기 때문에 데이터베이스 워크로드의 요구 사항에 맞게 스토리지 성능과 비용을 조정할 수 있습니다. 최대 64테비바이트(TiB)의 스토리지로 MySQL, MariaDB, Oracle 및 PostgreSQL RDS DB 인스턴스를 생성할 수 있습니다.최대 16TiB의 스토리지로 SQL Server RDS DB 인스턴스를 생성할 수 있습니다. 이 양의 스토리지에는 프로비저닝된 IOPS SSD 및 범용 SSD 스토리지 유형을 사용합니다.
다음 목록에서는 세 가지 스토리지 유형에 대해 간략하게 설명합니다.
- 범용 SSD – 범용 SSD 볼륨은 광범위한 워크로드에 이상적인 비용 효율적인 스토리지를 제공합니다. 이러한 볼륨은 한 자릿수 밀리초의 대기 시간과 오랜 기간 동안 3,000 IOPS까지 버스트할 수 있는 기능을 제공합니다. 이러한 볼륨의 기본 성능은 볼륨 크기에 따라 결정됩니다.
- 저장 크기 범위를 포함하는 일반 목적의 SSD 스토리지에 대한 자세한 내용은 다음을 참조 범용 SSD 스토리지를 .
- 프로비저닝된 IOPS – 프로비저닝된 IOPS 스토리지는 낮은 I/O 대기 시간과 일관된 I/O 처리량이 필요한 I/O 집약적 워크로드, 특히 데이터베이스 워크로드의 요구 사항을 충족하도록 설계되었습니다.
- 스토리지 크기 범위를 포함하여 프로비저닝된 IOPS 스토리지에 대한 자세한 내용은 프로비저닝된 IOPS SSD 스토리지를 참조하십시오 .
- 마그네틱 – Amazon RDS는 이전 버전과의 호환성을 위해 마그네틱 스토리지도 지원합니다. 새로운 스토리지 요구 사항에는 범용 SSD 또는 프로비저닝된 IOPS를 사용하는 것이 좋습니다. 마그네틱 스토리지의 DB 인스턴스에 허용되는 최대 스토리지 용량은 다른 스토리지 유형보다 적습니다. 자세한 내용은 마그네틱 스토리지 를 참조하십시오 .
인스턴스 구성, I/O 특성 및 워크로드 수요와 같은 여러 요인이 Amazon EBS 볼륨의 성능에 영향을 미칠 수 있습니다. 프로비저닝된 IOPS 볼륨을 최대한 활용하는 방법에 대한 자세한 내용은 Amazon EBS 볼륨 성능 단원을 참조하십시오 .
범용 SSD 스토리지
범용 SSD 스토리지는 대부분의 데이터베이스 워크로드에 적합한 비용 효율적인 스토리지를 제공합니다. 다음은 범용 SSD DB 인스턴스의 스토리지 크기 범위입니다.
- MariaDB, MySQL, Oracle 및 PostgreSQL 데이터베이스 인스턴스: 20GiB–64TiB
- SQL Server Enterprise, Standard, Web 및 Express Edition: 20GiB–16TiB
범용 SSD 스토리지의 기준 I/O 성능은 GiB당 3IOPS이며 최소 100IOPS입니다. 이 관계는 볼륨이 클수록 성능이 더 좋다는 것을 의미합니다. 예를 들어 100GiB 볼륨의 기준 성능은 300IOPS입니다. 1TiB 볼륨의 기준 성능은 3,000IOPS입니다. gp2 볼륨(5.34TiB 이상)의 최대 기준 성능은 16,000IOPS입니다.
크기가 1TiB 미만인 볼륨도 장기간 3,000IOPS로 버스트할 수 있습니다. 버스트는 1TiB를 초과하는 볼륨에는 관련이 없습니다. 인스턴스 I/O 크레딧 잔고는 버스트 성능을 결정합니다. 인스턴스 I/O 크레딧에 대한 자세한 내용은 I/O 크레딧 및 버스트 성능 단원을 참조하십시오 .
많은 워크로드는 버스트 균형을 고갈시키지 않으므로 범용 SSD는 많은 워크로드에 이상적인 스토리지 선택입니다. 그러나 일부 워크로드는 3,000 IOPS 버스트 스토리지 크레딧 잔액을 소진할 수 있으므로 워크로드의 요구 사항을 충족하도록 스토리지 용량을 계획해야 합니다.
메모
범용 SSD 스토리지를 사용하는 DB 인스턴스는 프로비저닝된 IOPS 스토리지를 사용하는 인스턴스보다 읽기 전용 복제본 생성, 다중 AZ 변환 및 DB 스냅샷 복원 후 지연 시간이 훨씬 더 길어질 수 있습니다. 이러한 작업 후 지연 시간이 최소인 DB 인스턴스가 필요한 경우 프로비저닝된 IOPS 스토리지를 사용하는 것이 좋습니다.
I/O 크레딧 및 버스트 성능
범용 SSD 스토리지 성능은 볼륨 크기에 따라 결정되며, 볼륨 크기는 볼륨의 기본 성능 수준과 I/O 크레딧을 얼마나 빨리 축적하는지를 나타냅니다. 볼륨이 클수록 기본 성능 수준이 더 높고 I/O 크레딧이 더 빨리 축적됩니다. 입출력 크레딧기본 수준 이상의 성능이 필요할 때 범용 SSD 스토리지가 대량의 I/O를 버스트하는 데 사용할 수 있는 사용 가능한 대역폭을 나타냅니다. 스토리지에 I/O에 대한 I/O 크레딧이 많을수록 기본 성능 수준 이상으로 버스트할 수 있는 시간이 늘어나고 워크로드에 더 많은 성능이 필요할 때 성능이 향상됩니다.
범용 SSD 스토리지를 사용할 때 DB 인스턴스는 540만 I/O 크레딧의 초기 I/O 크레딧 잔고를 받습니다. 이 초기 크레딧 잔고는 30분 동안 3,000IOPS의 버스트 성능을 유지하기에 충분합니다. 이 균형은 부팅 볼륨에 대한 빠른 초기 부팅 주기를 제공하고 다른 응용 프로그램에 대한 우수한 부트스트랩 경험을 제공하도록 설계되었습니다. 볼륨은 볼륨 크기의 각 GiB에 대해 3IOPS의 기준 성능 속도로 I/O 크레딧을 얻습니다. 예를 들어 100GiB SSD 볼륨의 기준 성능은 300IOPS입니다.
스토리지에 기본 성능 I/O 수준 이상이 필요한 경우 I/O 크레딧 밸런스의 I/O 크레딧을 사용하여 필요한 성능 수준으로 버스트합니다. 이러한 버스트는 최대 3,000 IOPS입니다. 1,000GiB보다 큰 스토리지의 기본 성능은 최대 버스트 성능과 같거나 더 큽니다. 스토리지가 1초 동안 얻는 것보다 적은 I/O 크레딧을 사용하는 경우 사용하지 않은 I/O 크레딧이 I/O 크레딧 잔액에 추가됩니다.
스토리지가 I/O 크레딧 잔액을 모두 사용한다고 가정합니다. 그렇다면 최대 성능은 I/O 수요가 기본 수준 아래로 떨어지고 사용되지 않은 I/O 크레딧이 I/O 크레딧 잔고에 추가될 때까지 기본 성능 수준에서 유지됩니다. ( 기본 성능 수준 은 스토리지가 I/O 크레딧을 획득하는 비율입니다.) 스토리지가 많을수록 기본 성능이 향상되고 I/O 크레딧 잔액을 더 빨리 보충합니다.
메모
마그네틱 스토리지와 범용 SSD 스토리지 간의 스토리지 변환은 잠재적으로 I/O 크레딧 잔액을 고갈시켜 변환 시간이 더 길어질 수 있습니다. 스토리지 확장에 대한 자세한 내용은 Amazon RDS DB 인스턴스용 스토리지 작업을 참조하십시오 .
스토리지의 버스트 지속 시간은 스토리지 크기, 필요한 버스트 IOPS 및 버스트가 시작될 때의 I/O 크레딧 균형에 따라 다릅니다. 이 관계는 다음 방정식에 나와 있습니다.
(Credit balance) Burst duration = -------------------------------------- (Burst IOPS) - 3*(Storage size in GiB)
빈 I/O 크레딧 잔고로 인해 스토리지 성능이 기본 수준으로 제한되는 경우가 많습니다. 그렇다면 기본 성능 수준이 더 높은 범용 SSD 스토리지를 더 많이 할당하는 것이 좋습니다. 또는 지속적인 IOPS 성능이 필요한 워크로드에 대해 프로비저닝된 IOPS 스토리지로 전환할 수 있습니다.
안정적인 상태의 I/O 요구 사항이 있는 워크로드의 경우 100GiB 미만의 범용 SSD 스토리지를 프로비저닝하면 I/O 크레딧 잔고가 소진될 경우 대기 시간이 길어질 수 있습니다.
메모
일반적으로 대부분의 워크로드는 I/O 크레딧 잔고를 초과하지 않습니다.
기준 성능 및 I/O 크레딧 균형이 성능에 미치는 영향에 대한 자세한 설명은 Amazon RDS 및 GP2의 버스트 대 기준 성능 이해를 참조하십시오..
프로비저닝된 IOPS SSD 스토리지
빠르고 일관된 I/O 성능이 필요한 프로덕션 애플리케이션의 경우 프로비저닝된 IOPS(초당 입력/출력 작업) 스토리지를 권장합니다. 프로비저닝된 IOPS 스토리지는 예측 가능한 성능과 일관되게 짧은 지연 시간을 제공하는 스토리지 유형입니다. 프로비저닝된 IOPS 스토리지는 일관된 성능 요구 사항이 있는 OLTP(온라인 트랜잭션 처리) 워크로드에 최적화되어 있습니다. 프로비저닝된 IOPS는 이러한 워크로드의 성능 조정을 돕습니다.
메모
데이터베이스 워크로드는 프로비저닝한 IOPS의 100%를 달성하지 못할 수 있습니다. 자세한 내용 은 스토리지 성능에 영향을 미치는 요인을 참조하십시오 .
DB 인스턴스를 생성할 때 IOPS 속도와 볼륨 크기를 지정합니다. 할당된 스토리지에 대한 IOPS 비율(GiB)은 최소 0.5(SQL Server용 RDS의 경우 1.0)에서 50 이하여야 합니다. Amazon RDS는 사용자가 변경할 때까지 DB 인스턴스에 대해 해당 IOPS 비율을 제공합니다.
다음 표는 각 데이터베이스 엔진에 대한 프로비저닝된 IOPS 범위 및 스토리지 크기 범위를 보여줍니다.
데이터베이스 엔진프로비저닝된 IOPS 범위저장 범위
마리아DB | 1,000–80,000 IOPS | 100GiB – 64TiB |
SQL Server Enterprise, Standard 및 Web Edition | 1,000–64,000 IOPS | 20GiB – 16TiB |
SQL 서버 익스프레스 에디션 | 1,000–64,000 IOPS | 100GiB – 16TiB |
MySQL | 1,000–80,000 IOPS | 100GiB – 64TiB |
신탁 | 1,000–256,000 IOPS | 100 GiB- 64 TiB 크기 |
PostgreSQL | 1,000–80,000 IOPS | 100GiB – 64TiB |
메모
SQL Server의 경우 64,000의 최대 IOPS 는 m5, m5d, r5, r5b, r5d 및 z1d 인스턴스 유형 에 있는 Nitro 기반 인스턴스 에서만 보장됩니다 . 다른 인스턴스 패밀리는 최대 32,000 IOPS의 성능을 보장합니다.
Oracle의 경우 256,000의 최대 IOPS 는 r5b 인스턴스 유형에 있는 Nitro 기반 인스턴스 에서만 보장됩니다 . 다른 인스턴스 패밀리는 최대 80,000IOPS의 성능을 보장합니다.
PostgreSQL의 경우 db.m5.8xlarge, db.m5.16xlarge, db.r5.8xlarge 및 db.r5.16xlarge 인스턴스 클래스의 최대 IOPS는 40,000입니다.
중요한
사용 중인 인스턴스 클래스에 따라 RDS에서 프로비저닝할 수 있는 최대값보다 낮은 IOPS 성능을 볼 수 있습니다. DB 인스턴스 클래스의 IOPS 성능에 대한 자세한 내용은 Amazon EBS 최적화 인스턴스를 참조하십시오 . DB 인스턴스에 대해 프로비저닝된 IOPS 값을 설정하기 전에 인스턴스 클래스의 최대 IOPS를 결정하는 것이 좋습니다.
프로비저닝된 IOPS 스토리지와 다중 AZ 배포 또는 읽기 전용 복제본 결합
프로덕션 OLTP 사용 사례의 경우 빠르고 예측 가능한 성능을 위해 프로비저닝된 IOPS 스토리지와 함께 향상된 내결함성을 위해 다중 AZ 배포를 사용하는 것이 좋습니다.
MySQL, MariaDB 또는 PostgreSQL용 읽기 전용 복제본과 함께 프로비저닝된 IOPS SSD 스토리지를 사용할 수도 있습니다. 읽기 전용 복제본의 스토리지 유형은 기본 DB 인스턴스의 스토리지 유형과 무관합니다. 예를 들어 비용을 줄이기 위해 프로비저닝된 IOPS SSD 스토리지를 사용하는 기본 DB 인스턴스와 함께 읽기 전용 복제본에 범용 SSD를 사용할 수 있습니다. 그러나 읽기 전용 복제본'
프로비저닝된 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 Server 데이터베이스 엔진을 사용할 때 저장소 확장을 허용하지 않습니다.
- 스토리지 자동 확장을 지원하지 않습니다.
- 탄력적 볼륨을 지원하지 않습니다.
- 최대 크기는 3TiB로 제한됩니다.
- 최대 1,000IOPS로 제한됩니다.
스토리지 성능 모니터링
Amazon RDS는 DB 인스턴스의 성능을 확인하는 데 사용할 수 있는 여러 지표를 제공합니다. Amazon RDS Management Console의 인스턴스에 대한 요약 페이지에서 지표를 볼 수 있습니다. Amazon CloudWatch를 사용하여 이러한 지표를 모니터링할 수도 있습니다. 자세한 내용은 DB 인스턴스 지표 보기 단원을 참조하십시오 . Enhanced Monitoring은 보다 자세한 I/O 메트릭을 제공합니다. 자세한 내용은 향상된 모니터링을 사용하여 OS 메트릭 추적을 참조하십시오 .
다음 지표는 DB 인스턴스의 스토리지를 모니터링하는 데 유용합니다.
- IOPS – 초당 완료된 I/O 작업 수입니다.
이 메트릭은 지정된 시간 간격에 대한 평균 IOPS로 보고됩니다.
Amazon RDS는 1분 간격으로 읽기 및 쓰기 IOPS를 별도로 보고합니다.
총 IOPS는 읽기 및 쓰기 IOPS의 합계입니다.
IOPS의 일반적인 값은 초당 0에서 수만 사이입니다. - 대기 시간 – I/O 요청 제출과 완료 사이의 경과 시간입니다. 이 메트릭은 주어진 시간 간격에 대한 평균 대기 시간으로 보고됩니다. Amazon RDS는 읽기 및 쓰기 지연 시간을 1분 간격으로 초 단위로 별도로 보고합니다. 대기 시간의 일반적인 값은 밀리초(ms)입니다. 예를 들어 Amazon RDS는 2ms를 0.002초로 보고합니다.
- 처리량 – 디스크로 또는 디스크에서 전송되는 초당 바이트 수입니다. 이 메트릭은 주어진 시간 간격에 대한 평균 처리량으로 보고됩니다. Amazon RDS는 초당 메가바이트(MB/s) 단위를 사용하여 1분 간격으로 읽기 및 쓰기 처리량을 별도로 보고합니다. 처리량의 일반적인 값은 0에서 I/O 채널의 최대 대역폭까지입니다.
- 대기열 깊이– 처리되기를 기다리는 대기열의 I/O 요청 수입니다. 애플리케이션에서 제출했지만 장치가 다른 I/O 요청을 처리 중이기 때문에 장치로 전송되지 않은 I/O 요청입니다. 대기열에서 대기하는 데 소요된 시간은 대기 시간 및 서비스 시간의 구성 요소입니다(메트릭으로 사용할 수 없음). 이 측정 단위는 주어진 시간 간격에 대한 평균 대기열 깊이로 보고됩니다. Amazon RDS는 1분 간격으로 대기열 깊이를 보고합니다.
측정된 IOPS 값은 개별 I/O 작업의 크기와 무관합니다. 즉, I/O 성능을 측정할 때 단순히 I/O 작업 수가 아니라 인스턴스의 처리량을 살펴봐야 합니다.
스토리지 성능에 영향을 미치는 요소
시스템 활동, 데이터베이스 워크로드 및 DB 인스턴스 클래스는 스토리지 성능에 영향을 미칠 수 있습니다.
시스템 활동
다음과 같은 시스템 관련 활동은 I/O 용량을 소비하고 진행 중에 DB 인스턴스 성능을 저하시킬 수 있습니다.
- 다중 AZ 대기 생성
- 읽기 복제본 생성
- 스토리지 유형 변경
데이터베이스 워크로드
경우에 따라 데이터베이스 또는 애플리케이션 설계로 인해 동시성 문제, 잠금 또는 기타 형태의 데이터베이스 경합이 발생합니다. 이러한 경우 프로비저닝된 모든 대역폭을 직접 사용하지 못할 수 있습니다. 또한 다음과 같은 워크로드 관련 상황이 발생할 수 있습니다.
- 기본 인스턴스 유형의 처리량 제한에 도달했습니다.
- 애플리케이션이 충분한 I/O 작업을 구동하지 않기 때문에 대기열 깊이는 지속적으로 1보다 작습니다.
- 일부 I/O 용량이 사용되지 않은 경우에도 데이터베이스에서 쿼리 경합이 발생합니다.
어떤 경우에는 시스템 리소스가 한계에 이르거나 거의 없으며 스레드를 추가해도 데이터베이스 트랜잭션 속도가 증가하지 않습니다. 이러한 경우 병목 현상은 데이터베이스의 경합일 가능성이 높습니다. 가장 일반적인 형식은 행 잠금 및 인덱스 페이지 잠금 경합이지만 다른 많은 가능성이 있습니다. 이러한 상황이라면 데이터베이스 성능 조정 전문가의 조언을 구하십시오.
DB 인스턴스 클래스
Amazon RDS DB 인스턴스의 성능을 최대한 활용하려면 스토리지 유형을 지원하기에 충분한 대역폭을 가진 현재 세대 인스턴스 유형을 선택하십시오. 예를 들어 Amazon EBS에 최적화된 인스턴스와 10기가비트 네트워크 연결이 있는 인스턴스를 선택할 수 있습니다.
중요한
사용 중인 인스턴스 클래스에 따라 RDS로 프로비저닝할 수 있는 최대값보다 낮은 IOPS 성능을 볼 수 있습니다. DB 인스턴스 클래스의 IOPS 성능에 대한 자세한 내용은 Amazon EBS 최적화 인스턴스를 참조하십시오 . DB 인스턴스에 대해 프로비저닝된 IOPS 값을 설정하기 전에 인스턴스 클래스의 최대 IOPS를 결정하는 것이 좋습니다.
최상의 성능을 얻으려면 최신 세대 인스턴스를 사용하는 것이 좋습니다. 이전 세대 DB 인스턴스의 최대 스토리지도 더 낮을 수 있습니다.
다음 목록은 대부분의 DB 인스턴스 클래스가 각 데이터베이스 엔진에 대해 확장할 수 있는 최대 스토리지를 보여줍니다.
- MariaDB: 64TiB
- 마이크로소프트 SQL 서버: 16TiB
- MySQL: 64TiB
- 오라클: 64TiB
- PostgreSQL: 64TiB
다음 표는 몇 가지 예외를 보여줍니다. 모든 Microsoft SQL Server DB 인스턴스용 RDS의 최대 스토리지는 16TiB이므로 SQL Server에 대한 항목이 없습니다.
인스턴스 클래스마리아DBMySQL신탁PostgreSQL
db.m3 – 이전 세대 표준 인스턴스 클래스 | ||||
db.m3.2xlarge | 해당 없음 | 6 | 해당 없음 | 6 |
db.m3.xlarge | 해당 없음 | 6 | 해당 없음 | 6 |
db.m3.large | 해당 없음 | 6 | 해당 없음 | 6 |
db.m3.medium | 해당 없음 | 32 | 해당 없음 | 32 |
db.t3 – 버스트 가능한 최신 성능 인스턴스 클래스 | ||||
db.t3.medium | 16 | 16 | 32 | 32 |
db.t3.small | 16 | 16 | 32 | 16 |
db.t3.micro | 16 | 16 | 32 | 16 |
db.t2 – 현재 세대 버스트 가능한 성능 인스턴스 클래스 | ||||
db.t2.medium | 32 | 32 | 해당 없음 | 32 |
db.t2.small | 16 | 16 | 해당 없음 | 16 |
db.t2.micro | 16 | 16 | 해당 없음 | 16 |
지원되는 모든 인스턴스 클래스에 대한 자세한 내용은 이전 세대 DB 인스턴스를 참조하십시오..
'[AWS] > AWS 기타' 카테고리의 다른 글
[AWS] Amazon Linux AMI RDS용 mysql클라이언트 설치 (0) | 2021.08.24 |
---|---|
[AWS] EC2 pem키 접속 방법 (0) | 2021.08.23 |
[AWS] EC2 크레딧 사용 - 무제한 모드 개념 (0) | 2021.08.13 |
[AWS] EC2 Instance 볼륨 생성 및 볼륨 마운트 (0) | 2021.08.12 |
[AWS] JSON 구조 학습 (0) | 2021.08.10 |
댓글