Q57 — AWS DVA-C02 第2章
第 57/100 問 | ← 第2章
ある企業がオンプレミスデータベースをAmazon RDS for MySQLに移行しています。この企業の読み取りワークロードは非常に大きいです。この企業は、クエリの読み取りパフォーマンスを最適化するためにコードを再構築したいと考えています。この要件を、現在および将来の工数を最小限に抑えながら満たす解決策はどれですか?
- A. マルチAZのAmazon RDSデプロイを使用する。コードを変更して、データベースとの接続数を増加させるか、接続プールのサイズ(使用している場合)を増加させる。
- B. マルチAZのAmazon RDSデプロイを使用する。コードを変更して、クエリが補助RDSインスタンスにアクセスするようにする。
- C. 1つ以上の読み取り専用レプリカを持つAmazon RDSをデプロイする。アプリケーションコードを変更して、クエリが読み取り専用レプリカのURLを使用するようにする。 ✓
- D. Amazon EC2インスタンス上でオープンソースのレプリケーションソフトウェアを使用してMySQLデータベースのコピーを作成する。アプリケーションコードを変更して、クエリがEC2インスタンスのIPアドレスを使用するようにする。
正解: C. 1つ以上の読み取り専用レプリカを持つAmazon RDSをデプロイする。アプリケーションコードを変更して、クエリが読み取り専用レプリカのURLを使用するようにする。
解説
選択肢A:Amazon EC2インスタンス上でオープンソースのレプリケーションソフトウェアを使用してMySQLデータベースのコピーを作成し、アプリケーションコードを変更してEC2インスタンスのIPアドレスを使用する。この方法では、MySQLのレプリケーションおよび保守を自社で管理する必要があり、管理コストおよび複雑性が増加します。また、EC2インスタンスのパフォーマンスおよび可用性の管理も自社負担となり、工数が増加します。 選択肢B:マルチAZのAmazon RDSデプロイを使用し、コードを変更して補助RDSインスタンスにクエリを送信する。マルチAZデプロイは高可用性を向上させますが、読み取りパフォーマンスの改善には限定的です。補助インスタンスは障害発生時のフェイルオーバーに有効ですが、読み取りパフォーマンスの向上には寄与しません。 選択肢C:マルチAZのAmazon RDSデプロイを使用し、コードとデータベース間の接続数または接続プールサイズ(使用している場合)を増加させる。接続数または接続プールサイズの増加は、データベース接続管理の改善にはなりますが、クエリの読み取りパフォーマンス向上には限定的です。これは接続管理に焦点を当てた手法であり、クエリパフォーマンス最適化ではありません。 選択肢D:1つ以上の読み取り専用レプリカを持つAmazon RDSをデプロイし、アプリケーションコードを変更してクエリが読み取り専用レプリカのURLを使用する。Amazon RDSにおける読み取り専用レプリカのデプロイは、読み取りパフォーマンスを大幅に向上させます。クエリを複数のレプリカに分散させることで、プライマリインスタンスの負荷を軽減できます。この手法では、追加のレプリケーション管理やEC2インスタンスの管理を自社で行う必要がなく、Amazon RDSがすべてを管理します。 したがって、選択肢Dが最適な選択であり、読み取り専用レプリカを使用することでクエリの読み取りパフォーマンスを向上させつつ、管理および保守負荷を最小限に抑え、最小工数で要件を満たします。