QUESTION

ある CloudOps エンジニアは、Amazon RDS for MySQL の DB インスタンスを運用しています。毎月の外部データの取り込みでデータ量が増え続けており、空き容量が少なくなるたびに、エンジニアが手作業で割り当てストレージを増やしています。 運用上のオーバーヘッドを最小限に抑えながら、この作業をなくすソリューションはどれですか。

1 / 1
回答を選択してください
正解C

解説

RDS for MySQL のデータ量の増加に合わせて、割り当てストレージを手作業なしで増やす機能を選ぶ

  • 1「データ量が増え続けており」一時的ではなく、継続して容量が必要になる状態です。増えるたびに対応する仕組みが要ります。
  • 2「エンジニアが手作業で割り当てストレージを増やしています」なくしたいのは容量を増やす作業そのものです。不足に気付く仕組みだけでは足りません。
  • 3「運用上のオーバーヘッドを最小限に抑えながら」自前の仕組みを作るより、RDS が持つ機能で自動化する手段が優先されます。
A不正解

FreeStorageSpace メトリクスに Amazon CloudWatch アラームを作成する。空き容量が少なくなったら Amazon SNS でエンジニアに通知する。

CloudWatch アラームと SNS の通知を使えば、空き容量が少なくなったことに早く気付けます。容量の監視としては有効です。

しかし通知を受けるだけでは、割り当てストレージを増やす作業は手作業のまま残ります。作業をなくすという要件を満たしません。

B不正解

DB インスタンスのリードレプリカを作成する。読み取りのクエリをリードレプリカに向ける。

リードレプリカは、読み取りのクエリを別の DB インスタンスへ分けてソースの負荷を下げる機能です。読み取りの多いワークロードには有効です。

しかしリードレプリカは別の DB インスタンスで、ソースの割り当てストレージは増えません。取り込みのデータはソースに書き込まれ続けるため、割り当てを増やす作業は手作業のまま残ります。

C正解

DB インスタンスでストレージ自動スケーリングを有効にする。最大ストレージしきい値を設定する。

RDS のストレージ自動スケーリングを有効にすると、空き容量が少なくなったことを RDS が検知し、割り当てストレージを自動で増やします。データ量が増え続けるワークロードでも、エンジニアが手作業でストレージを増やす必要がなくなります。

有効にするときは、自動で増やせる上限として最大ストレージしきい値を設定します。設定の変更は再起動を伴わず、ダウンタイムも発生しません。

D不正解

Amazon RDS Proxy を作成する。アプリケーションの接続先を RDS Proxy のエンドポイントに切り替える。

RDS Proxy は、データベースへの接続をプールして共有する機能です。接続を頻繁に開くアプリケーションや、フェイルオーバーの際の接続の扱いに向いています。

ストレージの容量とは関係がなく、割り当てストレージを増やす仕組みを持ちません。割り当てを増やす作業は手作業のまま残ります。

ポイント

RDS で容量の不足に手作業で対応しないための機能を、ほかの RDS の機能やサービスの役割と区別できるかがポイントです。
・ストレージ自動スケーリングは、空き容量が少なくなったことを RDS が検知して、割り当てストレージを自動で増やします。上限は最大ストレージしきい値で決め、設定の変更にダウンタイムは伴いません。
・CloudWatch アラームは FreeStorageSpace などのメトリクスを監視して通知できます。通知を受けるだけでは容量は増えないので、変更作業は人に残ります。
・リードレプリカは読み取りのクエリを別の DB インスタンスへ分ける機能で、ソースの割り当てストレージは増やしません。
・RDS Proxy はデータベースへの接続をプールして共有する機能で、ストレージの容量とは関係がありません。