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

【無料】AWS ANS-C01練習問題15問|図解解説付き|Udemy講師作成

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

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

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

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

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

講師クーポン【構成図解付き】出題範囲網羅+AWS ANS-C01日本語実践問題220問 (Advanced Networking)

AWS ANS問題集サムネ

問題文:
ある企業は既存のアプリケーションを新しいAWSアカウントに移行しています。同社は1つのVPCと複数のアベイラビリティゾーンを使用して、単一のAWSリージョンにアプリケーションをデプロイします。アプリケーションはAmazon EC2インスタンス上で実行されます。各アベイラビリティゾーンには複数のEC2インスタンスがあります。EC2インスタンスはプライベートサブネットにデプロイされます。同社のクライアントはHTTPSプロトコルを使用してWebブラウザでアプリケーションに接続します。インバウンド接続はアベイラビリティゾーンとEC2インスタンス間で分散される必要があります。同じクライアントセッションからのすべての接続は同じEC2インスタンスに接続される必要があります。同社はアプリケーションのSSL証明書を使用して、クライアントとアプリケーション間のすべての接続にエンドツーエンドの暗号化を提供する必要があります。これらの要件を満たすソリューションはどれですか?
選択肢:
A. Network Load Balancerを作成します。ターゲットグループを作成します。ターゲットグループのプロトコルをTCPに、ポートを443に設定します。セッションアフィニティ(スティッキーセッション)をオンにします。EC2インスタンスをターゲットとして登録します。リスナーを作成します。リスナーのプロトコルをTCPに、ポートを443に設定します。SSL証明書をEC2インスタンスにデプロイします。
B. Application Load Balancerを作成します。ターゲットグループを作成します。ターゲットグループのプロトコルをHTTPに、ポートを80に設定します。アプリケーションベースのCookieポリシーでセッションアフィニティ(スティッキーセッション)をオンにします。EC2インスタンスをターゲットとして登録します。HTTPSリスナーを作成します。デフォルトアクションをターゲットグループに転送するように設定します。AWS Certificate Manager(ACM)を使用してリスナー用の証明書を作成します。
C. Network Load Balancerを作成します。ターゲットグループを作成します。ターゲットグループのプロトコルをTLSに、ポートを443に設定します。セッションアフィニティ(スティッキーセッション)をオンにします。EC2インスタンスをターゲットとして登録します。リスナーを作成します。リスナーのプロトコルをTLSに、ポートを443に設定します。AWS Certificate Manager(ACM)を使用してアプリケーション用の証明書を作成します。
D. Application Load Balancerを作成します。ターゲットグループを作成します。ターゲットグループのプロトコルをHTTPSに、ポートを443に設定します。アプリケーションベースのCookieポリシーでセッションアフィニティ(スティッキーセッション)をオンにします。EC2インスタンスをターゲットとして登録します。HTTPリスナーを作成します。リスナーのポートを443に設定します。デフォルトアクションをターゲットグループに転送するように設定します。

正解:A

A. Network Load Balancerを作成します。ターゲットグループを作成します。ターゲットグループのプロトコルをTCPに、ポートを443に設定します。セッションアフィニティ(スティッキーセッション)をオンにします。EC2インスタンスをターゲットとして登録します。リスナーを作成します。リスナーのプロトコルをTCPに、ポートを443に設定します。SSL証明書をEC2インスタンスにデプロイします。

正解 Network Load BalancerをTCPリスナーとして構成すると、暗号化されたトラフィックをロードバランサーで復号せずにEC2インスタンスに転送できます。これにより、クライアントからEC2インスタンスまでのエンドツーエンド暗号化が実現します。SSL証明書はEC2インスタンスにデプロイされるため、アプリケーションレベルでの暗号化が可能になります。また、NLBはセッションアフィニティをサポートしており、同じクライアントからの接続を同じインスタンスに固定します。

B. Application Load Balancerを作成します。ターゲットグループを作成します。ターゲットグループのプロトコルをHTTPに、ポートを80に設定します。アプリケーションベースのCookieポリシーでセッションアフィニティ(スティッキーセッション)をオンにします。EC2インスタンスをターゲットとして登録します。HTTPSリスナーを作成します。デフォルトアクションをターゲットグループに転送するように設定します。AWS Certificate Manager(ACM)を使用してリスナー用の証明書を作成します。

不正解 Application Load BalancerのHTTPSリスナーを使用すると、ロードバランサーで暗号化が終端するため、エンドツーエンドの暗号化が実現しません。ALBはリスナーでHTTPS接続を終端し、バックエンドのEC2インスタンスにはHTTPトラフィックを送信します(ターゲットグループがHTTPプロトコルに設定されているため)。これでは、ALBからEC2インスタンスへの通信が暗号化されないため、要件のエンドツーエンド暗号化を満たしません。

C. Network Load Balancerを作成します。ターゲットグループを作成します。ターゲットグループのプロトコルをTLSに、ポートを443に設定します。セッションアフィニティ(スティッキーセッション)をオンにします。EC2インスタンスをターゲットとして登録します。リスナーを作成します。リスナーのプロトコルをTLSに、ポートを443に設定します。AWS Certificate Manager(ACM)を使用してアプリケーション用の証明書を作成します。

不正解 Network Load BalancerでTLSリスナーを使用すると、ロードバランサーでTLS終端が行われます。これにより、ロードバランサーとEC2インスタンス間の通信は暗号化されていない状態になります。また、TLSターゲットグループを使用してスティッキーセッションを構成することはできません。NLBでスティッキーセッションを使用する場合、TCPリスナーが必要です。

D. Application Load Balancerを作成します。ターゲットグループを作成します。ターゲットグループのプロトコルをHTTPSに、ポートを443に設定します。アプリケーションベースのCookieポリシーでセッションアフィニティ(スティッキーセッション)をオンにします。EC2インスタンスをターゲットとして登録します。HTTPリスナーを作成します。リスナーのポートを443に設定します。デフォルトアクションをターゲットグループに転送するように設定します。

不正解 HTTPリスナーでポート443を使用する構成は標準的ではなく、通常HTTPリスナーはポート80を使用します。また、HTTPリスナーは暗号化されていないトラフィックを受け入れるため、クライアントからロードバランサーへの通信が暗号化されません。これは、クライアントがHTTPSプロトコルを使用して接続するという要件を満たしていません。

問われている要件

この問題では、以下の要件を満たすソリューションを選ぶ必要があります:

  1. アベイラビリティゾーンとEC2インスタンス間でのインバウンド接続の分散
  2. 同じクライアントセッションからの接続を同じEC2インスタンスに維持(セッションアフィニティ)
  3. クライアントからアプリケーションまでのエンドツーエンド暗号化
  4. アプリケーションのSSL証明書の使用

前提知識

AWS Elastic Load Balancing

AWSには主に3種類のロードバランサーがあります:

Application Load Balancer (ALB)

  • レイヤー7(アプリケーション層)で動作
  • HTTP/HTTPSトラフィックを処理
  • パス、ホスト、クエリパラメータなどに基づくルーティングが可能
  • ALBではHTTPSリスナーを使用すると、ロードバランサーでTLS終端が行われる
  • スティッキーセッションをサポート(アプリケーションCookieまたはロードバランサー生成Cookie)

Network Load Balancer (NLB)

  • レイヤー4(トランスポート層)で動作
  • TCP/UDP/TLSトラフィックを処理
  • 超低レイテンシー
  • 固定IPアドレスを提供
  • TCPフローのセッションアフィニティをサポート
  • TLSリスナーではロードバランサーでTLS終端が行われる
  • TCPリスナーでは暗号化されたトラフィックを転送可能

Gateway Load Balancer (GLB)

  • レイヤー3/4(ネットワーク/トランスポート層)で動作
  • 仮想アプライアンス向け
  • この問題には関連しない

TLS終端

TLS終端とは、TLS/SSL暗号化された通信を復号化するポイントを指します。以下のモデルがあります:

  1. ロードバランサーでのTLS終端
    • クライアント→ロードバランサー:暗号化
    • ロードバランサー→バックエンド:非暗号化
    • ALBのHTTPSリスナーやNLBのTLSリスナーはこの方式
  2. バックエンドでのTLS終端(パススルー)
    • クライアント→ロードバランサー→バックエンド:エンドツーエンドで暗号化
    • NLBのTCPリスナー(ポート443)はこの方式

セッションアフィニティ(スティッキーセッション)

セッションアフィニティとは、同じクライアントからのリクエストを常に同じバックエンドインスタンスにルーティングする機能です。これには以下の方法があります:

  1. ALBのスティッキーセッション
    • アプリケーションベースのCookie
    • ロードバランサー生成のCookie
    • HTTPヘッダーにCookieを挿入して実現
  2. NLBのセッションアフィニティ
    • クライアントIPアドレスに基づく
    • TCPフローごとに実現
    • TCPプロトコルのリスナーで使用可能

注意:NLBのTLSリスナーとTLSターゲットグループの組み合わせではスティッキーセッションはサポートされていません。

解くための考え方

この問題を解決するには、以下のステップで考える必要があります:

  1. エンドツーエンド暗号化の要件を検討する
    • エンドツーエンド暗号化が必要なため、ロードバランサーでのTLS終端は適切ではない
    • したがって、ALBのHTTPSリスナーやNLBのTLSリスナーは不適切
    • NLBのTCPリスナー(ポート443)はトラフィックを透過的に転送するため適切
  2. セッションアフィニティの要件を検討する
    • 同じクライアントセッションからの接続は同じEC2インスタンスに固定する必要がある
    • NLBはTCPリスナーでセッションアフィニティをサポート
  3. 証明書の配置を検討する
    • エンドツーエンド暗号化のためには、証明書はEC2インスタンス側に配置する必要がある
    • アプリケーションのSSL証明書を使用する要件を満たすため

上の図は、正解の選択肢の構成を示しています。クライアントからのHTTPS接続はNetwork Load BalancerのTCPリスナーを通じて、暗号化されたまま各アベイラビリティゾーンのEC2インスタンスに転送されます。これにより、クライアントからEC2インスタンスまでのエンドツーエンド暗号化が実現します。SSL証明書はEC2インスタンスにデプロイされ、セッションアフィニティ機能により同じクライアントからの接続は同じインスタンスに維持されます。

参考資料

筆者の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円)の応援をいただけると嬉しいです。いただいた支援は、より良い記事作成のための時間確保や情報収集に活用させていただきます。

目次