Udemy講師クーポン配布中。詳しくはこちら(AIP問題集追加しました)

【無料】AWS SAP-C02練習問題10問|図解解説付き|Udemy講師作成

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

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

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

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

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

【図解付き】AWS SAP-C02完全対応 2025年版本番同等演習問題集+詳細解説

【図解付き】AWS SAP-C02完全対応 2025年版本番同等演習問題集+詳細解説

この資格を活かしたキャリア情報

SAP資格の取得後にどんなキャリアが開けるか、詳しくはこちら:
→ SAP合格者の転職市場価値と求人傾向

AWS資格全体のキャリア活用法:
→ AWS資格は転職・キャリアアップでどう活きる?資格別市場価値と実体験

問題文:
医療機関向けにオンライン診療予約サービスを提供する企業が、自社データセンターで2階層のWeb予約システムを稼働させています。アプリケーション層は、セッション情報をサーバーのメモリ内に保持するステートフルなアプリケーションを実行する単一サーバーです。アプリケーションは別サーバーのMySQLデータベースに接続しています。提携医療機関の拡大により予約参照の読み取り処理が数倍に増える見込みであるため、同社はアプリケーションとデータベースをAWSへ移行します。移行後の構成にはAmazon Aurora MySQL、Amazon EC2 Auto Scaling、Elastic Load Balancingを使用します。
予約中の利用者がログイン状態を失うことなく、アプリケーション層とデータベース層の両方をスケールできるソリューションはどれでしょうか。

選択肢:
A. データベース層では、Auroraライターインスタンスを対象にAurora Auto Scalingのターゲット追跡ポリシーを構成する。アプリケーション層にはNetwork Load Balancerを置き、ターゲットグループのルーティングアルゴリズムに加重ランダムを指定したうえでスティッキーセッションを有効にする。
B. データベース層では、Auroraライターインスタンスを対象にAurora Auto Scalingのターゲット追跡ポリシーを構成する。アプリケーション層にはApplication Load Balancerを置き、ターゲットグループのルーティングアルゴリズムにラウンドロビンを指定したうえでスティッキーセッションを有効にする。
C. データベース層では、Aurora Replicasを対象にAurora Auto Scalingのターゲット追跡ポリシーを構成する。アプリケーション層にはApplication Load Balancerを置き、ターゲットグループのルーティングアルゴリズムにラウンドロビンを指定してスティッキーセッションを有効にする。
D. データベース層では、Aurora Replicasを対象にAurora Auto Scalingのターゲット追跡ポリシーを構成する。アプリケーション層にはNetwork Load Balancerを置き、ターゲットグループのルーティングアルゴリズムに加重ランダムを指定したうえでスティッキーセッションを有効にする。

正解:C

A. データベース層では、Auroraライターインスタンスを対象にAurora Auto Scalingのターゲット追跡ポリシーを構成する。アプリケーション層にはNetwork Load Balancerを置き、ターゲットグループのルーティングアルゴリズムに加重ランダムを指定したうえでスティッキーセッションを有効にする。

不正解 ライターインスタンスを対象としたAurora Auto Scalingは設定できず、読み取り負荷の増加に追従できません。加えてNetwork Load Balancerは加重ランダムを含むルーティングアルゴリズムの選択に対応しておらず、クッキーベースのセッション親和性も提供しないため、アプリケーション層とデータベース層のどちらの要件も満たしません。

B. データベース層では、Auroraライターインスタンスを対象にAurora Auto Scalingのターゲット追跡ポリシーを構成する。アプリケーション層にはApplication Load Balancerを置き、ターゲットグループのルーティングアルゴリズムにラウンドロビンを指定したうえでスティッキーセッションを有効にする。

不正解 Aurora Auto Scalingはリーダーインスタンスの台数を増減する機能であり、ライターインスタンスを対象に台数を増やす設定はできません。Auroraクラスターは書き込みを受け付けるインスタンスを常に1つだけ持つため、この指定ではデータベース層の読み取りスケーリングが行われません。ロードバランサー側の指定は妥当ですが、要件の半分しか満たしません。

C. データベース層では、Aurora Replicasを対象にAurora Auto Scalingのターゲット追跡ポリシーを構成する。アプリケーション層にはApplication Load Balancerを置き、ターゲットグループのルーティングアルゴリズムにラウンドロビンを指定してスティッキーセッションを有効にする。

正解 Aurora Auto Scalingは読み取りレプリカの台数をメトリクスに応じて増減させ、予約参照の読み取り負荷に追従します。Application Load Balancerはラウンドロビンをターゲットグループの既定アルゴリズムとして提供し、クッキーによるスティッキーセッションでログイン中の利用者を同じインスタンスに固定できます。この組み合わせで両層のスケーリングとセッション継続を同時に満たせます。

D. データベース層では、Aurora Replicasを対象にAurora Auto Scalingのターゲット追跡ポリシーを構成する。アプリケーション層にはNetwork Load Balancerを置き、ターゲットグループのルーティングアルゴリズムに加重ランダムを指定したうえでスティッキーセッションを有効にする。

不正解 Aurora Replicasに対するAuto Scalingの部分は妥当ですが、Network Load Balancerのターゲットグループにはルーティングアルゴリズムを選択する属性そのものが存在せず、接続はフローハッシュで振り分けられます。加重ランダムは指定できません。NLBのスティッキーセッションもソースIPベースの維持のみで、HTTPクッキーによるセッション親和性は提供されません。

全体的な説明

問われている要件

  • 予約手続き中の利用者のセッションを維持したままの水平スケーリング
  • アプリケーション層とデータベース層の両方でのスケーラビリティ
  • MySQLデータベースのAurora MySQLへの移行対応
  • EC2 Auto Scalingを活用した動的なアプリケーション層スケーリング
  • 適切なロードバランサーの選択とルーティングアルゴリズム設定

前提知識

Amazon Aurora Auto Scalingの特徴

  • Aurora Auto Scalingは読み取り専用のAurora Replicasを対象とし、ワークロードに応じてレプリカを自動的に追加・削除します。平均CPU使用率や平均接続数のターゲット追跡ポリシーで制御し、クラスターあたり最大15個のレプリカまで拡張できます。読み取りエンドポイントに新しいレプリカが自動で組み込まれるため、アプリケーション側の接続先変更は不要です。
  • Aurora Auto Scalingの対象はリーダーインスタンスに限られます。Auroraクラスターは書き込みを受け付けるライターインスタンスを1つだけ持ち、その台数を自動で増やす設定は用意されていません。書き込み能力の拡張はインスタンスクラスの変更やAurora Serverless v2による容量調整といった別の手段で行います。

Load Balancerのルーティング機能について

  • Application Load Balancer(ALB)はターゲットグループの属性でルーティングアルゴリズムを選択でき、ラウンドロビン(既定)、最小未処理リクエスト、加重ランダムの3種類をサポートします。スティッキーセッションはロードバランサー生成クッキーとアプリケーションクッキーの両方に対応し、同一利用者のリクエストを同じターゲットに固定できます。
  • Network Load Balancer(NLB)はTCP/UDPレイヤーで動作し、接続をフローハッシュで振り分けます。ターゲットグループにルーティングアルゴリズムを選択する属性はなく、スティッキーセッションの種類もソースIPのみです。超高スループットと低レイテンシに最適化されている一方、HTTPクッキーに依存するセッション親和性は扱えません。

ステートフルアプリケーションの要件について

  • ステートフルアプリケーションは、ユーザーセッション情報やアプリケーション状態をサーバー側で保持するため、同一ユーザーのリクエストを一貫して同じサーバーインスタンスに送信する必要があります。スティッキーセッション機能により、ロードバランサーがクッキーを使用して特定のクライアントを特定のバックエンドサーバーに関連付けます。これにより、セッション情報の一貫性が保たれ、予約入力の途中でログイン状態が失われる事態を防げます。

解くための考え方

この問題を解く際の核心は、Aurora Auto Scalingの対象範囲と、ロードバランサーごとに設定できる項目の違いを正確に押さえることです。

まず、Aurora Auto Scalingの対象が読み取りレプリカ(Aurora Replicas)に限られる点を確認します。Auroraクラスターでは書き込みを受け付けるインスタンスが常に1つであり、ライターを対象にした台数の自動増減は選べません。予約参照が増えるという要件は、レプリカの追加によって吸収します。

次に、ステートフルアプリケーションの要件を考慮すると、スティッキーセッション機能が必須となります。ユーザーセッション情報がサーバー側で管理されているため、同一ユーザーからのリクエストは一貫して同じアプリケーションインスタンスに送信される必要があります。

Network Load BalancerとApplication Load Balancerの比較では、NLBのターゲットグループにルーティングアルゴリズムの選択肢がなく、フローハッシュで固定される点が決め手になります。ALBはラウンドロビンを含む3種類のアルゴリズムとクッキーベースのスティッキーセッションを設定できるため、HTTPで動作する予約システムの要件に合致します。

アーキテクチャ図

アーキテクチャ図の解説

スケーラブルなアプリケーション層の構成

このアーキテクチャでは、Application Load Balancerがスティッキーセッション機能を使用して、予約手続き中の利用者からのリクエストを一貫して同じEC2インスタンスにルーティングします。ラウンドロビンアルゴリズムにより、新規ユーザーのトラフィックは利用可能なインスタンス間で均等に分散され、EC2 Auto Scaling Groupが需要に応じてインスタンス数を動的に調整します。この設計により、ステートフルアプリケーションのセッション一貫性を維持しながら、水平スケーリングを実現できます。

データベース層の読み取りスケーリング戦略

Aurora MySQLクラスターでは、単一のライターインスタンスがすべての書き込み処理を担当し、複数のAurora Replicasが予約参照などの読み取り処理を分担します。Aurora Auto Scalingが平均CPU使用率や平均接続数のメトリクスを監視し、読み取り負荷に応じてレプリカの数を自動的に調整します。この構成により、読み取り集約的なワークロードに対して効率的なスケーリングを提供し、アプリケーションの応答性能を向上させます。

他のソリューションとの比較

Network Load Balancerとの機能的差異

Network Load Balancerは超高性能なTCPレベルでの負荷分散を提供しますが、ターゲットの選択方法はフローハッシュに固定されており、ルーティングアルゴリズムを指定する属性がありません。加重ランダムや最小未処理リクエストといった選択はALB側の機能です。スティッキーセッションもソースIPベースの維持に限られるため、NATやモバイル回線でIPが変わる利用者のセッションは維持できません。

Application Load Balancerは、HTTP/HTTPSトラフィックに特化した高度な機能を提供し、アプリケーションレベルでのルーティング決定、コンテンツベースルーティング、クッキーによるスティッキーセッション管理を実現します。Web予約システムの要件には、ALBの方が技術的に適合します。

Aurora ライターを対象としたAuto Scalingの制約

一部の選択肢で示されているライターインスタンスへのAurora Auto Scalingは設定できません。Auroraクラスターでは書き込みを受け付けるインスタンスが常に1つに保たれ、書き込みの整合性が保証されます。書き込み能力を伸ばす場合はインスタンスクラスの引き上げやAurora Serverless v2の容量調整を用い、台数の自動増減が使えるのは読み取りレプリカだけです。

実装の考慮事項

セッション管理とスティッキーセッション設定 ステートフルアプリケーションの移行時には、セッション情報の永続化戦略を慎重に検討する必要があります。インメモリセッション管理から、外部セッションストア(ElastiCache等)の利用への移行を検討することで、より堅牢なスケーリング対応が可能になります。ALBのスティッキーセッション設定では、クッキーの有効期間を診療予約の入力時間に見合う長さにし、インスタンス障害時のセッション継続性を確保します。

Aurora Auto Scalingのメトリクス調整 Aurora Auto Scalingの設定では、平均CPU使用率や平均接続数のターゲット値を、アプリケーションの実際の負荷パターンに基づいて調整することが重要です。スケールアウト・スケールインのクールダウン期間を適切に設定し、頻繁なスケーリング動作によるコスト増加や性能低下を防止します。また、読み取り専用クエリとトランザクション処理を適切に分離し、レプリカでの読み取り処理を最大化するアプリケーション設計の見直しも推奨されます。

参考資料

目次

スポンサーリンク

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

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

目次