Amazon RDS DB インスタンスのストレージを使用する
データを Amazon RDS に保存する方法を指定するには、DB インスタンスを作成または変更する際にストレージタイプを選択し、ストレージサイズを指定します。後で、量を増加するか、あるいは DB インスタンスを編集してストレージタイプを変更できます。ワークロードに使用されるストレージタイプについての詳細は、「Amazon RDS ストレージタイプ」を参照してください。
トピック
DB インスタンスストレージの容量を増加する
追加データ用にスペースが必要な場合には、既存の DB インスタンスのストレージをスケールアップできます。そのためには、Amazon RDS マネジメントコンソール、Amazon RDS API、または AWS Command Line Interface (AWS CLI) を使用できます。ストレージの制限に関する詳細は、「Amazon RDS DB インスタンスストレージ」を参照してください。
注記
ストレージを割り当てた後に DB インスタンスのストレージ容量を減らすことはできません。ストレージ割り当てを増やす場合は、少なくとも 10 パーセント単位で増やす必要があります。10 パーセントに満たない単位で増やそうとすると、エラーになります。
RDS for SQL Server DB インスタンス用のストレージのスケーリングは、汎用 SSD およびプロビジョンド IOPS SSD ストレージタイプでのみサポートされています。
必要に応じて対応できるように DB インスタンスの空きストレージ領域をモニタリングするには、Amazon CloudWatch アラームを作成することをお勧めします。CloudWatch アラームの設定の詳細については、「CloudWatch でのアラームの使用」を参照してください。
ストレージをスケーリングしても、通常、DB インスタンスの停止やパフォーマンスの低下は発生しません。DB インスタンスのストレージサイズを変更すると、DB インスタンスのステータスは [ストレージの最適化] になります。
注記
ストレージの最適化には数時間かかることがあります。その後 6 時間、またはインスタンスでストレージの最適化が完了するまでのいずれか長い方の時間まで、ストレージにそれ以上の変更を加えることはできません。ストレージ最適化の進捗状況は、AWS Management Console で、または describe-db-instances AWS CLI コマンドを使用して確認できます。
DB インスタンスのストレージを増加するには
-
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[データベース] を選択します。
-
変更する DB インスタンスを選択します。
-
Modify を選択します。
-
[ストレージ割り当て] に新しい値を入力します。現在値よりも大きい値である必要があります。
-
[次へ] を選択して、次の画面に移動します。
-
DB インスタンスのストレージの変更をすぐに適用するには、[変更のスケジュール] セクションの [すぐに適用] を選択します。
または、[次に予定されるメンテナンスウィンドウ中に適用します] を選択して、次のメンテナンスウィンドウ中に変更を適用します。
-
設定が適切な場合は、[Modify DB instance] (DB インスタンスの変更) を選択します。
DB インスタンスのストレージを増量するには、AWS CLI の modify-db-instance
コマンドを使用します。以下のパラメータを設定します。
--allocated-storage
– DB インスタンスに割り当てるストレージの量 (ギビバイト単位)。--apply-immediately
- すぐにストレージの変更を適用するには、--apply-immediately
を使用します。または
--no-apply-immediately
(デフォルト) を使用して、次のメンテナンスウィンドウ中に変更を適用します。変更が適用されると、すぐに停止が発生します。
ストレージの詳細については、「Amazon RDS DB インスタンスストレージ」を参照してください。
DB インスタンスのストレージを増やすには、Amazon RDS API オペレーション ModifyDBInstance
を使用します。以下のパラメータを設定します。
AllocatedStorage
– DB インスタンスに割り当てるストレージの量 (ギビバイト単位)。ApplyImmediately
- すぐに変更を適用するには、このオプションをTrue
に設定します。このオプションをFalse
(デフォルト) に設定して、次のメンテナンスウィンドウ中に変更を適用します。変更が適用されると、すぐに停止が発生します。
ストレージの詳細については、「Amazon RDS DB インスタンスストレージ」を参照してください。
Amazon RDS ストレージの自動スケーリングによる容量の自動管理
ワークロードが予測不能な場合は、Amazon RDS DB インスタンスのストレージの自動スケーリングを有効にすることができます。そのためには、Amazon RDS コンソール、Amazon RDS API、または AWS CLI を使用できます。
例えば、ユーザーの導入が急速に拡大している新しいモバイルゲームアプリケーションでこの機能を使用できます。この場合、急激に増加するワークロードは、利用可能なデータベースストレージを超過する可能性があります。データベースストレージを手動でスケールアップしなくても済むように、Amazon RDS ストレージの自動スケーリングを使用できます。
ストレージの自動スケーリングが有効になっている場合、Amazon RDS でデータベースでの空き領域が不足していることが検出されると、自動的にストレージがスケールアップされます。次の要因が当てはまる場合、Amazon RDS によって自動スケーリングが有効な DB インスタンスのストレージ変更が開始されます。
使用可能な空き領域は、割り当てられたストレージの 10% 未満です。
低ストレージ状態は 5 分以上続きます。
-
最後のストレージ変更、あるいはインスタンスでストレージの最適化が完了してから少なくとも 6 時間経過しています。
追加のストレージは、次のうちいずれか大きい方の増分です。
-
10 GiB
-
現在割り当てられているストレージの 10%
-
過去 1 時間の
FreeStorageSpace
メトリクスから、今後 7 時間以内にストレージが現在割り当てられているストレージサイズを超えると予測されます。メトリクスの詳細については、Amazon CloudWatch によるモニタリングを参照してください。
ストレージの最大しきい値は、DB インスタンスの自動スケーリングに設定する制限です。以下の制約があります。
-
最大ストレージしきい値は、現在割り当てられているストレージより少なくとも 10% 多く設定する必要があります。ストレージサイズが最大ストレージしきい値に近づいているというイベントの通知を受け取らないように、少なくとも 26% 以上に設定することをお勧めします。
例えば、1000 GiB の割り当て済みストレージを持つ DB インスタンスがある場合、最大ストレージしきい値を少なくとも 1100 GiB に設定します。そうしないと、
ようなエラーが発生します。ただし、イベントの通知を回避するために、最大ストレージしきい値を 1260 GiB 以上に設定することを推奨します。engine_name
の最大ストレージサイズが無効です -
プロビジョンド IOPS (io1 または io2 Block Express) ストレージを使用する DB インスタンスの場合、IOPS と最大ストレージしきい値の比率 (GiB 単位) が特定の範囲内である必要があります。詳細については、「プロビジョンド IOPS SSD ストレージ」を参照してください。
-
自動スケーリング対応のインスタンスの場合、ストレージの最大しきい値を、データベースエンジンおよび DB インスタンスクラスに割り当てられた最大ストレージより大きい値に設定することはできません。
例えば、db.m5.xlarge にある SQL Server Standard Edition には、20 GiB (最小) のインスタンスに対するデフォルトのストレージ割り当てと 16,384 GiB の最大ストレージ割り当てがあります。自動スケーリングに対するデフォルトの最大ストレージしきい値は 1,000 GiB です。このデフォルトを使用する場合、インスタンスは 1,000 GiB を超えて自動スケーリングしません。これは、インスタンスの最大ストレージ割り当てが 16,384 GiB であっても、該当します。
注記
使用パターンと顧客のニーズに基づいて、最大ストレージしきい値を慎重に選択することをお勧めします。使用パターンに異常があり、Auto Scaling で予測しきい値が非常に高くなった場合、最大ストレージしきい値により、ストレージが予期しない高い値にスケーリングされることを防止できます。DB インスタンスが自動スケーリングされた後、割り当てられたストレージを減らすことはできません。
トピック
制限事項
ストレージの自動スケーリングには、次の制限が適用されます。
-
ストレージの増分により最大ストレージしきい値を超える場合、自動スケーリングは実行されません。
-
オートスケーリングの場合、RDS は後続のオートスケーリングオペレーションのストレージサイズを予測します。後続のオペレーションが最大ストレージしきい値を超えると予測される場合、RDS では最大ストレージしきい値にオートスケーリングします。
-
自動スケーリングでは、大量のデータロードに伴うストレージ不足状態を完全に防ぐことはできません。その後 6 時間、またはインスタンスでストレージの最適化が完了するまでのいずれか長い方の時間まで、ストレージにそれ以上の変更を加えることができないためです。
大量のデータロードを実行し、Auto Scaling で十分な領域が得られない場合、データベースは数時間ストレージ不足状態になることがあります。これはデータベースに悪影響を与える場合があります。
-
Amazon RDS が自動スケーリングオペレーションを開始するのと同時にストレージのスケーリングオペレーションを開始した場合は、ストレージの変更が優先されます。自動スケーリングオペレーションはキャンセルされます。
-
自動スケーリングでは、割り当てられたストレージを減らすことはできません。ストレージを割り当てた後に DB インスタンスのストレージ容量を減らすことはできません。
-
自動スケーリングは磁気ストレージでは使用できません。
-
自動スケーリングは、順序付け可能なストレージが 6 TiB 未満の旧世代のインスタンスクラス (db.m3.large、db.m3.xlarge、db.m3.2xlarge) では使用できません。
-
自動スケーリング操作は、AWS CloudTrail でログに記録されません。CloudTrail の詳細については、「AWS CloudTrail での Amazon RDS API コールのモニタリング」を参照してください。
自動スケーリングは Amazon RDS DB インスタンスのストレージを動的に増やすのに役立ちますが、それでも DB インスタンスの初期ストレージを通常のワークロードに適したサイズに設定する必要があります。
新しい DB インスタンスのストレージの自動スケーリングを有効化する
Amazon RDS DB インスタンスを作成する場合は、ストレージの自動スケーリングを有効にするかどうかを選択することができます。また、Amazon RDS が DB インスタンスに対して割り当てることができるストレージの上限を設定することもできます。
注記
ストレージの自動スケーリングが有効になっている Amazon RDS DB インスタンスのクローンを作成する場合、その設定は、クローンを作成したインスタンスに自動的に継承されません。新しい DB インスタンスには、元のインスタンスと同じ量のストレージが割り当てられます。クローンを作成したインスタンスのストレージ要件を再度増やしている場合は、新しいインスタンスに対してストレージの自動スケーリングを再度有効にすることができます。
新しい DB インスタンスのストレージの自動スケーリングを有効にするには
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
Amazon RDS コンソールの右上で、DB インスタンスを作成する AWS リージョンを選択します。
-
ナビゲーションペインで、[データベース] を選択します。
-
[データベースの作成] を選択します。[エンジンの選択] ページで、データベースエンジンを選択し、Amazon RDS のスタート方法 に示されている DB インスタンスの情報を指定します。
-
[Storage autoscaling (ストレージの自動スケーリング)] セクションで、DB インスタンスの [Maximum storage threshold (ストレージの最大しきい値)] を設定します。
-
Amazon RDS のスタート方法 に示されているように、DB インスタンス情報の残りを指定します。
新しい DB インスタンスのストレージの自動スケーリングを有効にするには、AWS CLI コマンド create-db-instance
を使用します。次のパラメータを設定します。
-
--max-allocated-storage
– ストレージの自動スケーリングをオンにして、ストレージサイズの上限 (ギビバイト単位) を設定します。
DB インスタンスに対して Amazon RDS ストレージの自動スケーリングが使用可能であることを確認するには、AWS CLI describe-valid-db-instance-modifications
コマンドを使用します。インスタンスを作成する前に、インスタンスクラスに基づいて確認するには、describe-orderable-db-instance-options
コマンドを使用します。戻り値の以下のフィールドを確認します。
-
SupportsStorageAutoscaling
– DB インスタンスまたはインスタンスクラスでストレージの自動スケーリングがサポートされているかどうかを示します。
ストレージの詳細については、「Amazon RDS DB インスタンスストレージ」を参照してください。
新しい DB インスタンスのストレージの自動スケーリングを有効にするには、Amazon RDS API オペレーション CreateDBInstance
を使用します。次のパラメータを設定します。
-
MaxAllocatedStorage
– Amazon RDS のストレージの自動スケーリングをオンにして、ストレージサイズの上限 (ギビバイト単位) を設定します。
Amazon RDS ストレージの自動スケーリングが DB インスタンスに対して使用可能なことを確認するには、Amazon RDS API DescribeValidDbInstanceModifications
オペレーションを既存インスタンスに対して使用するか、インスタンスの作成前に DescribeOrderableDBInstanceOptions
オペレーションを使用します。戻り値の以下のフィールドを確認します。
-
SupportsStorageAutoscaling
– DB インスタンスでストレージの自動スケーリングがサポートされているかどうかを示します。
ストレージの詳細については、「Amazon RDS DB インスタンスストレージ」を参照してください。
DB インスタンスのストレージの自動スケーリング設定を変更する
既存の Amazon RDS DB インスタンスのストレージの自動スケーリングをオンにすることができます。また、Amazon RDS が DB インスタンスに対して割り当てることができるストレージの上限を変更することもできます。
DB インスタンスのストレージ自動スケーリング設定を変更するには
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[データベース] を選択します。
-
変更する DB インスタンスを選択してから、[変更] を選択します。[Modify DB instance] ページが表示されます。
-
[自動スケーリング] セクションのストレージ制限を変更します。詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。
-
すべての変更が正しいことを確認したら、[Continue] を選択して変更の概要を確認します。
-
確認ページで、変更内容を確認します。正しい場合は、[Modify DB Instance] を選択して変更を保存します。正しくない場合は、[戻る] を選択して変更を編集するか、[キャンセル] を選択して変更を取り消します。
ストレージの自動スケーリングの制限の変更はただちに実行されます。この設定は、[Apply immediately] 設定を無視します。
DB インスタンスのストレージ自動スケーリング設定を変更するには、AWS CLI コマンド modify-db-instance
を使用します。次のパラメータを設定します。
-
--max-allocated-storage
– ストレージサイズの上限 (ギビバイト単位) を設定します。値が--allocated-storage
パラメータを超える場合、ストレージの自動スケーリングはオンになります。値が--allocated-storage
パラメータと同一の場合、ストレージの自動スケーリングはオフになります。
DB インスタンスに対して Amazon RDS ストレージの自動スケーリングが使用可能であることを確認するには、AWS CLI describe-valid-db-instance-modifications
コマンドを使用します。インスタンスを作成する前に、インスタンスクラスに基づいて確認するには、describe-orderable-db-instance-options
コマンドを使用します。戻り値の以下のフィールドを確認します。
-
SupportsStorageAutoscaling
– DB インスタンスでストレージの自動スケーリングがサポートされているかどうかを示します。
ストレージの詳細については、「Amazon RDS DB インスタンスストレージ」を参照してください。
DB インスタンスのストレージ自動スケーリング設定を変更するには、Amazon RDS API オペレーション ModifyDBInstance
を使用します。次のパラメータを設定します。
-
MaxAllocatedStorage
– ストレージサイズの上限 (ギビバイト単位) を設定します。
Amazon RDS ストレージの自動スケーリングが DB インスタンスに対して使用可能なことを確認するには、Amazon RDS API DescribeValidDbInstanceModifications
オペレーションを既存インスタンスに対して使用するか、インスタンスの作成前に DescribeOrderableDBInstanceOptions
オペレーションを使用します。戻り値の以下のフィールドを確認します。
-
SupportsStorageAutoscaling
– DB インスタンスでストレージの自動スケーリングがサポートされているかどうかを示します。
ストレージの詳細については、「Amazon RDS DB インスタンスストレージ」を参照してください。
DB インスタンスのストレージの自動スケーリングをオフにする
Amazon RDS で Amazon RDS DB インスタンスのストレージを自動的に増やす必要がなくなった場合は、ストレージの自動スケーリングをオフにできます。オフにしても、DB インスタンスのストレージ領域は手動で増やすことができます。
DB インスタンスのストレージの自動スケーリングをオフにするには
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[データベース] を選択します。
-
変更する DB インスタンスを選択してから、[変更] を選択します。[Modify DB instance] ページが表示されます。
-
[Storage autoscaling (ストレージの自動スケーリング)] セクションの [Enable storage autoscaling (ストレージの自動スケーリングを有効にする)] チェックボックスをオフにします。詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。
-
すべての変更が正しいことを確認したら、[Continue] を選択して変更の概要を確認します。
-
確認ページで、変更内容を確認します。正しい場合は、[Modify DB Instance] を選択して変更を保存します。正しくない場合は、[戻る] を選択して変更を編集するか、[キャンセル] を選択して変更を取り消します。
ストレージの自動スケーリングの制限の変更はただちに実行されます。この設定は、[Apply immediately] 設定を無視します。
DB インスタンスのストレージの自動スケーリングをオフにするには、AWS CLI コマンド modify-db-instance
および次のパラメータを使用します。
-
--max-allocated-storage
–--allocated-storage
設定と同等の値を指定して、指定された DB インスタンスでそれ以上 Amazon RDS ストレージの自動スケーリングが行われるのを防ぐことができます。
ストレージの詳細については、「Amazon RDS DB インスタンスストレージ」を参照してください。
DB インスタンスのストレージの自動スケーリングをオフにするには、Amazon RDS API オペレーション ModifyDBInstance
を使用します。次のパラメータを設定します。
-
MaxAllocatedStorage
–AllocatedStorage
設定と同等の値を指定して、指定された DB インスタンスでそれ以上 Amazon RDS ストレージの自動スケーリングが行われるのを防ぐことができます。
ストレージの詳細については、「Amazon RDS DB インスタンスストレージ」を参照してください。
DB インスタンスのストレージファイルシステムのアップグレード
ほとんどの RDS DB インスタンスでは、RDS for MariaDB、MySQL、および PostgreSQL データベースの最大ストレージサイズは 64 TiB です。ただし、一部の古い 32 ビットファイルシステムでは、ストレージ容量が少なくなっています。DB インスタンスのストレージ容量を確認するには、describe-valid-db-instance-modificationsAWS CLIコマンドを使用できます。
DB インスタンスのいずれかで古いファイルシステム (ストレージサイズが 16 TiB、ファイルサイズ制限が 2 TiB、書き込みが最適化されていないファイルシステム) が実行されていることを RDS が検出すると、RDS コンソールはファイルシステム設定がアップグレードの対象であることを通知します。DB インスタンスのアップグレード資格は、DB インスタンスの詳細ページの [ストレージ] パネルで確認できます。
DB インスタンスがファイルシステムのアップグレードの対象となる場合は、次の 2 つの方法のいずれかでアップグレードを実行できます。
-
Blue/Green デプロイを作成し、[ストレージファイルシステム設定のアップグレード] を指定します。このオプションは、グリーン環境のファイルシステムを適切な設定にアップグレードします。その後、ブルー/グリーンデプロイを切り替えて、グリーン環境を新しい本番環境に昇格できます。詳細な手順については、「ブルー/グリーンデプロイの作成」を参照してください。
-
DB インスタンスのリードレプリカを作成し、[ストレージファイルシステム設定のアップグレード] を指定します。このオプションは、リードレプリカのファイルシステムを適切な設定にアップグレードします。次に、リードレプリカをスタンドアロンインスタンスに昇格させることができます。詳細な手順については、「リードレプリカの作成」を参照してください。
ストレージ設定のアップグレードは I/O の負荷が高い操作であり、リードレプリカとブルー/グリーンデプロイでは作成時間が長くなります。ソース DB インスタンスでプロビジョンド IOPS SSD (io1 または io2 Block Express) ストレージを使用し、インスタンスサイズが 4xlarge 以上のグリーン環境またはリードレプリカをプロビジョンした場合、ストレージのアップグレードプロセスは速くなります。汎用 SSD (gp2) ストレージを含むストレージをアップグレードすると、I/O クレジットバランスを使い切る可能性があり、よってよりアップグレード時間が長くなります。詳細については、「Amazon RDS DB インスタンスストレージ」を参照してください。
ストレージのアップグレード中は、データベースエンジンは使用できません。ソース DB インスタンスのストレージ消費量が割り当てられたストレージサイズの 90% 以上であり、ストレージのオートスケーリングが有効な場合、ストレージのアップグレードプロセスにより、グリーンインスタンスまたはリードレプリカに割り当てられるストレージサイズが 10% 増加します。ストレージのオートスケーリングが無効の場合、アップグレード中にストレージサイズは増加しません。
プロビジョンド IOPS SSD ストレージの設定を変更する
Amazon RDS コンソール、AWS CLI、または Amazon RDS API を使用して、プロビジョンド IOPS SSD ストレージを使用する DB インスタンスの設定を変更できます。必要なストレージタイプ、割り当て済みストレージ、プロビジョンド IOPS の量を指定します。この範囲は、データベースエンジンとインスタンスタイプによって異なります。
インスタンスにプロビジョニングされた IOPS の量を減少することはできますが、ストレージサイズを減少させることはできません。
ほとんどの場合、ストレージのスケーリングには停止が必要ではなく、サーバーのパフォーマンスを低下させません。DB インスタンスのストレージ IOPS を変更すると、DB インスタンスのステータスは storage-optimization になります。
注記
ストレージの最適化には数時間かかることがあります。その後 6 時間、またはインスタンスでストレージの最適化が完了するまでのいずれか長い方の時間まで、ストレージにそれ以上の変更を加えることはできません。
各データベースエンジンで使用できる割り当て済みストレージとプロビジョンド IOPS の範囲については、「プロビジョンド IOPS SSD ストレージ」を参照してください。
DB インスタンスのプロビジョンド IOPS の設定を変更するには
-
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[データベース] を選択します。
DB インスタンスの一覧をフィルターするには、[Filter databases (データベースのフィルター)] に、結果をフィルターするために使用する Amazon RDS のテキスト文字列を入力します。その文字列を名前に含む DB インスタンスのみが表示されます。
-
変更するプロビジョンド IOPS を使う DB インスタンスを選択します。
-
Modify を選択します。
-
[DB インスタンスを変更] ページの [ストレージタイプ] で [プロビジョンド IOPS SSD (io1)[プロビジョンド or [プロビジョンド IOPS SSD (io2)[プロビジョンド を選択します。
-
プロビジョンド IOPS に値を入力します。
ストレージの割り当て または プロビジョンド IOPS で指定した値が、他のパラメータでサポートされている制限を超えている場合、警告メッセージが表示されます。このメッセージには他のパラメータで必要な値の範囲が表示されます。
[Continue] (続行) をクリックします。
DB インスタンスの変更をすぐに適用するには、[Scheduling of modifications] (変更のスケジュール) セクションの [Apply immediately] (すぐに適用) を選択します。または、[次に予定されるメンテナンスウィンドウ中に適用します] を選択して、次のメンテナンスウィンドウ中に変更を適用します。
変更するパラメータを確認し、[Modify DB instance] (DB インスタンスの変更) を選択して変更を完了します。
ストレージの割り当てまたはプロビジョンド IOPS の新しい値が ステータス 列に表示されます。
DB インスタンスのプロビジョンド IOPS の設定を変更するには、AWS CLI の modify-db-instance
コマンドを使用します。以下のパラメータを設定します。
--storage-type
– プロビジョンド IOPS にはio1
またはio2
を指定します。--allocated-storage
– DB インスタンスに割り当てるストレージの量 (ギビバイト単位)。--iops
– DB インスタンスのプロビジョンド IOPS の新しい値。1 秒あたりの I/O オペレーション数で表されます。--apply-immediately
–--apply-immediately
を使用して、すぐに変更を適用します。--no-apply-immediately
(デフォルト) を使用して、次のメンテナンスウィンドウ中に変更を適用します。
DB インスタンスのプロビジョンド IOPS の設定を変更するには、Amazon RDS API オペレーションの ModifyDBInstance
を使用します。以下のパラメータを設定します。
StorageType
– プロビジョンド IOPS にはio1
またはio2
を指定します。AllocatedStorage
– DB インスタンスに割り当てるストレージの量 (ギビバイト単位)。Iops
– DB インスタンスの新しい IOPS レート。1 秒あたりの I/O オペレーション数で表されます。ApplyImmediately
– このオプションをTrue
に設定して、すぐに変更を適用します。またはFalse
(デフォルト) を設定して、次のメンテナンスウィンドウ中にストレージの変更を適用します。
I/O を大量に消費するストレージの変更
Amazon RDS DB インスタンスは、データベースおよびログストレージに Amazon Elastic Block Store (EBS) ボリュームを使用します。要求されるストレージの量によって、RDS (RDS for SQL Server を除く) は自動的に複数の Amazon EBS ボリューム全体をストライプして、パフォーマンスを向上させます。SSD ストレージタイプの RDS DB インスタンスは、RAID 0 構成の 1 つまたは 4 つのストライプ化された Amazon EBS ボリュームによってバックアップされます。設計上、RDS DB インスタンスのストレージ変更操作が進行中のデータベース操作に与える影響は最小限に抑えられます。
ほとんどの場合、ストレージのスケーリング変更は Amazon EBS レイヤーに完全にオフロードされ、データベースに対して透過的に行われます。通常、このプロセスは数分で完了します。ただし、古い RDS ストレージボリュームの中には、サイズ、プロビジョンド IOPS、またはストレージタイプを変更するために別のプロセスが必要なものがあります。これには、I/O を大量に消費する可能性のある操作を使用してデータのフルコピーを作成することが含まれます。
ストレージの変更では、次のいずれかの要因が当てはまる場合、I/O を大量に消費する操作を使用します。
-
ソースストレージタイプはマグネティックです。マグネティックストレージは伸縮自在のボリューム変更をサポートしていません。
-
RDS DB インスタンスは、1 ボリュームまたは 4 ボリュームの Amazon EBS レイアウト上にはありません。拡張モニタリングメトリクスを使用すると、RDS DB インスタンスで使用されている Amazon EBS ボリュームの数を確認できます。詳しくは、「RDS コンソールでの OS メトリクスの表示」を参照してください。
-
変更リクエストのターゲットサイズにより、RDS for MariaDB、MySQL、および PostgreSQL インスタンスでは 400 GiB 以上、RDS for Oracle では 200 GiB 以上の割り当てストレージが増加します。ストレージの自動スケーリング操作は、DB インスタンスに割り当てられたストレージサイズがこれらのしきい値を超えて増加した場合にも同じ効果があります。
ストレージの変更に I/O を大量に消費する操作が含まれる場合、I/O リソースが消費され、DB インスタンスの負荷が増加します。汎用 SSD (gp2) ストレージを含む I/O を大量に消費する操作でストレージを変更すると、I/O クレジット残高を使い切る可能性があり、変換時間が長くなることがあります。
このようなストレージの変更リクエストは、ベストプラクティスとして、ストレージの変更操作の完了に必要な時間を短縮するために、ピーク時間帯以外にスケジュールすることをお勧めします。DB インスタンスのリードレプリカを作成し、リードレプリカのストレージを変更を実行することもできます。次に、リードレプリカがプライマリ DB インスタンスに昇格されます。詳しくは、「DB インスタンスのリードレプリカの操作」を参照してください。
詳細については、次を参照してください。「割り当てられたストレージを増やそうとすると、Amazon RDS DB インスタンスが変更中の状態で止まるのはなぜですか?
汎用 SSD (gp3) ストレージの設定変更
Amazon RDS コンソール、AWS CLI、または Amazon RDS API を使用して、汎用 SSD (gp3) ストレージを使用する DB インスタンスの設定を変更できます。必要なストレージタイプ、割り当て済みストレージ、プロビジョンド IOPS の量、ストレージのスループットを指定します。
DB インスタンスのプロビジョンド IOPS の量とストレージスループットを減らすことはできますが、ストレージサイズを減らすことはできません。
ほとんどの場合、ストレージをスケーリングしても停止する必要はありません。DB インスタンスのストレージ IOPS を変更すると、DB インスタンスのステータスは storage-optimization になります。ストレージの最適化中は、レイテンシーが高くなることが予想されますが、それでも数ミリ秒の範囲内です。ストレージ変更後、DB インスタンスは完全に動作します。
注記
インスタンスでストレージの最適化が完了してから 6 時間後まではストレージをこれ以上変更することはできません。
各データベースエンジンで使用できる割り当て済みストレージ、プロビジョンド IOPS、ストレージのスループットの範囲については、「gp3 ストレージ (推奨)」を参照してください。
DB インスタンスのストレージのパフォーマンス設定を変更するには
AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/
を開きます。 -
ナビゲーションペインで、[データベース] を選択します。
DB インスタンスの一覧をフィルターするには、[Filter databases (データベースのフィルター)] に、結果をフィルターするために使用する Amazon RDS のテキスト文字列を入力します。その文字列を名前に含む DB インスタンスのみが表示されます。
-
変更する gp3 ストレージを使用する DB インスタンスを選択します。
-
Modify を選択します。
-
[Modify DB Instance] (DB インスタンスの変更) ページで、[Storage type] (ストレージタイプ) に汎用 SSD (gp3) を選択し、次の操作を行います。
-
プロビジョンド IOPS で、値を選択します。
ストレージの割り当て または プロビジョンド IOPS で指定した値が、他のパラメータでサポートされている制限を超えている場合、警告メッセージが表示されます。このメッセージには他のパラメータで必要な値の範囲が表示されます。
-
ストレージスループット で値を選択します。
プロビジョンド IOPS またはストレージのスループットで指定した値が、他のパラメータでサポートされている制限を超えている場合、警告メッセージが表示されます。このメッセージには他のパラメータで必要な値の範囲が表示されます。
-
-
[Continue] (続行) をクリックします。
-
DB インスタンスの変更をすぐに適用するには、[Scheduling of modifications] (変更のスケジュール) セクションの [Apply immediately] (すぐに適用) を選択します。または、[次に予定されるメンテナンスウィンドウ中に適用します] を選択して、次のメンテナンスウィンドウ中に変更を適用します。
-
変更するパラメータを確認し、[Modify DB instance] (DB インスタンスの変更) を選択して変更を完了します。
プロビジョンド IOPS の新しい値が ステータス 列に表示されます。
DB インスタンスのストレージのパフォーマンス設定を変更するには、AWS CLI コマンド modify-db-instance
を使用します。以下のパラメータを設定します。
-
--storage-type
– 汎用 SSD (gp3) の場合はgp3
に設定します。 -
--allocated-storage
– DB インスタンスに割り当てるストレージの量 (ギビバイト単位)。 -
--iops
– DB インスタンスのプロビジョンド IOPS の新しい値。1 秒あたりの I/O オペレーション数で表されます。 -
--storage-throughput
– DB インスタンスの新しいストレージスループットで、MIBP で表します。 -
--apply-immediately
–--apply-immediately
を使用して、すぐに変更を適用します。--no-apply-immediately
(デフォルト) を使用して、次のメンテナンスウィンドウ中に変更を適用します。
DB インスタンスのストレージのパフォーマンス設定を変更するには、Amazon RDS API オペレーション ModifyDBInstance
を使用します。以下のパラメータを設定します。
-
StorageType
– 汎用 SSD (gp3) の場合はgp3
に設定します。 -
AllocatedStorage
– DB インスタンスに割り当てるストレージの量 (ギビバイト単位)。 -
Iops
– DB インスタンスの新しい IOPS レート。1 秒あたりの I/O オペレーション数で表されます。 -
StorageThroughput
– DB インスタンスの新しいストレージスループットで、MIBP で表します。 -
ApplyImmediately
– このオプションをTrue
に設定して、すぐに変更を適用します。またはFalse
(デフォルト) を設定して、次のメンテナンスウィンドウ中にストレージの変更を適用します。
専用ログボリューム (DLV) を使用する
プロビジョンド IOPS (PIOPS) ストレージを使用する DB インスタンスには、専用のログボリューム (DLV) を使用できます。DLV は、PostgreSQL データベーストランザクションログと MySQL または MariaDB の REDO ログとバイナリログを、データベーステーブルが配置されたボリュームとは別のストレージボリュームに移動します。DLV を使用すると、トランザクション書き込みロギングの効率と一貫性が向上します。DLV は、割り当てられたストレージの容量が大きいデータベース、1 秒あたりの I/O (IOPS) 要件が高い、または遅延の影響を受けやすいワークロードがあるデータベースに最適です。
DLV は PIOPS ストレージ (io1 および io2 の Block Express) でサポートされており、1,000 GiB 固定サイズと 3,000 のプロビジョンド IOPS で作成されます。
Amazon RDS は、次のバージョンについて、すべての AWS リージョン の DLV でサポートします。
MariaDB 10.6.7 以上の 10 バージョン
MySQL 8.0.28 以上の 8 バージョン
PostgreSQL 13.10 以上の 13 バージョン、14.7 以上の 14 バージョン、15.2 以上の 15 バージョン
RDS は、マルチ AZ 配置で DLV をサポートします。マルチ AZ インスタンスを変更または作成すると、プライマリとセカンダリの両方に DLV が作成されます。
RDS はリードレプリカによる DLV をサポートします。プライマリ DB インスタンスで DLV が有効になっている場合、DLV を有効にした後に作成されたすべてのリードレプリカにも DLV が設定されます。DLV への切り替え前に作成されたリードレプリカは、明示的に変更されない限り、有効になりません。DLV を有効にする前にプライマリインスタンスにアタッチされていたすべてのリードレプリカも、DLV を使用するように手動で変更することが推奨されます。
注記
5 TiB 以上のデータベース設定には、専用のログボリュームが推奨されます。
各データベースエンジンで使用できる割り当て済みストレージ、プロビジョンド IOPS、ストレージのスループットの範囲については、「プロビジョンド IOPS SSD ストレージ」を参照してください。
DLV を有効または無効にする際の考慮事項
DLV の有効化と無効化には時間がかかり、ダウンタイムが発生する可能性があります。このプロセスでは、有効化時にすべてのトランザクションログ、または REDO ログとバイナリログ (データベースエンジンによって異なります) を新しいボリュームにコピーするか、無効化時に元のストレージに戻します。このオペレーションの期間は、いくつかの要因の影響を受けます。
-
トランザクションログの数:
-
トランザクションが多いデータベースが大きいほどログが生成され、コピーにかかる時間が長くなります。
-
レプリケーションスロットが非アクティブの場合、またはレプリケーションが遅延している場合、トランザクションログがプライマリ DB インスタンスに蓄積され、コピーに必要な時間が長くなります。レプリケーションが最新であることを確認し、不要なスロットをすべて削除します。
-
-
ストレージ設定:
-
DB インスタンスの EBS 帯域幅 – 帯域幅が大きいほど、データ転送が速くなります。
-
プロビジョンド IOPS の数 – 1 秒あたりの入出力オペレーション (IOPS) が増えると、コピープロセスが高速化されます。
-
-
データベースアクティビティ – 設定中のデータベースアクティビティのレベルが高いと、プロセスが遅くなる可能性があります。
ダウンタイムを最小限に抑えるために、アクティビティが少ない期間やメンテナンス期間中に計画とスケジュールを設定することをお勧めします。
DB インスタンス作成時に DLV を有効にする
DLV を有効にした DB インスタンスを作成するには、AWS Management Console、AWS CLI、または RDS API を使用できます。
新しい DB インスタンスで DLV を有効にするには
AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/
を開きます。 -
[データベースの作成] を選択します。
-
[DB インスタンスの作成] ページで、DLV をサポートする DB エンジンを選択します。
-
ストレージ:
-
[プロビジョンド IOPS SSD (io1)] または [プロビジョンド IOPS SSD (io2)] を選択します。
-
使用する [割り当て済みストレージ] と [プロビジョンド IOPS] を入力します。
-
[専用ログボリューム] を展開して、[専用ログボリュームを有効にする] を選択します。
-
-
必要に応じて、その他の設定を選択します。
-
[データベースの作成] を選択します。
データベースが作成されると、専用ログボリュームの値がデータベースの詳細ページの [設定] タブに表示されます。
プロビジョンド IOPS ストレージを使用して DB インスタンスを作成する際に DLV を有効にするには、AWS CLI コマンド create-db-instance を使用します。以下のパラメータを設定します。
-
--dedicated-log-volume
– 専用ログボリュームを有効にします。 -
--storage-type
– プロビジョンド IOPS にはio1
またはio2
を指定します。 -
--allocated-storage
– DB インスタンスに割り当てるストレージの量 (ギビバイト単位)。 -
--iops
– DB インスタンスのプロビジョンド IOPS の量 (1 秒あたりの I/O オペレーション数単位)。
プロビジョンド IOPS ストレージを使用して DB インスタンスを作成する際に DLV を有効または無効にするには、Amazon RDS API オペレーション CreateDBInstance を使用します。以下のパラメータを設定します。
-
DedicatedLogVolume
—true
に設定して、専用のログボリュームを有効にします。 -
StorageType
– プロビジョンド IOPS にはio1
またはio2
を指定します。 -
AllocatedStorage
– DB インスタンスに割り当てるストレージの量 (ギビバイト単位)。 -
Iops
– この DB インスタンスの新しい IOPS レート (1 秒あたりの I/O オペレーション数単位)。
既存の DB インスタンスで DLV を有効にする
DB インスタンスを更新して DLV を有効にするには、AWS Management Console、AWS CLI、または RDS API を使用できます。
DB インスタンスの DLV 設定を変更したら、DB インスタンスを再起動する必要があります。
既存の DB インスタンスで DLV を有効にするには
AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/
を開きます。 -
ナビゲーションペインで、[データベース] を選択します。
DB インスタンスの一覧をフィルターするには、[Filter databases (データベースのフィルター)] に、結果をフィルターするために使用する Amazon RDS のテキスト文字列を入力します。その文字列を名前に含む DB インスタンスのみが表示されます。
-
変更するプロビジョンド IOPS ストレージを使用する DB インスタンスを選択します。
-
Modify を選択します。
-
[DB インスタンスを変更] ページで、以下を実行します。
-
[ストレージ] では、[専用ログボリューム] を展開して、[専用ログボリュームを有効にする] を選択します。
-
-
[Continue] (続行) をクリックします。
-
DB インスタンスへの変更を直ちに適用するには、[すぐに適用] をクリックします。または、[次に予定されるメンテナンスウィンドウ中に適用します] を選択して、次のメンテナンスウィンドウ中に変更を適用します。
-
変更するパラメータを確認し、[Modify DB instance] (DB インスタンスの変更) を選択して変更を完了します。
専用ログボリュームの新しい値がデータベースの詳細ページの [設定] タブに表示されます。
プロビジョンド IOPS ストレージを使用して既存の DB インスタンスで DLV を有効または無効にするには、AWS CLI コマンド modify-db-instance
を使用します。以下のパラメータを設定します。
-
--dedicated-log-volume
– 専用ログボリュームを有効にします。--no-dedicated-log-volume
(デフォルト) を使用して、専用ログボリュームを無効にします。 -
--apply-immediately
–--apply-immediately
を使用して、すぐに変更を適用します。--no-apply-immediately
(デフォルト) を使用して、次のメンテナンスウィンドウ中に変更を適用します。
プロビジョンド IOPS ストレージを使用して既存の DB インスタンスで DLV を有効または無効にするには、Amazon RDS API オペレーション ModifyDBInstance
を使用します。以下のパラメータを設定します。
-
DedicatedLogVolume
- このオプションをtrue
に設定して、専用ログボリュームを有効にします。このオプションを
false
に設定して、専用ログボリュームを無効にします。これは、デフォルト値です。 -
ApplyImmediately
– このオプションをTrue
に設定して、すぐに変更を適用します。または
False
(デフォルト) を設定して、次のメンテナンスウィンドウ中にストレージの変更を適用します。
DLV ストレージのモニタリング
CloudWatch の FreeStorageSpaceLogVolume
メトリクスを使用して、DLV ストレージの使用状況をモニタリングできます。
RDS for PostgreSQL の次のクエリを使用して、トランザクションログが占めるサイズを確認することができます。
SELECT pg_size_pretty(COALESCE(sum(size), 0)) AS total_wal_generated_size FROM pg_catalog.pg_ls_waldir();
DLV のストレージが不足すると、DB インスタンスは storage-full
状態になり、ダウンタイムが発生します。