Amazon RDS ストレージの自動スケーリングによる容量の自動管理 - Amazon Relational Database Service

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 に設定します。そうしないと、engine_name の最大ストレージサイズが無効ですようなエラーが発生します。ただし、イベントの通知を回避するために、最大ストレージしきい値を 1260 GiB 以上に設定することを推奨します。

  • プロビジョンド 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 インスタンスのストレージの自動スケーリングを有効にするには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. Amazon RDS コンソールの右上で、DB インスタンスを作成する AWS リージョンを選択します。

  3. ナビゲーションペインで、[データベース] を選択します。

  4. [データベースの作成] を選択します。[エンジンの選択] ページで、データベースエンジンを選択し、Amazon RDS のスタート方法 に示されている DB インスタンスの情報を指定します。

  5. [Storage autoscaling (ストレージの自動スケーリング)] セクションで、DB インスタンスの [Maximum storage threshold (ストレージの最大しきい値)] を設定します。

  6. 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 インスタンスのストレージ自動スケーリング設定を変更するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[データベース] を選択します。

  3. 変更する DB インスタンスを選択してから、[変更] を選択します。[Modify DB instance] ページが表示されます。

  4. [自動スケーリング] セクションのストレージ制限を変更します。詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。

  5. すべての変更が正しいことを確認したら、[Continue] を選択して変更の概要を確認します。

  6. 確認ページで、変更内容を確認します。正しい場合は、[DB インスタンスを変更] を選択して変更を保存します。正しくない場合は、[戻る] を選択して変更を編集するか、[キャンセル] を選択して変更を取り消します。

    ストレージの自動スケーリングの制限の変更はただちに実行されます。この設定は、[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 は、需要の増加に合わせたストレージの自動スケーリングを提供しています。ただし、スケールダウンとスケールインには制限があります。

  • RDS ストレージ – RDS は需要の増加に応じてストレージの自動スケールアップをサポートしていますが、自動的にスケールダウンすることはありません。

  • リードレプリカ – RDS は、リードレプリカの自動スケールアウト (追加) またはスケールイン (削除) をサポートしていません。ロード要件に従って、リードレプリカを手動で追加または削除する必要があります。

RDS リソースをスケールダウンするには、次の手動アクションを実行します。

  • ストレージの場合、modify-db-instance コマンドを使用して DB インスタンスの割り当てられたストレージを手動で減らすことはできません。代わりに、次のいずれかの方法を選択します。

    • DB エンジンがブルー/グリーンデプロイをサポートしている場合は、ブルー/グリーンデプロイを使用します。小さいストレージサイズでグリーンデータベースを作成し、グリーンデータベースをブルーデータベースに昇格させます。詳細については、「ストレージとパフォーマンスの設定を変更する」を参照してください。

    • 小さく割り当てられたストレージで新しい DB インスタンスを作成し、現在のデータベースから新しく作成されたデータベースインスタンスにデータを手動で移行して、データベースエンドポイントを切り替えます。

  • リードレプリカの場合は、RDS コンソールまたは AWS CLI を使用して未使用のレプリカを手動で削除します。

DB インスタンスのストレージの自動スケーリングをオフにする

Amazon RDS で Amazon RDS DB インスタンスのストレージを自動的に増やす必要がなくなった場合は、ストレージの自動スケーリングをオフにできます。オフにしても、DB インスタンスのストレージ領域は手動で増やすことができます。

DB インスタンスのストレージの自動スケーリングをオフにするには
  1. AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/) を開きます。

  2. ナビゲーションペインで、[データベース] を選択します。

  3. 変更する DB インスタンスを選択してから、[変更] を選択します。[Modify DB instance] ページが表示されます。

  4. [Storage autoscaling (ストレージの自動スケーリング)] セクションの [Enable storage autoscaling (ストレージの自動スケーリングを有効にする)] チェックボックスをオフにします。詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。

  5. すべての変更が正しいことを確認したら、[Continue] を選択して変更の概要を確認します。

  6. 確認ページで、変更内容を確認します。正しい場合は、[DB インスタンスを変更] を選択して変更を保存します。正しくない場合は、[戻る] を選択して変更を編集するか、[キャンセル] を選択して変更を取り消します。

ストレージの自動スケーリングの制限の変更はただちに実行されます。この設定は、[Apply immediately] 設定を無視します。

DB インスタンスのストレージの自動スケーリングをオフにするには、AWS CLI コマンド modify-db-instance および次のパラメータを使用します。

  • --max-allocated-storage--allocated-storage 設定と同等の値を指定して、指定された DB インスタンスでそれ以上 Amazon RDS ストレージの自動スケーリングが行われるのを防ぐことができます。

ストレージの詳細については、「Amazon RDS DB インスタンスストレージ」を参照してください。

DB インスタンスのストレージの自動スケーリングをオフにするには、Amazon RDS API オペレーション ModifyDBInstance を使用します。次のパラメータを設定します。

  • MaxAllocatedStorageAllocatedStorage 設定と同等の値を指定して、指定された DB インスタンスでそれ以上 Amazon RDS ストレージの自動スケーリングが行われるのを防ぐことができます。

ストレージの詳細については、「Amazon RDS DB インスタンスストレージ」を参照してください。