Webサイトにアクセスが殺到した際、サーバーがパンクしないように複数のサーバーへ通信を「均等に振り分ける」役割を持つAWSサービスはどれ?
解説
正解はElastic Load Balancing(ELB)です。ELBは、ユーザーからの大量のアクセスを受け止め、裏側にある複数のEC2(仮想サーバー)などに均等に通信を振り分ける「ロードバランサー(負荷分散装置)」のサービスです。特定のサーバーに負荷が集中してシステムがダウンするのを防ぎます。Amazon S3はファイル保存用のストレージ、Amazon RDSはデータベース、Amazon VPCはAWS内に仮想ネットワークを作るサービスであるため不正解です。人気店の「交通整理のスタッフ」と同じ役割システムにおける負荷分散は、行列ができる人気レストランに例えると分かりやすいです。レジ(サーバー)が1台しかないと、お客さん(アクセス)が殺到したときに処理が追いつかずパンクしてしまいます。そこでレジを3台に増やし、お店の入り口に「空いているレジへ順番にお客さんを案内するスタッフ」を配置します。この「案内スタッフ」がまさにELBの役割です。ユーザーからの窓口を一つにまとめつつ、裏側では複数のサーバーで協力して処理をこなすことで、大規模なアクセスにもサクサク動く状態を作れます。「ヘルスチェック」でシステム全体を守る実務において、ELBは単なるアクセスの振り分け以上の重要な役割を担っています。それがヘルスチェック(死活監視)です。サーバーもプログラムなので、突然エラーで動かなくなることがあります。ELBは数秒おきに裏側のサーバーへ「元気ですか?」と通信を送り、もし「応答がない(ダウンしている)」サーバーを見つけると、そのサーバーにはユーザーを案内しないよう自動で切り離してくれます。このように「1台壊れてもサイト全体を止めない」堅牢な設計にするために、プロの現場ではELBの導入が定石となっています。