ストレージの自動スケーリングをオンにした後に、Amazon RDS の DB インスタンスの空きストレージ容量が少ない状態になったり、storage-full 状態になったりするのはなぜですか?

所要時間2分
0

Amazon Relational Database Service (Amazon RDS) DB インスタンスのためにストレージの自動スケーリングをアクティブ化したのですが、ストレージの空き容量が 10% 未満、またはインスタンスが storage-full 状態になっています。これが発生したのはなぜですか? また、これを修正するにはどうすればよいですか?

簡単な説明

RDS DB インスタンスのストレージを変更した場合、6 時間が経過するか、または storage-optimization プロセスが完了するまで、さらに変更を加えることはできません。ストレージの変更期間は通常、完了するまでに数秒かかり、ボリュームが [optimizing] (最適化) 状態に移行した後に有効になります。ボリュームが完全に初期化されていない場合など、storage-optimization で新しい設定が有効になるまでに 24 時間を超える時間がかかる場合があります。ストレージプロセスの詳細については、「ボリューム変更の進行状況のモニタリング」を参照してください。 

ストレージの空き容量が 10% 未満であっても、ストレージ変更の storage-optimization 期間中は、自動スケーリングで DB インスタンスのストレージを増加させることはできません。詳細については、「DB インスタンスストレージの容量を増加する」を参照してください。

自動スケーリングを使用して RDS DB インスタンスのストレージを増やした場合、追加ストレージは次のうちのどちらか大きい方の増分で増えます。

  • 5GB
  • 現在割り当てられているスペースの 10%
  • 過去 1 時間の FreeStorageSpace メトリクスに基づく 7 時間のストレージ増加予測

ただし、1 時間未満で 50 GB のデータをロードする場合、10% のストレージ増加では不十分です。前回の自動スケーリングオペレーションは storage-optimization 期間中であるため、プロセスが完了するまで RDS DB インスタンスではストレージを変更できません。その結果、RDS DB インスタンスは、最大数時間にわたって storage-full の状態となる可能性があります。

解決方法

RDS DB インスタンスのストレージを変更できない場合は、次の点を確認して、インスタンスが storage-optimization 期間の影響を受けているかどうかを確認します。

  • RDS DB インスタンスのステータスが storage-optimization になっている
  • RDS DB インスタンスのステータスが storage-full または available になっているが、最近ストレージの変更をした。ストレージ増加オペレーションが最近実行されたことを確認するには、RDS DB インスタンスのイベントで次のメッセージを確認します。
    「Finished applying modification to allocated storage」(割り当てられたストレージに対する変更の適用が終了しました)
    -または-
    「Finished applying autoscale initiated modification to allocated storage」(割り当てられたストレージに対する、自動スケーリングによって開始された変更の適用が終了しました)

最近のストレージの変更によって storage-optimization がアクティブ化された場合は、より多くの Amazon Elastic Block Store (Amazon EBS) ストレージを備えた RDS DB インスタンスにデータベースを復元できます。RDS DB インスタンスが storage-full 状態の場合は、まず RDS DB インスタンスに対するデータロードをすべて停止する必要があります。その後、特定のデータベースエンジンのプロセスに従って RDS DB インスタンスからストレージ容量を解放できます。 

注: このプロセスは、インスタンスの storage-full 状態が解消されるまで数分から数時間かかります。

RDS DB インスタンスが storage-full 状態でない場合は、次のオプションを使用して DB インスタンスのストレージサイズを変更できます。

  • オプション 1: RDS DB インスタンスのリードレプリカを作成して昇格させる
  • オプション 2: 手動で DB スナップショットを作成し、RDS DB インスタンスを所定の時点に復元する
  • オプション 3: 自動スケーリングはオンになっているが、FreeStorageSpace が少ないためにアクティブ化したくない

オプション 1 と 2 は、データベースのダウンタイムを発生させます。ただし、リードレプリカを作成して昇格させると、ダウンタイムが短くなります。リードレプリカは、MariaDB、Microsoft SQL Server、MySQL、Oracle、および PostgreSQL DB エンジンでサポートされています。

オプション 1: RDS DB インスタンスのリードレプリカを作成して昇格させる

  1. RDS DB インスタンスのリードレプリカを作成します。
  2. 手動でリードレプリカのストレージ容量を増加させます。デフォルトでは、Amazon RDS ストレージの自動スケーリングがリードレプリカで非アクティブ化されています。
  3. アクティブな RDS DB インスタンスの名前を別の名前に変更します。これにより、すべての着信トラフィックが停止します。
  4. アクティブな RDS DB インスタンスによって以前使用されていた名前にリードレプリカの名前を変更します。これにより、リードレプリカのエンドポイントがアクティブな RDS DB インスタンスと同じになるため、アプリケーションを再設定する必要がなくなります。
  5. リードレプリカを昇格させます

注: アプリケーションまたはクライアントの場合、データベースのダウンタイムはステップ 3~5 で発生します。

オプション 2: 手動で DB スナップショットを作成し、RDS DB インスタンスを所定の時点に復元する

  1. アクティブな RDS DB インスタンスの名前を変更して、すべての着信トラフィックを停止します。これにより、RDS DB インスタンスが storage-full 状態になるのを防ぎます。RDS DB インスタンスが storage-full 状態の場合、次のステップに進んで手動でスナップショットを作成することはできません。
  2. RDS DB インスタンスの DB スナップショットを作成します。新しいスナップショットを作成することで、復元された RDS DB インスタンスが storage-optimization ストレージ変更イベントの影響を受けないようにします。
  3. 直近の復元可能な時刻を選択して、RDS DB インスタンスを所定の時点に復元します。インスタンス識別子には、アクティブな RDS DB インスタンスが使用していた名前を入力します。
    注: storage-optimization につながる自動スケーリングのさらなる増加を避けるため、現時点では自動スケーリングをアクティブ化しないでください。
  4. オプションで、復元された RDS DB インスタンスを変更してカスタムセキュリティグループを含めます。新しい RDS DB インスタンスにはデフォルトのデータベースセキュリティグループが適用されます。カスタムセキュリティグループを使用する場合は、この時点で設定してください。
  5. 手動で新しい RDS DB インスタンスのストレージ容量を増加させます。

注: アプリケーションまたはクライアントには、ステップ 1~4 でデータベースのダウンタイムが発生します。

オプション 3: 自動スケーリングはオンになっているが、FreeStorageSpace が少ないためにアクティブ化したくない

自動スケーリングをオフにすると、追加のストレージが自動的に割り当てられなくなります。この機能により、インスタンスにストレージを手動で割り当てることができます。ストレージの割り当てを手動で制御したい場合は、自動スケーリングをオフにします。例: 自動スケーリングではストレージが 10% 増加しますが、次の自動スケーリングイベントが開始されるまでに 10% 超を追加することが想定されます。

  1. Amazon RDS コンソールを開きます。
  2. [Modify] (変更) を選択します。
  3. [Storage Autoscaling] (ストレージの自動スケーリング) から、[Enable storage autoscaling] (ストレージの自動スケーリングを有効にする) をオフにします。
  4. [Continue] (続行) を選択します。
  5. 次に、[Apply immediately] (すぐに適用) または [Apply during the next scheduled maintenance window] (予定されている次のメンテナンスウィンドウ中に適用) のいずれかを選択します。
  6. [Modify DB Instance] (DB インスタンスを変更) を選択します。

注: 自動スケーリングは、FreeStorageSpace メトリクスが 5 分以上にわたって 10% 未満となったときに開始されます。また、インスタンスでの最後の storage-modification から 6 時間以上が経過しているとき、または storage-optimization が完了したときにも開始されます (いずれか長い方)。


関連情報

Amazon RDS DB インスタンスのストレージを使用する

Amazon RDS for PostgreSQL で「デバイスに空き容量がありません」または「DiskFull」エラーが表示されるのはなぜですか?

予想よりも多くのストレージを使用している Amazon RDS Oracle DB インスタンスに関する問題を解決する方法を教えてください。

予想よりも多くのストレージを使用している Amazon RDS MySQL DB インスタンスに関する問題を解決する方法を教えてください。

SQL Server を実行している Amazon RDS DB インスタンスのストレージ消費についてトラブルシューティングする方法を教えてください。

AWS公式
AWS公式更新しました 1年前