Udemy講師クーポン配布中。詳しくはこちら

【無料】AWS SOA-C03練習問題15問|Udemy講師作成

AWS SOA無料問題集です。正解と解説を確認する際は右側のボタンを押下してください。

問題集の完全版は以下Udemyにて発売しているためお買い求めください。問題集への質問はUdemyのQA機能もしくはUdemyのメッセージにて承ります。Udemyの問題4から15問抜粋しております。

多くの方にご好評いただき、講師評価 4.5/5.0 を獲得できております。ありがとうございます。

特別価格: 通常2,600円1,500円

講師クーポン適用で42%OFF

講師クーポン【全出題範囲網羅+詳細解説】AWS SOA-C03日本語実践問題260問(シスオプスアドミニストレータアソシエイト)

問題文:
ある企業の内部Webアプリケーションのユーザーが、短期間アプリケーションのパフォーマンス問題を経験しました。アプリケーションには、Amazon Elastic Kubernetes Service(Amazon EKS)クラスターで実行されるフロントエンドWebサーバーが含まれています。アプリケーションには、1つのDBインスタンスを含むバックエンドのAmazon Aurora PostgreSQL DBクラスターも含まれています。SysOps管理者は、パフォーマンス問題の原因がDBクラスターの高使用率であることを特定しました。単一のwriterインスタンスは11分間、90%以上の使用率を経験しました。高使用率の原因は、週に1回実行されるようにスケジュールされた自動レポートでした。このレポートはデータベースに対して読み取り専用のクエリのみを実行します。レポートが毎週実行されるときにユーザーがパフォーマンス問題を経験しないようにするために、SysOps管理者は何をすべきですか?
選択肢:
A. DBインスタンスのサイズを増やします。レポートの次回スケジュール実行時にパフォーマンスを監視します。
B. readerインスタンスを追加します。レポートアプリケーションのデータベース接続文字列を、新しく作成されたreaderインスタンスを使用するように変更します。
C. 別のwriterインスタンスを追加します。レポートアプリケーションのデータベース接続文字列を、新しく作成されたwriterインスタンスを使用するように変更します。
D. DBクラスターのオートスケーリングを構成します。最小キャパシティユニット、最大キャパシティユニット、ターゲット使用率を設定します。

正解:B

A. DBインスタンスのサイズを増やします。レポートの次回スケジュール実行時にパフォーマンスを監視します。

不正解 DBインスタンスのサイズを増やすことで、より多くのCPUとメモリリソースを提供し、高負荷に対応できますが、これは最適なアプローチではありません。レポートが読み取り専用である場合、writerインスタンスの容量を増やすよりも、読み取りワークロードを専用のreaderインスタンスに分離する方がコスト効率が高く、スケーラブルです。writerインスタンスのリソースをトランザクション処理のために確保すべきです。

B. readerインスタンスを追加します。レポートアプリケーションのデータベース接続文字列を、新しく作成されたreaderインスタンスを使用するように変更します。

正解 レポートが読み取り専用のクエリで構成されている場合、Aurora readerインスタンスを追加し、レポートワークロードをreaderに向けることがAuroraの推奨されるベストプラクティスです。これにより、プライマリwriterインスタンスはトランザクション処理(INSERT、UPDATE、DELETE)に専念でき、読み取り専用のレポートクエリは専用のreaderで処理されます。writerインスタンスへの負荷を軽減し、コスト効率も高く、将来的なスケーラビリティも向上します。

C. 別のwriterインスタンスを追加します。レポートアプリケーションのデータベース接続文字列を、新しく作成されたwriterインスタンスを使用するように変更します。

不正解 Aurora PostgreSQLは、複数のwriterインスタンス(マルチマスター構成)をサポートしていません。Aurora MySQLにはマルチマスター機能がありますが、PostgreSQLバージョンには実装されていません。Aurora PostgreSQLでは、1つのwriterインスタンスと複数のreaderインスタンスという構成のみが可能です。したがって、この選択肢は技術的に実現不可能です。

D. DBクラスターのオートスケーリングを構成します。最小キャパシティユニット、最大キャパシティユニット、ターゲット使用率を設定します。

不正解 標準のAurora(プロビジョニング済み)では、readerインスタンスのAuto Scalingは可能ですが、問題文はwriterインスタンスの負荷が問題であることを示しています。まず、読み取りワークロードをreaderインスタンスに分離することが先決です。その後、必要に応じてreaderインスタンスのAuto Scalingを構成できます。また、「キャパシティユニット」という用語はServerless固有のもので、標準のプロビジョニング済みAuroraには適用されません。

問われている要件

  • 週次の読み取り専用レポート実行時のDBクラスター高使用率問題を解決すること
  • ユーザーがパフォーマンス問題を経験しないようにすること
  • writerインスタンスの90%以上の使用率を改善すること
  • コスト効率の高い持続可能なソリューションを実装すること

前提知識

Aurora PostgreSQLのアーキテクチャと読み取りスケーリング

Amazon Aurora PostgreSQLは、クラウド向けに最適化されたリレーショナルデータベースエンジンです。1つのプライマリ(writer)インスタンスと最大15個のAurora Replica(reader)インスタンスで構成されるクラスター構成をサポートします。writerインスタンスは読み取りと書き込みの両方を処理できますが、readerインスタンスは読み取り専用のクエリを処理します。すべてのインスタンスは同じ共有ストレージボリュームにアクセスし、レプリケーションラグはミリ秒単位で非常に低くなります。この設計により、読み取りワークロードを効率的にスケールできます。

読み取りワークロードの分離のベストプラクティス

Auroraの推奨アーキテクチャでは、読み取り専用のワークロードをreaderインスタンスにオフロードすることが基本原則です。レポート、分析クエリ、読み取り専用のアプリケーション、ビジネスインテリジェンス(BI)ツールなどは、readerインスタンスに向けるべきです。これにより、writerインスタンスはOLTP(オンライントランザクション処理)ワークロード、つまりINSERT、UPDATE、DELETEなどのトランザクション処理に専念でき、全体的なパフォーマンスとスループットが向上します。読み取りと書き込みのワークロードを分離することで、リソースの競合が減少します。

Auroraエンドポイントの種類と使い分け

Auroraクラスターには複数のエンドポイントがあります。クラスターエンドポイント(writerエンドポイント)は常にプライマリwriterインスタンスを指し、書き込み操作に使用します。リーダーエンドポイントは、利用可能なすべてのreaderインスタンス間で読み取りトラフィックを自動的にロードバランシングします。カスタムエンドポイントを使用すると、特定のインスタンスのサブセットを指定して、ワークロードごとに異なる接続先を定義できます。レポートアプリケーションは、リーダーエンドポイントまたはカスタムエンドポイントを使用するように構成すべきです。

垂直スケーリングと水平スケーリングの比較

垂直スケーリング(スケールアップ)は、DBインスタンスのサイズを大きくすることで、より多くのCPU、メモリ、ネットワーク帯域幅を提供します。上限があり、短時間のダウンタイムが発生する可能性があります。水平スケーリング(スケールアウト)は、readerインスタンスを追加することで読み取り容量を増やします。ダウンタイムなしで実施でき、より柔軟でコスト効率が高くなります。読み取り専用の負荷が高い場合、水平スケーリングが推奨されるアプローチです。必要に応じて複数のreaderを追加でき、不要になれば削除できるため、柔軟性が高くなります。

コスト効率とパフォーマンス最適化

writerインスタンスのサイズを増やすことは、より高価なインスタンスクラスに移行することを意味し、コストが大幅に増加する可能性があります。一方、readerインスタンスを追加することで、読み取りワークロードのみに必要な容量を追加でき、writerインスタンスは小さく保つことができます。また、読み取り専用のワークロードをreaderに分離することで、writerインスタンスのリソースが解放され、トランザクション処理のパフォーマンスが向上します。これは、コストとパフォーマンスの両方の観点から最適なアプローチです。

解くための考え方

この問題のキーポイントは、「レポートはデータベースに対して読み取り専用のクエリのみを実行する」という前提条件です。この情報があることで、最適な解決策が明確になります。

まず、問題の本質を理解します。writerインスタンスが90%以上の使用率を経験したのは、読み取り専用のレポートクエリが原因です。つまり、書き込みワークロードではなく、読み取りワークロードがwriterインスタンスに過負荷をかけています。

Auroraのアーキテクチャでは、writerインスタンスは読み取りと書き込みの両方を処理できますが、読み取り専用のワークロードをwriterで処理することは非効率です。writerインスタンスはトランザクション処理のために予約し、読み取り専用のワークロードは専用のreaderインスタンスで処理すべきです。

readerインスタンスを追加してレポートアプリケーションの接続文字列を変更するアプローチには、以下の利点があります:

  1. writerインスタンスの負荷が軽減され、トランザクション処理に専念できる
  2. レポートクエリは専用のreaderで処理され、パフォーマンスが向上する
  3. 将来的に読み取り負荷が増加しても、追加のreaderインスタンスを追加できる
  4. コスト効率が高い(writerのサイズを増やすより安価)

writerインスタンスのサイズを増やすアプローチは、読み取り専用ワークロードに対する最適な解決策ではありません。writerインスタンスは書き込み処理のために使用すべきで、読み取り専用の負荷のためにサイズを増やすことは、リソースの無駄遣いとなります。

複数のwriterインスタンスを追加する提案は、Aurora PostgreSQLが複数のwriterをサポートしていないため、技術的に不可能です。

オートスケーリングを構成する提案は、まず読み取りワークロードをreaderに分離することが先決であり、その後必要に応じてAuto Scalingを検討すべきです。

したがって、レポートが読み取り専用である場合、readerインスタンスを追加してレポートワークロードをreaderに向けることが、Auroraのベストプラクティスに沿った最適な解決策です。

参考資料

筆者のUdemy講師ページはこちら。

Udemy
syo @Cloud | AWS,Azure| Udemy syo @Cloud is a Udemy instructor with educational courses available for enrollment. Check out the latest courses taught by syo @Cloud
目次

スポンサーリンク

以下スポンサーリンクです。

この記事がお役に立ちましたら、コーヒー1杯分(300円)の応援をいただけると嬉しいです。いただいた支援は、より良い記事作成のための時間確保や情報収集に活用させていただきます。

目次