

# Amazon RDS ストレージの自動スケーリングによる容量の自動管理
<a name="USER_PIOPS.Autoscaling"></a>

ワークロードが予測不能な場合は、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 によるモニタリング](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MonitoringOverview.html#monitoring-cloudwatch)を参照してください。

ストレージの最大しきい値は、DB インスタンスの自動スケーリングに設定する制限です。以下の制約があります。
+ 最大ストレージしきい値は、現在割り当てられているストレージより少なくとも 10% 多く設定する必要があります。ストレージサイズが最大ストレージしきい値に近づいているという[イベントの通知](USER_Events.Messages.md#RDS-EVENT-0225)を受け取らないように、少なくとも 26% 以上に設定することをお勧めします。

  例えば、1000 GiB の割り当て済みストレージを持つ DB インスタンスがある場合、最大ストレージしきい値を少なくとも 1100 GiB に設定します。そうしないと、*engine\$1name* の最大ストレージサイズが無効ですようなエラーが発生します。ただし、イベントの通知を回避するために、最大ストレージしきい値を 1260 GiB 以上に設定することを推奨します。
+ プロビジョンド IOPS (io1 または io2 Block Express) ストレージを使用する DB インスタンスの場合、IOPS と最大ストレージしきい値の比率 (GiB 単位) が特定の範囲内である必要があります。詳細については、「[プロビジョンド IOPS SSD ストレージ](CHAP_Storage.md#USER_PIOPS)」を参照してください。
+ 自動スケーリング対応のインスタンスの場合、ストレージの最大しきい値を、データベースエンジンおよび 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 インスタンスが自動スケーリングされた後、割り当てられたストレージを減らすことはできません。

**Topics**
+ [ストレージの自動スケーリングの制限](#autoscaling-limitations)
+ [新しい DB インスタンスのストレージの自動スケーリングを有効化する](#USER_PIOPS.EnablingAutoscaling)
+ [DB インスタンスのストレージの自動スケーリング設定を変更する](#USER_PIOPS.ModifyingAutoscaling)
+ [DB インスタンスを手動でスケールダウンまたはスケールインする](#USER_PIOPS.ScalingDown)
+ [DB インスタンスのストレージの自動スケーリングをオフにする](#USER_PIOPS.DisablingAutoscaling)

## ストレージの自動スケーリングの制限
<a name="autoscaling-limitations"></a>

ストレージの自動スケーリングには、次の制限が適用されます。
+ ストレージの増分により最大ストレージしきい値を超える場合、自動スケーリングは実行されません。
+ オートスケーリングの場合、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 コールのモニタリング](logging-using-cloudtrail.md)」を参照してください。
+ 自動スケーリングは、追加のストレージボリュームではサポートされていません。ストレージボリュームの追加方法については、「[ストレージボリュームの追加](USER_PIOPS.ModifyingExisting.AdditionalVolumes.md)」を参照してください。

自動スケーリングは Amazon RDS DB インスタンスのストレージを動的に増やすのに役立ちますが、それでも DB インスタンスの初期ストレージを通常のワークロードに適したサイズに設定する必要があります。

## 新しい DB インスタンスのストレージの自動スケーリングを有効化する
<a name="USER_PIOPS.EnablingAutoscaling"></a>

Amazon RDS DB インスタンスを作成する場合は、ストレージの自動スケーリングを有効にするかどうかを選択することができます。また、Amazon RDS が DB インスタンスに対して割り当てることができるストレージの上限を設定することもできます。

ストレージの自動スケーリングを有効にしても、データベースを再起動する必要はなく、ダウンタイムも発生しません。この機能は、データベースの操作を中断することなく、すぐに有効になります。

**注記**  
ストレージの自動スケーリングが有効になっている Amazon RDS DB インスタンスのクローンを作成する場合、その設定は、クローンを作成したインスタンスに自動的に継承されません。新しい DB インスタンスには、元のインスタンスと同じ量のストレージが割り当てられます。クローンを作成したインスタンスのストレージ要件を再度増やしている場合は、新しいインスタンスに対してストレージの自動スケーリングを再度有効にすることができます。

### コンソール
<a name="USER_PIOPS.EnablingAutoscaling.console"></a>

**新しい DB インスタンスのストレージの自動スケーリングを有効にするには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

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

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

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

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

1. [Amazon RDS のスタート方法](CHAP_GettingStarted.md) に示されているように、DB インスタンス情報の残りを指定します。

### AWS CLI
<a name="USER_PIOPS.EnablingAutoscaling.cli"></a>

新しい DB インスタンスのストレージの自動スケーリングを有効にするには、AWS CLI コマンド [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) を使用します。次のパラメータを設定します。
+  `--max-allocated-storage` – ストレージの自動スケーリングをオンにして、ストレージサイズの上限 (ギビバイト単位) を設定します。

 DB インスタンスに対して Amazon RDS ストレージの自動スケーリングが使用可能であることを確認するには、AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-valid-db-instance-modifications.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-valid-db-instance-modifications.html) コマンドを使用します。インスタンスを作成する前に、インスタンスクラスに基づいて確認するには、[https://docs.aws.amazon.com/cli/latest/reference/rds/describe-orderable-db-instance-options.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-orderable-db-instance-options.html) コマンドを使用します。戻り値の以下のフィールドを確認します。
+  `SupportsStorageAutoscaling` – DB インスタンスまたはインスタンスクラスでストレージの自動スケーリングがサポートされているかどうかを示します。

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

### RDS API
<a name="USER_PIOPS.EnablingAutoscaling.api"></a>

新しい DB インスタンスのストレージの自動スケーリングを有効にするには、Amazon RDS API オペレーション [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) を使用します。次のパラメータを設定します。
+  `MaxAllocatedStorage` – Amazon RDS のストレージの自動スケーリングをオンにして、ストレージサイズの上限 (ギビバイト単位) を設定します。

 Amazon RDS ストレージの自動スケーリングが DB インスタンスに対して使用可能なことを確認するには、Amazon RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeValidDbInstanceModifications.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeValidDbInstanceModifications.html) オペレーションを既存インスタンスに対して使用するか、インスタンスの作成前に [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeOrderableDBInstanceOptions.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeOrderableDBInstanceOptions.html) オペレーションを使用します。戻り値の以下のフィールドを確認します。
+  `SupportsStorageAutoscaling` – DB インスタンスでストレージの自動スケーリングがサポートされているかどうかを示します。

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

## DB インスタンスのストレージの自動スケーリング設定を変更する
<a name="USER_PIOPS.ModifyingAutoscaling"></a>

既存の Amazon RDS DB インスタンスのストレージの自動スケーリングをオンにすることができます。また、Amazon RDS が DB インスタンスに対して割り当てることができるストレージの上限を変更することもできます。

ストレージの自動スケーリング設定を変更しても、データベースを再起動する必要はなく、ダウンタイムも発生しません。変更は、データベースの操作を中断することなく、すぐに有効になります。

### コンソール
<a name="USER_PIOPS.ModifyingAutoscaling.console"></a>

**DB インスタンスのストレージ自動スケーリング設定を変更するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

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

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

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

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

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

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

### AWS CLI
<a name="USER_PIOPS.ModifyingAutoscaling.cli"></a>

DB インスタンスのストレージ自動スケーリング設定を変更するには、AWS CLI コマンド [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) を使用します。次のパラメータを設定します。
+  `--max-allocated-storage` – ストレージサイズの上限 (ギビバイト単位) を設定します。値が `--allocated-storage` パラメータを超える場合、ストレージの自動スケーリングはオンになります。値が `--allocated-storage` パラメータと同一の場合、ストレージの自動スケーリングはオフになります。

 DB インスタンスに対して Amazon RDS ストレージの自動スケーリングが使用可能であることを確認するには、AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-valid-db-instance-modifications.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-valid-db-instance-modifications.html) コマンドを使用します。インスタンスを作成する前に、インスタンスクラスに基づいて確認するには、[https://docs.aws.amazon.com/cli/latest/reference/rds/describe-orderable-db-instance-options.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-orderable-db-instance-options.html) コマンドを使用します。戻り値の以下のフィールドを確認します。
+  `SupportsStorageAutoscaling` – DB インスタンスでストレージの自動スケーリングがサポートされているかどうかを示します。

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

### RDS API
<a name="USER_PIOPS.ModifyingAutoscaling.api"></a>

 DB インスタンスのストレージ自動スケーリング設定を変更するには、Amazon RDS API オペレーション [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) を使用します。次のパラメータを設定します。
+  `MaxAllocatedStorage` – ストレージサイズの上限 (ギビバイト単位) を設定します。

 Amazon RDS ストレージの自動スケーリングが DB インスタンスに対して使用可能なことを確認するには、Amazon RDS API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeValidDbInstanceModifications.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeValidDbInstanceModifications.html) オペレーションを既存インスタンスに対して使用するか、インスタンスの作成前に [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeOrderableDBInstanceOptions.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeOrderableDBInstanceOptions.html) オペレーションを使用します。戻り値の以下のフィールドを確認します。
+  `SupportsStorageAutoscaling` – DB インスタンスでストレージの自動スケーリングがサポートされているかどうかを示します。

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

## DB インスタンスを手動でスケールダウンまたはスケールインする
<a name="USER_PIOPS.ScalingDown"></a>

Amazon RDS は、需要の増加に合わせたストレージの自動スケーリングを提供しています。ただし、スケールダウンとスケールインには制限があります。
+ **RDS ストレージ** – RDS は需要の増加に応じてストレージの自動スケールアップをサポートしていますが、自動的にスケールダウンすることはありません。
+ **リードレプリカ** – RDS は、リードレプリカの自動スケールアウト (追加) またはスケールイン (削除) をサポートしていません。ロード要件に従って、リードレプリカを手動で追加または削除する必要があります。

RDS リソースをスケールダウンするには、次の手動アクションを実行します。
+ ストレージの場合、`modify-db-instance` コマンドを使用して DB インスタンスの割り当てられたストレージを手動で減らすことはできません。代わりに、次のいずれかの方法を選択します。
  + DB エンジンがブルー/グリーンデプロイをサポートしている場合は、ブルー/グリーンデプロイを使用します。小さいストレージサイズでグリーンデータベースを作成し、グリーンデータベースをブルーデータベースに昇格させます。詳細については、「[ストレージとパフォーマンスの設定を変更する](blue-green-deployments-creating.md#blue-green-deployments-resize)」を参照してください。
  + 小さく割り当てられたストレージで新しい DB インスタンスを作成し、現在のデータベースから新しく作成されたデータベースインスタンスにデータを手動で移行して、データベースエンドポイントを切り替えます。
+ リードレプリカの場合は、RDS コンソールまたは AWS CLI を使用して未使用のレプリカを手動で削除します。

## DB インスタンスのストレージの自動スケーリングをオフにする
<a name="USER_PIOPS.DisablingAutoscaling"></a>

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

### コンソール
<a name="USER_PIOPS.DisablingAutoscaling.console"></a>

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

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

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

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

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

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

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

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

### AWS CLI
<a name="USER_PIOPS.DisablingAutoscaling.cli"></a>

 DB インスタンスのストレージの自動スケーリングをオフにするには、AWS CLI コマンド [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) および次のパラメータを使用します。
+  `--max-allocated-storage` – `--allocated-storage` 設定と同等の値を指定して、指定された DB インスタンスでそれ以上 Amazon RDS ストレージの自動スケーリングが行われるのを防ぐことができます。

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

### RDS API
<a name="USER_PIOPS.DisablingAutoscaling.api"></a>

 DB インスタンスのストレージの自動スケーリングをオフにするには、Amazon RDS API オペレーション [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) を使用します。次のパラメータを設定します。
+  `MaxAllocatedStorage` – `AllocatedStorage` 設定と同等の値を指定して、指定された DB インスタンスでそれ以上 Amazon RDS ストレージの自動スケーリングが行われるのを防ぐことができます。

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