助け合いフォーラム

AWS

AWS クラウドプラクティショナー(CLF-C02)
問題ID : 39622
問題を開く
EC2インスタンスで稼働するWebアプリケーションに対して高可用性を実現したい。
次のうち、もっとも効果的である方法はどれか。

正解

複数のAZに配置されたEC2インスタンスをALBで負荷分散する

解説

Elastic Load Balancing(ELB)にはロードバランシングの方式によって複数の種類があります。そのうちのApplication Load Balancer(ALB)は、特にWebアプリケーションの高可用性を実現するために使用されます。
ALBはヘルスチェックを用いて正常なインスタンスのみにリクエストをルーティングします。複数のAZにEC2インスタンスを配置してALBで負荷分散することで、一部のインスタンスやAZに障害が発生しても正常なインスタンスでWebアプリケーションの利用を継続できます。

したがって正解は
・複数のAZに配置されたEC2インスタンスをALBで負荷分散する
です。

その他の選択肢については、以下のとおりです。

・複数のAZに配置されたEC2インスタンスをCLBで負荷分散する
CLBは、ALBやNLBより古いサービスでパフォーマンスが劣るので、基本的にはALBやNLBの利用が推奨されています。
Webアプリケーションの高可用性にはALBの方が効果的であるので、誤りです。

・複数のリージョンに配置されたEC2インスタンスをNLBで負荷分散する
・複数のリージョンに配置されたEC2インスタンスをALBで負荷分散する
ELBはリージョン間の負荷分散をサポートしていないので、誤りです。

参考

【負荷分散(ロードバランシング)】
サービスの利用者が増えてくると、単一のリソースでは全てのリクエストを処理しきれなくなり、結果としてレスポンスの遅延が起こります。このような場合、リクエストを処理するリソースを複数配置し、それらのリソースにリクエストの処理を分散することでレスポンスの遅延が発生しないようにできます。
このような仕組みを「負荷分散(ロードバランシング)」といいます。

【Elastic Load Balancing(ELB)】
Elastic Load Balancing(ELB)は、AWSが提供する負荷分散サービスです。マネージドサービスであり、ユーザーは負荷分散機能を利用する際にアプリケーションのインストールやバージョンアップなどを考慮する必要がありません。

ELB配下の負荷分散先リソースのことを「ターゲット」といい、一つのELB配下で管理されるターゲットの集合を「ターゲットグループ」といいます。ターゲットにはインスタンス、IPアドレス、Lambda関数を指定できます。ターゲットグループ単位で負荷分散を行い、適切なターゲットにリクエストがルーティングされるようになります。
ターゲットは、可用性を向上させるためにマルチAZ(複数のAZに配置する構成)にするのが一般的です。これにより一部のAZに障害が発生した場合でも、他のAZに配置されたターゲットで引き続きリクエストが処理されます。また、ELB自体もマルチAZ構成で動作するので、高い可用性と冗長性を確保できます。


■ELBのヘルスチェック
ELBはターゲットグループ内の各ターゲットが正常に動作しているかを定期的にヘルスチェックで確認します。ターゲットから正常に応答が返ってくれば、ELBはそのターゲットへのルーティングを継続します。もしターゲットが異常であると判断された場合は、ELBはそのターゲットへのルーティングを停止します。
ELBのヘルスチェックにはターゲットの復旧機能が含まれていないため、稼働するターゲット数を維持するにはAuto Scalingを用いて自動的に復旧する設計が必要です。


【ELBの種類】
ELBにはロードバランシングの方式によって複数の種類があります。

〇Application Load Balancer(ALB)
・レイヤー7(アプリケーション層)で負荷分散を行う
・HTTP、HTTPSをサポート
・ホストベースやパスベースでのルーティングに対応するなど、高度なルーティング機能を提供する

ホストベースのルーティングとは、クライアントがリクエストした接続先URLのFQDNに従ってルーティングできる機能のことです。例えば、クライアントの接続先URLが「http://www1.example.com」の場合はWebサーバー1にアクセスさせて、「http://www2.example.com」の場合はWebサーバー2にアクセスさせることができます。

パスベースのルーティングとは、クライアントがリクエストした接続先URLのパスに従ってルーティングできる機能のことです。例えば、クライアントの接続先URLが「http://www.example.com/web1/」の場合はWebサーバー1にアクセスさせて、「http://www.example.com/web2/」の場合はWebサーバー2にアクセスさせることができます。

〇Network Load Balancer(NLB)
・レイヤー4(トランスポート層)で負荷分散を行う
・TCP、UDP、TLSをサポート
・数百万パケット/秒に対応できる高いスループットと、低レイテンシー(低遅延)を提供する

〇Classic Load Balancer(CLB)
・レイヤー7(アプリケーション層)およびレイヤー4(トランスポート層)で負荷分散を行う
・HTTP、HTTPS、TCP、SSL/TLSをサポート
・ALBやNLBより古いサービスでパフォーマンスが劣るので、基本的にはALBやNLBの利用が推奨される
上に戻る

脱字?

投稿日 2025/11/03

選択肢の1つ、
39622 複数のリージョンにEC2インスタンスをALBで負荷分散する

39622 複数のリージョンに配置されたEC2インスタンスをALBで負荷分散する
かと思いますが、いかがでしょうか?

スタッフからの返信

s staff_satomi

2025/11/04 10:46

island_13様 ご指摘の点を修正いたしました。 ご報告いただきまして、誠にありがとうございます。

この投稿に対して返信しませんか?