FreeStorageSpace メトリクスに Amazon CloudWatch アラームを作成する。空き容量が少なくなったら Amazon SNS でエンジニアに通知する。
CloudWatch アラームと SNS の通知を使えば、空き容量が少なくなったことに早く気付けます。容量の監視としては有効です。
しかし通知を受けるだけでは、割り当てストレージを増やす作業は手作業のまま残ります。作業をなくすという要件を満たしません。
ある CloudOps エンジニアは、Amazon RDS for MySQL の DB インスタンスを運用しています。毎月の外部データの取り込みでデータ量が増え続けており、空き容量が少なくなるたびに、エンジニアが手作業で割り当てストレージを増やしています。 運用上のオーバーヘッドを最小限に抑えながら、この作業をなくすソリューションはどれですか。
RDS for MySQL のデータ量の増加に合わせて、割り当てストレージを手作業なしで増やす機能を選ぶ
FreeStorageSpace メトリクスに Amazon CloudWatch アラームを作成する。空き容量が少なくなったら Amazon SNS でエンジニアに通知する。
CloudWatch アラームと SNS の通知を使えば、空き容量が少なくなったことに早く気付けます。容量の監視としては有効です。
しかし通知を受けるだけでは、割り当てストレージを増やす作業は手作業のまま残ります。作業をなくすという要件を満たしません。
DB インスタンスのリードレプリカを作成する。読み取りのクエリをリードレプリカに向ける。
リードレプリカは、読み取りのクエリを別の DB インスタンスへ分けてソースの負荷を下げる機能です。読み取りの多いワークロードには有効です。
しかしリードレプリカは別の DB インスタンスで、ソースの割り当てストレージは増えません。取り込みのデータはソースに書き込まれ続けるため、割り当てを増やす作業は手作業のまま残ります。
DB インスタンスでストレージ自動スケーリングを有効にする。最大ストレージしきい値を設定する。
RDS のストレージ自動スケーリングを有効にすると、空き容量が少なくなったことを RDS が検知し、割り当てストレージを自動で増やします。データ量が増え続けるワークロードでも、エンジニアが手作業でストレージを増やす必要がなくなります。
有効にするときは、自動で増やせる上限として最大ストレージしきい値を設定します。設定の変更は再起動を伴わず、ダウンタイムも発生しません。
Amazon RDS Proxy を作成する。アプリケーションの接続先を RDS Proxy のエンドポイントに切り替える。
RDS Proxy は、データベースへの接続をプールして共有する機能です。接続を頻繁に開くアプリケーションや、フェイルオーバーの際の接続の扱いに向いています。
ストレージの容量とは関係がなく、割り当てストレージを増やす仕組みを持ちません。割り当てを増やす作業は手作業のまま残ります。
RDS で容量の不足に手作業で対応しないための機能を、ほかの RDS の機能やサービスの役割と区別できるかがポイントです。
・ストレージ自動スケーリングは、空き容量が少なくなったことを RDS が検知して、割り当てストレージを自動で増やします。上限は最大ストレージしきい値で決め、設定の変更にダウンタイムは伴いません。
・CloudWatch アラームは FreeStorageSpace などのメトリクスを監視して通知できます。通知を受けるだけでは容量は増えないので、変更作業は人に残ります。
・リードレプリカは読み取りのクエリを別の DB インスタンスへ分ける機能で、ソースの割り当てストレージは増やしません。
・RDS Proxy はデータベースへの接続をプールして共有する機能で、ストレージの容量とは関係がありません。