Amazon RDS DB インスタンスストレージ
Amazon RDS for Db2、Amazon RDS for MariaDB、Amazon RDS for PostgreSQL、Amazon RDS for Oracle、および Amazon RDS for Microsoft SQL Server の DB インスタンスは、データベースおよびログのストレージに Amazon Elastic Block Store (Amazon EBS) ボリュームを使用します。
場合によっては、データベースワークロードは、プロビジョニングした IOPS を 100% 到達できません。詳細については、「データベースのパフォーマンスに影響する要因」を参照してください。
インスタンスストレージの料金の詳細については、「Amazon RDS の料金
トピック
Amazon RDS ストレージタイプ
Amazon RDS は 3 種類のストレージタイプを提供します。プロビジョンド IOPS SSD (別名 io1 および io2 Block Express)、汎用 SSD (別名 gp2 および gp3)、およびマグネティック (別名スタンダード) です。これらはパフォーマンス特性と料金が異なるため、データベースのワークロードに応じてストレージのパフォーマンスとコストを調整できます。最大 64 テビバイト (TiB) のストレージを備えた Db2、MySQL、MariaDB、Oracle、SQL Server、および PostgreSQL の RDS DB インスタンスを作成できます。RDS for Db2 は、gp3 およびマグネティックストレージタイプをサポートしていません。
次のリストでは、この 3 つの種類のストレージタイプを簡略に説明しています。
-
プロビジョンド IOPS SSD - プロビジョンド IOPS ストレージは、低 I/O レイテンシーおよび一貫した I/O スループットが必要となる I/O 負荷の高いワークロード (特にデータベースワークロード) のニーズを満たすように設計されています。プロビジョンド IOPS ストレージは本稼働環境に最適です。
ストレージサイズの範囲を含むプロビジョンド IOPS ストレージの詳細については、「プロビジョンド IOPS SSD ストレージ」を参照してください。
-
汎用 SSD - 汎用 SSD ボリュームは、中規模の DB インスタンスで実行しているさまざまなワークロードに対応できるコスト効率の高いストレージとして使用できます。汎用ストレージは、開発およびテスト環境に適しています。
ストレージサイズの範囲を含む汎用 SSD ストレージの詳細については、「汎用 SSD ストレージ」を参照してください。
-
マグネティック - また、Amazon RDS は下位互換性のためにマグネティックストレージをサポートしています。新しいストレージが必要な場合には、汎用 SSD またはプロビジョンド IOPS SSD の使用が推奨されます。マグネティックストレージでの DB インスタンスのストレージ量の上限は、3 TiB です。詳細については、「マグネティックストレージ (レガシー、非推奨)」を参照してください。
汎用 SSD またはプロビジョンド IOPS SSD を選択すると、選択したエンジンと要求されるストレージの量に応じて、Amazon RDS は次の表に示すように複数のボリュームに自動的にストライピングしてパフォーマンスを向上させます。
データベースエンジン | Amazon RDS ストレージサイズ | プロビジョニングされたボリューム数 |
---|---|---|
Db2 | 400 GiB 未満 | 1 |
Db2 | 400~65,536 GiB | 4 |
MariaDB、MySQL、PostgreSQL | 400 GiB 未満 | 1 |
MariaDB、MySQL、PostgreSQL | 400~65,536 GiB | 4 |
Oracle | 200 GiB 未満 | 1 |
Oracle | 200~65,536 GiB | 4 |
SQL Server | すべて | 1 |
汎用 SSD ボリュームまたはプロビジョンド IOPS SSD ボリュームを変更すると、次の順に状態が変更されます。ボリュームが optimizing
状態である場合、ボリュームのパフォーマンスはソースとターゲットの設定仕様の中間にあります。過渡的ボリュームのパフォーマンスは、2 つの仕様のうち最低のものを下回ることはありません。
重要
インスタンスのストレージを 1 つのボリュームから 4 つのボリュームに変更したり、磁気ストレージを使用してインスタンスを変更したりする場合、Amazon RDS は Elastic Volumes 機能を使用しません。代わりに、Amazon RDS は新しいボリュームをプロビジョニングし、古いボリュームから新しいボリュームにデータを透過的に移動します。このオペレーションは、古いボリュームと新しいボリュームの両方で大量の IOPS とスループットを消費します。ボリュームのサイズと変更中に発生するデータベースワークロードの量によっては、RDS インスタンスが Modifying
状態のままであっても、この操作は大量の IOPS を消費し、I/O レイテンシーを大幅に増加させ、完了するまでに数時間かかる場合があります。
プロビジョンド IOPS SSD ストレージ
高速で一貫した I/O 性能を必要とするすべての本稼働アプリケーションに、プロビジョンド IOPS ストレージをお勧めします。プロビジョンド IOPS ストレージは、予測可能なパフォーマンスと一貫して低いレイテンシーを実現するストレージタイプです。プロビジョンド IOPS ストレージは、一貫したパフォーマンスが求められるオンライントランザクション処理 (OLTP) ワークロード向けに最適化されています。プロビジョンド IOPS は、このようなワークロードのパフォーマンス調整に役立ちます。
DB インスタンスの作成時に、IOPS レートとボリュームのサイズを指定します。Amazon RDS では、変更するまでその IOPS レートが DB インスタンスに提供されます。
Amazon RDS は、2 種類のプロビジョンド IOPS SSD ストレージ (io2 Block Express ストレージ (推奨) および io1 ストレージ (旧世代)) を提供します。
io2 Block Express ストレージ (推奨)
I/O 集中型でレイテンシーの影響を受けやすいワークロードでは、プロビジョンド IOPS SSD io2 Block Express ストレージを使用して 1 秒あたり最大 256,000 回の I/O オペレーション (IOPS) を実現できます。io2 Block Express ボリュームのスループットは、ボリュームごとにプロビジョニングされる IOPS の量と、実行される I/O 操作のサイズによって異なります。
AWS Nitro System ベースの RDS io2 ボリュームは、すべて io2 Block Express ボリュームで、平均レイテンシーはサブミリ秒です。AWS Nitro システムベースでない DB インスタンスは io2 ボリュームです。
次の表は、各データベースエンジンのプロビジョンド IOPS および最大スループットの範囲とストレージサイズの範囲を示しています。
データベースエンジン | ストレージサイズの範囲 | プロビジョンド IOPS の範囲 | 最大スループット |
---|---|---|---|
Db2、MariaDB、MySQL、および PostgreSQL | 100~65,536 GiB | 1,000~256,000 IOPS | 16,000 MiB/秒 |
Oracle | 100~199 GiB | 1,000~199,000 IOPS | 16,000 MiB/秒 |
Oracle | 200~65,536 GiB | 1,000~256,000 IOPS | 16,000 MiB/秒 |
SQL Server | 20~65,536 GiB | 1,000~256,000 IOPS | 16,000 MiB/秒 |
IOPS とストレージサイズ範囲には、次の制約があります。
-
割り当て済みストレージに対する IOPS の比率 (GiB 単位) は、1000:1 以下でなければなりません。AWS Nitro システムベースでない DB インスタンスの場合、この比率は 500:1 です。
-
最大 IOPS は、256 GiB 以上でプロビジョニングできます (1,000 IOPS × 256 GiB = 256,000 IOPS)。AWS Nitro システムベースでない DB インスタンスの場合、最大 IOPS は 512 GiB (500 IOPS x 512 GiB = 256,000 IOPS) でプロビジョニングできます。
-
スループットはプロビジョンド IOPS ごとに最大 0.256 MiB/秒に比例して拡張できます。16 KiB の I/O サイズでは 256,000 IOPS、256 KiB の I/O サイズでは 16,000 IOPS 以上で 4,000 MiB/秒の最大スループットを達成できます。AWS Nitro システムベースでない DB インスタンスの場合、16 KiB の I/O サイズで 128,000 IOPS で 2,000 MiB/秒の最大スループットを達成できます。
-
ストレージの自動スケーリングを使用している場合は、IOPS と最大ストレージしきい値 (GiB 単位) の間でも同じ比率が適用されます。ストレージのオートスケーリングの詳細については、「Amazon RDS ストレージの自動スケーリングによる容量の自動管理」を参照してください。
Amazon RDS io2 Block Express ボリュームは、次の AWS リージョン で使用できます。
-
アジアパシフィック (香港)
-
アジアパシフィック (ムンバイ)
-
アジアパシフィック (ソウル)
-
アジアパシフィック (シンガポール)
-
アジアパシフィック (シドニー)
-
アジアパシフィック (東京)
-
カナダ (中部)
-
欧州 (フランクフルト)
-
欧州 (アイルランド)
-
欧州 (ロンドン)
-
欧州 (ストックホルム)
-
中東 (バーレーン)
-
米国東部 (オハイオ)
-
米国東部 (バージニア北部)
-
米国西部 (北カリフォルニア)
-
米国西部 (オレゴン)
io1 ストレージ (旧世代)
I/O 集中型のワークロードでは、プロビジョンド IOPS SSD io1 ストレージを使用して 1 秒あたり最大 256,000 回の I/O オペレーション (IOPS) を実現できます。io1 ボリュームのスループットは、ボリュームごとにプロビジョニングされる IOPS の量と、実行される I/O 操作のサイズによって異なります。利用可能な場合、io2 Block Express ストレージの使用をお勧めします。
次の表は、各データベースエンジンのプロビジョンド IOPS および最大スループットの範囲とストレージサイズの範囲を示しています。
データベースエンジン | ストレージサイズの範囲 | プロビジョンド IOPS の範囲 | 最大スループット |
---|---|---|---|
Db2、MariaDB、MySQL、および PostgreSQL | 100~399 GiB | 1,000~19,950 IOPS | 500 MiB/秒 |
Db2、MariaDB、MySQL、および PostgreSQL | 400~65,536 GiB | 1,000~256,000 IOPS | 4,000 MiB/秒 |
Oracle | 100~199 GiB | 1,000~9,950 IOPS | 500 MiB/秒 |
Oracle | 200~65,536 GiB | 1,000~256,000 IOPS¹ | 4,000 MiB/秒 |
SQL Server | 20~16,384 GiB | 1,000~64,000 IOPS² | 1,000 MiB/秒 |
注記
¹ Oracle の場合、最大 256,000 IOPS は r5b インスタンスタイプでのみプロビジョンできます。
² SQL Server の場合、最大 IOPS の 64,000 は、m5*、m6i、r5*、r6i、および z1d インスタンスタイプにある Nitro-based のインスタンスでのみ保証されます。その他のインスタンスタイプは、最大 32,000 IOPS までのパフォーマンスを保証します。
IOPS とストレージサイズ範囲には、次の制約があります。
-
割り当て済みストレージに対する IOPS の比率 (GiB 単位) は、RDS for SQL Server では 1 ~ 50 で、他の RDS DB エンジンでは 0.5 ~ 50 である必要があります。
-
ストレージの自動スケーリングを使用している場合は、IOPS と最大ストレージしきい値 (GiB 単位) の間でも同じ比率が適用されます。
ストレージのオートスケーリングの詳細については、「Amazon RDS ストレージの自動スケーリングによる容量の自動管理」を参照してください。
プロビジョンド IOPS ストレージとマルチ AZ 配置またはリードレプリカの組み合わせ
本稼働 OLTP ユースケースの場合、耐障害性を強化できるマルチ AZ 配置を高速で予測可能なパフォーマンスを可能にするプロビジョンド IOPS ストレージで使用することをお勧めします。
また、MySQL、MariaDB または PostgreSQL 用リードレプリカでもプロビジョンド IOPS ストレージを使用できます。リードレプリカのストレージタイプは、プライマリ DB インスタンスのストレージタイプとは異なります。例えば、リードレプリカには汎用 SSD を使用し、プライマリ DB インスタンスにはプロビジョンド IOPS SSD ストレージを使用することで、コストを削減できます。ただし、この場合のリードレプリカのパフォーマンスは、プライマリ DB インスタンスとリードレプリカの両方がプロビジョンド IOPS ストレージを使用するように設定した場合のものと異なる可能性があります。
プロビジョンド IOPS ストレージのコスト
プロビジョンド IOPS ストレージでは、月別に実際に使用したかどうかに関係なく、プロビジョンドされたリソースに応じて課金されます。
料金の詳細については、「Amazon RDS の料金
Amazon RDS プロビジョンド IOPS ストレージから最高のパフォーマンスを得る
ワークロードが I/O 限定の場合、プロビジョンド IOPS ストレージを使用すると、システムが同時に処理できる I/O リクエストの数を増大することができます。同時処理数が増加すると、I/O リクエストがキューにとどまる時間が縮小するため、レイテンシーが減少します。レイテンシーが減少すると、データベースのコミット処理が高速になり、その結果、応答時間が短縮され、データベースのスループットが向上します。
プロビジョンド IOPS ストレージでは、IOPS を指定することにより I/O 容量を予約する方法が提供されます。ただし、他のシステム容量属性と同様に、負荷時の最大スループットは初期に使用されるリソースによって制限されます。そのリソースは、ネットワーク帯域幅、CPU、メモリ、またはデータベースの内部リソースのいずれかである場合があります。
汎用 SSD ストレージ
汎用ストレージは、レイテンシーまたはパフォーマンスの影響をあまり受けない、ほとんどのデータベースワークロードで使用できる、コスト効果に優れたストレージです。
注記
汎用ストレージを使用する DB インスタンスは、プロビジョンド IOPS ストレージを使用するインスタンスよりもレイテンシーが大幅に大きくなります。これらの操作の後に、レイテンシーが最小の DB インスタンスを必要とする場合は、プロビジョンド IOPS SSD ストレージ を使用することをお勧めします。
Amazon RDS ストレージは、gp3 ストレージ (推奨) と gp2 ストレージ (旧世代) の 2 種類の汎用ストレージを提供します。
gp3 ストレージ (推奨)
汎用 gp3 ストレージボリュームを使用することで、ストレージ容量に関係なくストレージパフォーマンスをカスタマイズできます。ストレージパフォーマンスは、1 秒あたりの I/O オペレーションの数 (IOPS) と、ストレージボリュームが読み取りと書き込みを実行できる速度 (ストレージスループット) を組み合わせたものです。gp3 ストレージボリュームでは、Amazon RDS は 3000 IOPS と 125 MiB/秒のベースラインストレージパフォーマンスを提供します。
RDS for SQL Server を除くすべての RDS DB エンジンでは、gp3 ボリュームのストレージサイズが一定のしきい値に達すると、ベースラインストレージパフォーマンスは増加します。これは、ストレージが 1 つのボリュームではなく 4 つの論理ボリュームを使用するボリュームストライピングによるものです。RDS for SQL Server はボリュームストライピングをサポートしていないため、しきい値はありません。ストライピングボリュームでは、Amazon RDS は 12,000 IOPS および 500 MiB/秒のベースラインストレージパフォーマンスを提供します。
しきい値を含む、Amazon RDS DB エンジン上の gp3 ボリュームのストレージパフォーマンスを次の表に示します。
DB エンジン | ストレージサイズ | ベースラインストレージパフォーマンス | プロビジョンド IOPS の範囲 | プロビジョニングされたストレージのスループットの範囲 |
---|---|---|---|---|
Db2、MariaDB、MySQL、および PostgreSQL | 20~399 GiB | 3,000 IOPS/125 MiB/秒 | 該当なし | 該当なし |
Db2、MariaDB、MySQL、および PostgreSQL | 400~65,536 GiB | 12,000 IOPS/500 MiB/秒 | 12,000~64,000 IOPS | 500~4,000 MiB/秒 |
Oracle | 20~199 GiB | 3,000 IOPS/125 MiB/秒 | 該当なし | 該当なし |
Oracle | 200~65,536 GiB | 12,000 IOPS/500 MiB/秒 | 12,000~64,000 IOPS | 500~4,000 MiB/秒 |
SQL Server | 20~16,384 GiB | 3,000 IOPS/125 MiB/秒 | 3,000~16,000 IOPS | 125~1,000 MiB/秒 |
RDS for SQL Server を除くすべての DB エンジンで、ストレージサイズがしきい値以上の場合、追加の IOPS とストレージスループットをプロビジョニングできます。RDS for SQL Server では、使用可能な任意のストレージサイズに対して追加の IOPS とストレージスループットをプロビジョニングできます。すべての DB エンジンについて、追加でプロビジョニングされたストレージのパフォーマンスに対してのみお支払いいただきます。詳細については、「Amazon RDS の料金
追加されるプロビジョンド IOPS とストレージスループットはストレージサイズには依存しませんが、相互に関連しています。MariaDB と MySQL の IOPS を 32,000 より高くすると、ストレージのスループットの値は 500 MiBps から自動的に増加します。例えば、RDS for MySQL で IOPS を 40,000 に設定した場合、ストレージのスループットは 625 MiBps 以上でなければなりません。Db2、Oracle、PostgreSQL、SQL Server の DB インスタンスでは、自動的な増加は行われません。
マルチ AZ DB クラスターの場合、Amazon RDS はプロビジョンした IOPS に基づいてスループット値を自動的に設定します。ユーザーは、このスループット値は変更できません。
RDS 上の gp3 ボリュームのストレージパフォーマンス値には、次の制約事項があります。
-
IOPS に対するストレージスループットの最大比率は、サポートされているすべての DB エンジンで 0.25 です。
-
割り当て済みストレージに対する IOPS の最小比率 (GiB 単位) は、RDS for SQL Server では 0.5 です。サポートされている他の DB エンジンに最小比率はありません。
-
割り当て済みストレージに対する IOPS の最大比率は、サポートされているすべての DB エンジンで 500 です。
-
ストレージの自動スケーリングを使用している場合は、IOPS と最大ストレージしきい値 (GiB 単位) の間でも同じ比率が適用されます。
ストレージのオートスケーリングの詳細については、「Amazon RDS ストレージの自動スケーリングによる容量の自動管理」を参照してください。
gp2 ストレージ (旧世代)
アプリケーションで高いストレージパフォーマンスを必要としない場合は、汎用 SSD gp2 ストレージを使用できます。gp2 ストレージのベースライン I/O パフォーマンスは、1 GiB あたり 3 IOPS で、最低 100 IOPS です。この関係は、ボリュームが大きいほどパフォーマンスが向上することを意味します。例えば、1 つの 100 GiB のボリュームのベースラインパフォーマンスは 300 IOPS です。1 つの 1,000 GiB ボリュームのベースラインパフォーマンスは 3,000 IOPS です。
サイズが 1,000 GiB 未満の個別の gp2 ボリュームでも、長期間にわたって 3,000 IOPS をバーストする性能があります。ボリューム I/O クレジットバランスによって、バーストパフォーマンスが決まります。ベースラインパフォーマンスと I/O クレジットバランスがパフォーマンスにどのように影響を与えるかについての詳細は、AWS データベースブログの投稿「Understanding Burst vs. Baseline Performance with Amazon RDS and GP2
多くのワークロードは、バーストバランスを消費することがありません。しかしながら、ワークロードによっては、3,000 IOPS のバーストストレージクレジットバランスが枯渇する場合があるため、ワークロードのニーズを満たすようにストレージ容量を計画する必要があります。
4,000 GiB を超える gp2 ボリュームの場合、ベースラインパフォーマンスはバーストパフォーマンスよりも大きくなります。このようなボリュームの場合、ベースラインパフォーマンスが 3,000 IOPS バーストパフォーマンスよりも優れているため、バーストは関係ありません。ただし、特定のエンジンとサイズの DB インスタンスでは、ストレージが 4 つのボリュームにストライピングされ、1 つのボリュームの 4 倍のベースラインスループットと 4 倍のバースト IOPS が提供されます。
Amazon RDS DB エンジンでのさまざまなストレージサイズの gp2 ボリュームのストレージパフォーマンスを次の表に示します。
DB エンジン | RDS ストレージサイズ | ベースライン IOPS の範囲 | ベースラインスループットの範囲 | バースト IOPS |
---|---|---|---|---|
MariaDB、MySQL、PostgreSQL | 5~399 GiB¹ | 100~197 IPS | 128~250 MiB/秒 | 3,000 |
MariaDB、MySQL、PostgreSQL | 400~1,335 GiB | 1,200~4,005 IOPS | 512~1,000 MiB/秒 | 12,000 |
MariaDB、MySQL、PostgreSQL | 1,336~3,999 GiB | 4,008~11,997 IOPS | 1,000 MiB/秒 | 12,000 |
MariaDB、MySQL、PostgreSQL | 4,000~65,536 GiB | 12,000~64,000 IOPS | 1,000 MiB/秒 | 該当なし² |
Oracle | 20~199 GiB | 100~597 IPS | 128~250 MiB/秒 | 3,000 |
Oracle | 200~1,335 GiB | 600~4,005 IOPS | 500~1,000 MiB/秒 | 12,000 |
Oracle | 1,336~3,999 GiB | 4,008~11,997 IOPS | 1,000 MiB/秒 | 12,000 |
Oracle | 4,000~65,536 GiB | 12,000~64,000 IOPS | 1,000 MiB/秒 | 該当なし² |
SQL Server | 20~333 GiB | 100~999 IOPS | 128~250 MiB/秒 | 3,000 |
SQL Server | 334~999 GiB | 1,002~2,997 IOPS | 250 MiB/秒 | 3,000 |
SQL Server | 1,000~16,384 GiB | 3,000~16,000 IOPS | 250 MiB/秒 | 該当なし² |
注記
¹ AWS Management Console を使用すると、db.t3.micro および db.t4g.micro DB インスタンスクラスの無料利用枠で 5 GiB 以上のストレージサイズの DB インスタンスを作成できます。それ以外の場合、最小ストレージサイズは 20 GiB です。この制限は、AWS CLI および RDS API には適用されません。
² ボリュームのベースラインパフォーマンスが最大バーストパフォーマンスを超えた場合。
ソリッドステートドライブ (SSD) ストレージタイプの比較
次の表に Amazon RDS が使用する SSD ストレージボリュームのユースケースとパフォーマンス特性を示します。
特徴 | プロビジョンド IOPS (io2 Block Express) | プロビジョンド IOPS (io1) | 汎用 (gp3) | 汎用 (gp2) |
---|---|---|---|---|
説明 |
RDS ストレージポートフォリオ内で最高のパフォーマンス (IOPS、スループット、レイテンシー) レイテンシーの影響を受けやすいトランザクションワークロード向けに設計されています |
一貫したストレージパフォーマンス (IOPS、スループット、レイテンシー) レイテンシーの影響を受けやすいトランザクションワークロード向けに設計されています |
ストレージ、IOPS、スループットを個別にプロビジョニングできる柔軟性 さまざまなトランザクションワークロードに対して、料金パフォーマンスのバランスをとります。 |
バースト可能な IOPS を提供します。 さまざまなトランザクションワークロードに対して、料金パフォーマンスのバランスをとります。 |
ユースケース |
サブミリ秒のレイテンシーと最大 256,000 IOPS の持続的な IOPS パフォーマンスを必要とするビジネスクリティカルなトランザクションワークロード。 |
最大 256,000 IOPS の持続的な IOPS パフォーマンスを必要とするトランザクションワークロード。 |
開発/テスト環境の中規模リレーショナルデータベースで実行される幅広いワークロード |
開発/テスト環境の中規模リレーショナルデータベースで実行される幅広いワークロード |
レイテンシー |
サブミリ秒 (99.9% の期間一貫して提供) |
1 桁ミリ秒 (99.9% の期間一貫して提供) |
1 桁ミリ秒 (99% の期間一貫して提供) |
1 桁ミリ秒 (99% の期間一貫して提供) |
ボリュームサイズ |
100~65,536 GiB |
100~65,536 GiB (RDS for SQL Server では 20–16,384 GiB) |
20~65,536 GiB (RDS for SQL Server では 16,384 GiB) |
20~65,536 GiB (RDS for SQL Server では 16,384 GiB) |
最大 IOPS |
256,000 |
256,000 (RDS for SQL Server では 64,000) |
64,000 (RDS for SQL Server では 16,000) |
64,000 (RDS for SQL Server では 16,000) 注記gp2 ストレージに IOPS を直接プロビジョニングすることはできません。IOPS は割り当てられたストレージサイズによって異なります。 |
最大スループット |
プロビジョンド IOPS に基づいて最大 4,000 MB/秒まで拡張 スループットはプロビジョンド IOPS ごとに最大 0.256 MiB/秒に比例して拡張できます。16 KiB の I/O サイズでは 256,000 IOPS、256 KiB の I/O サイズでは 16,000 IOPS 以上で 4,000 MiB/秒の最大スループットを達成できます。 AWS Nitro システムベースでないインスタンスの場合、16 KiB の I/O サイズで 128,000 IOPS で最大 2,000 MiB/秒のスループットを達成できます。 |
プロビジョンド IOPS に基づいて最大 4,000 MB/秒まで拡張 |
最大 4,000 MB/秒の追加のスループットをプロビジョニング (RDS for SQL Server では 1,000 MB/秒) |
1,000 MB/秒 (RDS for SQL Server では 250 MB/秒) |
AWS CLI および RDS API 名 | io2 | io1 | gp3 | gp2 |
マグネティックストレージ (レガシー、非推奨)
また、Amazon RDS は下位互換性のためにマグネティックストレージをサポートしています。新しいストレージが必要な場合には、汎用 SSD またはプロビジョンド IOPS SSD の使用が推奨されます。次に示すのは、マグネティックストレージにおけるいくつかの制限です。
SQL Server データベースエンジン使用時には、ストレージをスケーリングできません。
-
SQL Server データベースエンジンの使用時には、ストレージを別のストレージタイプに変換できません。
-
ストレージのオートスケーリングをサポートしていません。
Elastic ボリュームをサポートしていません。
最大サイズが 3 TiB に制限されます。
最大で 1000 IOPS に制限されます。
専用ログボリューム (DLV)
Amazon RDS コンソール、AWS CLI、または Amazon RDS API を使用して、プロビジョンド IOPS (PIOPS) ストレージを使用する DB インスタンスの専用ログボリューム (DLV) を使用できます。DLV は、PostgreSQL データベーストランザクションログと MySQL/MariaDB REDO ログおよびバイナリログを、データベーステーブルを含んでいるボリュームとは別のストレージボリュームに移動します。DLV を使用すると、トランザクション書き込みロギングの効率と一貫性が向上します。DLV は、割り当てられたストレージの容量が大きいデータベース、1 秒あたりの I/O (IOPS) 要件が高い、または遅延の影響を受けやすいワークロードがあるデータベースに最適です。
DLV は PIOPS ストレージ (io1 and io2 Block Express) でサポートされており、1,000 GiB の固定サイズと 3,000 のプロビジョンド IOPS で作成されます。
注記
DLV は汎用ストレージ (gp2 および gp3) ではサポートされていません。
Amazon RDS は、次のバージョンについて、すべての AWS リージョン の DLV でサポートします。
MariaDB 10.6.7 以上の 10 バージョン
MySQL 8.0.28 以上の 8 バージョン
PostgreSQL 13.10 以降のバージョン 13、14.7 以降のバージョン 14、15.2 以降のバージョン 15、および 16.1 以降のバージョン 16
RDS は、マルチ AZ 配置で DLV をサポートします。マルチ AZ インスタンスを変更または作成すると、プライマリとセカンダリの両方に DLV が作成されます。
RDS はリードレプリカによる DLV をサポートします。プライマリ DB インスタンスで DLV が有効になっている場合、DLV を有効にした後に作成されたすべてのリードレプリカにも DLV が設定されます。DLV への切り替え前に作成されたリードレプリカは、明示的に変更されない限り、有効になりません。DLV を有効にする前にプライマリインスタンスにアタッチされていたすべてのリードレプリカも、DLV を使用するように手動で変更することが推奨されます。
DB インスタンスの DLV 設定を変更したら、DB インスタンスを再起動する必要があります。
DLV の有効化の詳細については、「専用ログボリューム (DLV) を使用する」を参照してください。
データベースのパフォーマンスのモニタリング
Amazon RDS では、DB インスタンスの動作を特定するためにいくつかのメトリクスを利用できます。Amazon RDS マネジメントコンソールのインスタンスの概要ページでメトリクスを表示できます。また、Amazon CloudWatch を使用して、これらのメトリクスをモニタリングすることもできます。詳細については、「Amazon RDS コンソールでのメトリクスの表示」を参照してください。拡張モニタリングは、より詳細な I/O メトリクスを提供します。詳細については、「拡張モニタリングを使用した OS メトリクスのモニタリング」を参照してください。
以下のメトリクスは、DB インスタンスのパフォーマンスをモニタリングするために便利です。
-
DiskQueueDepth
- サービスされるのを待つキュー内の I/O リクエスト数。アプリケーションによって送信されても、デバイスが他の I/O リクエストの処理でビジー状態のため、デバイスに送信されていない I/O リクエストです。キューでの待ち時間は、レイテンシーとサービス時間 (メトリクスとしては使用できない) のコンポーネントです。このメトリックは、特定の時間間隔の平均キュー深度として報告されます。Amazon RDS は、キューの深さを 1 分間隔で報告します。キューの深度の典型的な値は、0 から数百までの範囲です。 -
EBSByteBalance%
- RDS データベースのバーストバケットに残っているスループットクレジットの割合。このメトリクスは基本モニタリング専用です。メトリクス値は、データベースファイルを含むボリュームのみではなく、ルートボリュームを含むすべてのボリュームのスループットに基づいています。このメトリクスがゼロに近づくと、DB インスタンスのコンピューティングキャパシティーが不足していることを意味します。このような状況が定期的に発生する場合は、db.r6g.large から db.r6g.xlarge など、より大きなインスタンスクラスサイズにアップグレードすることを検討してください。詳細については、「DB インスタンスクラス」を参照してください。
-
ReadIOPS
およびWriteIOPS
- 1 秒ごとの I/O オペレーションの数。このメトリクスは、指定された時間間隔の平均 IOPS として報告されます。Amazon RDS は、IOPS の読み取りと書き込みを 1 分間隔で個別に報告します。TotalIOPS
は、IOPS の読み取りおよび書き込み IOPS の合計です。IOPS の典型的な値は、1 秒あたり 0 から数万の範囲内です。TotalIOPS
値が DB インスタンスに設定したプロビジョンド IOPS 値に定期的に近づく場合は、プロビジョンド IOPS (io1、io2 Block Express、gp3 ストレージタイプ) を増やすことを検討してください。測定された IOPS 値は、個別の I/O オペレーションのサイズには依存しません。これは、I/O パフォーマンスの測定時に、I/O オペレーションの数のみではなく、インスタンスのスループットを見る必要があることを意味しています。
-
ReadLatency
およびWriteLatency
- I/O リクエスト送信から完了までの経過時間。このメトリクスは、指定された時間間隔の平均レイテンシーとして報告されます。Amazon RDS は 1 分間レイテンシーで読み取りおよび書き込み IOPS を個別に報告します。レイテンシーの一般的な値はミリ秒 (ms) です。 -
ReadThroughput
およびWriteThroughput
- ディスクへまたはディスクから転送される 1 秒ごとのバイト数。このメトリックは、特定の時間間隔の平均スループットとして報告されます。Amazon RDS は、1 分間隔の読み取りおよび書き込みスループットを個別に 1 秒あたりのバイト (B/秒) 単位で報告します。スループットの典型的な値は、0 から I/O チャネルの最大帯域幅までの範囲内です。スループット値が DB インスタンスの最大スループットに定期的に近づいている場合は、gp3 ストレージタイプを使用している場合は、より多くのストレージスループットのプロビジョニングを検討してください。
データベースのパフォーマンスに影響する要因
システムの活用状況、データベースワークロード、DB インスタンスは、データベースのパフォーマンスに影響する可能性があります。
システムの活用状況
次のシステム関連アクティビティは I/O 容量を消費するため、進行中に DB インスタンスのパフォーマンスを低下させる可能性があります。
-
マルチ AZ スタンバイの作成
-
リードレプリカの作成
-
ストレージタイプを変更する
データベースのワークロード
データベースまたはアプリケーションの設計によっては、平行処理問題、ロック、その他データベースの競合が発生します。このような場合、プロビジョニングされた帯域幅のすべてを直接使用できない場合があります。また、以下のワークロードに関連する状況が発生する場合があります。
-
基本的なインスタンスタイプのスループット制限に到達すること。
-
アプリケーションが十分な I/O オペレーションを進行していないため、キューの深度が 1 を大幅に下回ること。
-
一部の I/O 容量が未使用にもかかわらず、データベースでクエリの競合が発生すること。
場合によっては、制限に達している、またはほぼ制限に達しているシステムリソースがないにもかかわらず、スレッドを追加してもデータベースのトランザクションレートが増加しないことがあります。このような場合、ボトルネックはデータベース内の競合である可能性が最も高いです。最も一般的なのは行ロックとインデックスページロックの競合ですが、それ以外にも多くの可能性があります。このような状況では、データベースパフォーマンスチューニングのエキスパートに助言を求める必要があります。
DB インスタンスクラス
Amazon RDS DB インスタンスが最大限のパフォーマンスを発揮するように、現行世代のインスタンスタイプを十分な帯域幅で選択して、ストレージタイプをサポートします。例えば、Amazon EBS 最適化インスタンス,および 10 ギガビットのネットワーク接続のインスタンスを選択できます。
重要
使用しているインスタンスクラスによっては、RDS がプロビジョニングできる最大値よりも IOPS パフォーマンスが低下する場合があります。DB インスタンスクラスの IOPS パフォーマンスに関する詳細については、Amazon EC2 ユーザーガイドの「Amazon EBS 最適化インスタンス」を参照してください。DB インスタンスにプロビジョンド IOPS 値を設定する前に、インスタンスクラスの最大 IOPS を決定することをお勧めします。
最適なパフォーマンスを得るには、最新世代のインスタンスを使用してください。旧世代の DB インスタンスを使用すると、ストレージの上限が低くなります。
一部の古い 32 ビットファイルシステムでは、ストレージ容量が少ない場合があります。DB インスタンスのストレージ容量を確認するには、describe-valid-db-instance-modificationsAWS CLIコマンドを使用できます。
次のリストは、大部分の DB インスタンスクラスが各データベースエンジンに対して拡張できる最大ストレージを示しています。
-
Db2 – 64 TiB
-
MariaDB – 64 TiB
-
Microsoft SQL Server – 64 TiB
-
MySQL – 64 TiB
-
Oracle – 64 TiB
-
PostgreSQL – 64 TiB
次の表にいくつかの最大ストレージの例外を示します (TiB 単位)。io2 Block Express ストレージとは別のすべての RDS for Microsoft SQL Server DB インスタンスの最大ストレージは 16 TiB であるため、SQL Server のエントリはありません。
インスタンスクラス | Db2 | MariaDB | MySQL | Oracle | PostgreSQL |
---|---|---|---|---|---|
db.m3 - スタンダードインスタンスクラス | |||||
db.t4g – バーストパフォーマンスインスタンスクラス | |||||
db.t4g.medium | 該当なし | 16 | 16 | 該当なし | 32 |
db.t4g.small | 該当なし | 16 | 16 | 該当なし | 16 |
db.t4g.micro | 該当なし | 6 | 6 | 該当なし | 6 |
db.t3 – バーストパフォーマンスインスタンスクラス | |||||
db.t3.medium | 32 | 16 | 16 | 32 | 32 |
db.t3.small | 32 | 16 | 16 | 32 | 16 |
db.t3.micro | 該当なし | 6 | 6 | 32 | 6 |
db.t2 – バーストパフォーマンスインスタンスクラス |
サポートされているすべてのインスタンスクラスの詳細については、旧世代の DB インスタンス