ApsaraDB RDS (RDS) は、さまざまなワークロードの多様なパフォーマンス、安定性、コスト要件を満たすために、さまざまなプライマリインスタンスタイプを提供しています。適切なインスタンスタイプを選択することは、データベースのパフォーマンスとコストの両方を最適化するための重要なステップです。このトピックでは、さまざまなエンジンを実行するプライマリ RDS インスタンスの詳細なインスタンスタイプリストへのリンクを提供し、すべてのインスタンスタイプで使用されるコアメトリックについて説明して、情報に基づいた選択ができるようにします。
さまざまなエンジンを実行するプライマリ RDS インスタンスのインスタンスタイプ
次の表は、さまざまなエンジンを実行するプライマリ RDS インスタンスの詳細なインスタンスタイプリストを示しています。
エンジン | サポートされるプロダクトタイプ | サポートされるストレージタイプ | プライマリインスタンスタイプリスト |
MySQL | 標準および YiTian | クラウドディスクおよびプレミアムローカル SSD | |
PostgreSQL | 標準および YiTian | クラウドディスク | 標準および YiTian ApsaraDB RDS for PostgreSQL インスタンスのプライマリインスタンスタイプ |
SQL Server | N/A | クラウドディスク | |
MariaDB | 標準 | クラウドディスク |
コアメトリック
プライマリ RDS インスタンスのインスタンスタイプには、インスタンスファミリー、IOPS、I/O 帯域幅の 3 つのコアメトリックが含まれます。
インスタンスファミリー
インスタンスファミリーは、インスタンスのリソースが専用か共有かを定義し、インスタンスのパフォーマンスを直接決定します。
インスタンスファミリー | サポートされるストレージタイプ | 専用/共有リソース | 説明 |
共有 | クラウドディスク |
|
|
汎用 | クラウドディスク |
| 物理サーバが高負荷の場合、パフォーマンスが変動します。 |
プレミアムローカル SSD |
| ||
専用 | クラウドディスク | すべてのリソースがインスタンス専用です。 | リソース競合なしで安定したパフォーマンスを提供します。 |
プレミアムローカル SSD |
| ||
専有ホスト | プレミアムローカル SSD | すべてのリソースがインスタンス専用です。 | 最高レベルのパフォーマンス安定性と隔離を提供します。 |
IOPS
IOPS (Input/Output Operations Per Second) は、ストレージシステムが読み取りおよび書き込みリクエストを処理する能力を測定するもので、ランダム I/O パフォーマンスの主要なメトリックです。インスタンスの実際の IOPS は、そのインスタンスタイプ、ストレージタイプ、およびストレージ容量によって決まります。インスタンスタイプの最大 IOPS は、リファレンスとしてプライマリインスタンスタイプリストで確認できます。ただし、インスタンスタイプの実際の最大 IOPS は次のように計算されます:
プレミアムローカル SSD を使用するインスタンスの場合: 実際の最大 IOPS は、インスタンスタイプで定義された最大 IOPS と同じです。
クラウドディスクを使用するインスタンスの場合: 実際の最大 IOPS は、インスタンスタイプ、ストレージ容量、およびストレージタイプによって決まります。次の表の数式を使用して、実際の最大 IOPS を計算します:
ストレージタイプ
実際の最大 IOPS の数式 (ストレージ容量単位: GB)
プレミアム ESSD
I/O パフォーマンスバーストが有効な場合
min{インスタンスタイプの最大 IOPS, 1000000}I/O パフォーマンスバーストが無効な場合
min{インスタンスタイプの最大 IOPS, 1800 + 50 × ストレージ容量, 50000}ESSD
PL3
min{インスタンスタイプの最大 IOPS, 1800 + 50 × ストレージ容量, 1000000}PL2
min{インスタンスタイプの最大 IOPS, 1800 + 50 × ストレージ容量, 100000}PL1
min{インスタンスタイプの最大 IOPS, 1800 + 50 × ストレージ容量, 50000}標準 SSD
min{インスタンスタイプの最大 IOPS, 1800 + 30 × ストレージ容量, 25000}
例:
次の仕様を持つ RDS プライマリインスタンスの実際の最大 IOPS を計算します:
インスタンスタイプ:
mysql.x2.large.2cストレージ: サイズ 20 GB の PL1 ESSD
インスタンスのストレージタイプに基づき、min{インスタンスタイプの最大 IOPS, 1800 + 50 x ストレージ容量, 50000} の数式が適用されます。次の表は、数式で必要な 3 つの値を計算する方法を示しています:
値 | 説明 |
| インスタンスタイプリストによると、 |
| この値は次のように計算できます: |
| この値は PL1 ESSD でサポートされる最大 IOPS です。 |
数式によると、インスタンスの実際の最大 IOPS は 2800 であり、これは 3 つの値の中で最小です。
論理データベース I/O と物理ディスク I/O は 1 対 1 で対応していません。たとえば、MySQL の InnoDB ストレージエンジンのデフォルトのページサイズは 16 KB で、ディスクの基盤となるストレージブロックサイズは 4 KB です。その結果、ディスクから 1 つのデータベースページをフェッチする単一の論理読み取りは、4 つの異なる物理ディスク I/O に変換されます。
I/O 操作を処理するデータベースの能力は、基盤となるディスク IOPS だけでなく、データベースエンジンのページサイズによっても決まります。これは、単一の論理データベースページの読み取りに複数の物理ディスク I/O が必要になる場合があるためです。たとえば、4 KB のブロックサイズのディスクで 1,000 の物理 I/O がある場合、デフォルトのページサイズが 16 KB の RDS for MySQL インスタンスは 250 の論理 I/O 操作を完了できますが、デフォルトのページサイズが 8 KB の RDS for SQL Server インスタンスは 500 の論理 I/O 操作を完了できます。
I/O 帯域幅 (スループット)
I/O 帯域幅はスループットとも呼ばれ、ストレージシステムがシーケンシャルな読み取りおよび書き込み操作を処理する能力を測定するもので、シーケンシャル I/O パフォーマンスの主要なメトリックです。インスタンスの実際の I/O 帯域幅は、そのインスタンスタイプ、ストレージタイプ、およびストレージ容量によって決まります。インスタンスタイプの最大 I/O 帯域幅は、リファレンスとしてプライマリインスタンスタイプリストで確認できます。ただし、インスタンスタイプの実際の最大 I/O 帯域幅は、次の表の数式を使用して計算されます:
ストレージタイプ | 実際の最大 I/O 帯域幅の数式 (単位: MB/s, ストレージ容量単位: GB) | |
プレミアム ESSD | I/O パフォーマンスバーストが有効な場合 |
|
I/O パフォーマンスバーストが無効な場合 |
| |
ESSD | PL3 |
|
PL2 |
| |
PL1 |
| |
標準 SSD |
| |
例:
次の仕様を持つ RDS プライマリインスタンスの実際の最大 I/O 帯域幅を計算します:
インスタンスタイプ:
mysql.x2.large.2cストレージ: サイズ 5,000 GB の PL3 ESSD
インスタンスのストレージタイプに基づき、min{インスタンスタイプの最大 I/O 帯域幅, 120 + 0.5 × ストレージ容量, 4000} の数式が適用されます。次の表は、数式で必要な 3 つの値を計算する方法を示しています:
値 | 説明 |
| インスタンスタイプリストによると、 |
| この値は次のように計算できます: |
| この値は PL3 ESSD でサポートされる最大 I/O 帯域幅です。 |
数式によると、インスタンスの実際の最大 I/O 帯域幅は 192 であり、これは 3 つの値の中で最小です。
IOPS と I/O 帯域幅の関係
IOPS と I/O 帯域幅は独立したメトリックではなく、ストレージパフォーマンスの 2 つの相互に関連する側面です。それらの関係は、実行される I/O 操作のサイズによって次のように定義されます:
I/O 帯域幅 (MB/s) = IOPS × I/O サイズ (KB) / 1024。
I/O ブロックサイズとは、単一のディスク I/O 操作のサイズを指し、クラウドディスクではデフォルトで 4 KB です。データベースのページサイズを指すものではありません。
この数式の I/O サイズ は、単一のディスク操作の物理ブロックサイズ (例: 多くのクラウドディスクでデフォルトで 4 KB) を指し、データベースエンジンの論理ページサイズではありません。
制約: ほとんどの場合、IOPS と I/O 帯域幅は同時に上限に達しません。
4 KB などの小さい I/O ブロックサイズで IOPS が上限に達した場合、インスタンスの I/O 帯域幅は上限に達しない可能性があります。この場合、IOPS がパフォーマンスボトルネックになります。
256 KB などの大きい I/O ブロックサイズで I/O 帯域幅が上限に達した場合、インスタンスの IOPS は上限に達しない可能性があります。この場合、I/O 帯域幅がパフォーマンスボトルネックになります。
よくある質問
Q1: エントリーレベルのインスタンスタイプがエンタープライズレベルのインスタンスタイプよりもパフォーマンスが高いように見えるのはなぜですか?
A: エントリーレベルのインスタンスタイプは通常、共有または汎用インスタンスファミリーに属します。エンタープライズレベルのインスタンスタイプは通常、専用インスタンスファミリーに属します。実際には、エンタープライズレベルのインスタンスタイプは、専用の CPU およびメモリリソースを持っているため、より安定しています。違いの詳細については、「インスタンスファミリー」をご参照ください。
Q2: 購入可能なリソースを照会するにはどうすればよいですか?
A: 購入ページで利用可能なリソースを照会するか、DescribeAvailableResource 操作を呼び出すことができます。
Q3: 1 秒あたりのクエリ数 (QPS) と 1 秒あたりのトランザクション数 (TPS) が表示されないのはなぜですか?
A: ApsaraDB RDS インスタンスの QPS と TPS を測定するには、インスタンスに関連オブジェクトをデプロイしてテストを実行する必要があります。同じタイプのインスタンスの QPS と TPS は、業務システムと実装方法によって大きく異なる場合があります。QPS と TPS のテスト方法の詳細については、「Performance Testing ガイドライン」をご参照ください。
関連トピック
ApsaraDB RDS では、MySQL 読み取り専用インスタンス、SQL Server 読み取り専用インスタンス、PostgreSQL 読み取り専用インスタンスなどの読み取り専用インスタンスを追加することで、読み取りパフォーマンスをスケールすることもできます。読み取り専用インスタンスのインスタンスタイプの詳細については、「読み取り専用インスタンスタイプ」をご参照ください。
プライマリインスタンスタイプを選択した後、インスタンスを作成して使用できます。詳細については、「ApsaraDB RDS for MySQL インスタンスをすばやく作成する」、「ApsaraDB RDS for SQL Server インスタンスをすばやく作成する」、および「ApsaraDB RDS for PostgreSQL インスタンスをすばやく作成する」をご参照ください。