ELBでスケールアウトする:AWS Tips
「リソースが足りない!」というときに役立つ、小規模なシステムでも気軽に利用できるロードバランサー、ELB(Elastic Load Balancing)の設定方法を説明します。
これまでの物理環境では、負荷の増大に応じてロードバランサーを使おうとした場合、専用のアプライアンスやハードウェアを導入したり、新たにソフトウェアを導入したりと多くの費用と手間がかかるため、大規模システムでなければ導入が難しい場合が多くありました。
しかしAWSの場合、特別な契約などを結ぶことなく、EC2の管理メニューから簡単にELB(Elastic Load Balancing)を利用できます。これまでロードバランサーを導入できなかったような小規模なシステムでも、気軽に利用できるようになります。
Amazon ELB(Elastic Load Balancing)の設定
実際にAWSでロードバランサーを設定するには、[Load Balancers]から[Create Load Balancer]を実行します。
ELBでは単純なロードバランシングの他、SSL Terminationなどの機能も利用できますが、本記事のテーマではないので詳細は割愛します。
ELBに複数のインスタンスを登録することにより、簡単に負荷分散環境を構築できます。インスタンスに対してはヘルスチェックの指定ができ、不完全なインスタンスを排除し、サービスの準備ができたインスタンスだけを参加させることができます。
ただし、ELBを有効に使うためには、ELBによって分散されたリクエストに対して、どのインスタンスからも同じ応答を返す必要があります。このためAmazon S3やRDSなど負荷分散したサーバーに同一のコンテンツを配置する、以下のような構成が必要になります。
ELB自体のスケールアウト
ELBはAWSが用意したソフトウェアロードバランサーです。非常に大量のリクエストが来た場合には、ELB自身が自動的にスケールアウトをするようになっています。
ただし、このスケールアウトには数分程度の時間を要します。テレビ放映に起因するアクセスなど、突発的に非常に大量のアクセスが発生する場合には、このスケールアウトが間に合わない場合があります。
そこで、このように予測できる大量アクセスの場合には、ELBを前もってスケールアウトさせておくことが可能です。これをELBのPre-warming(暖機運転)と言います。これは、AWSのサポートページからPre-warmingリクエストを行うことによって実施可能です。
その際に、予測されるアクセス数やパケットサイズなどをヒアリングされますが、キャンペーンやテレビ放映など、アクセス数が予測できない場合は、「ELBに参加しているインスタンスの能力いっぱいまで」という依頼を行うことも可能です。
伊藤覚宏
好きなAWSサービスはRDS
サーバーワークス テクニカルチーム、Zabbix Certified Specialist for Large Environments、Red Hat Certified Virtualization Administrator、VMware Certified Professional 4
通信系SIerにてZabbixエンジニアとして監視システムの構築、保守、マニュアル作成、研修講師などを担当。VMwareに関わる業務を長く担当し、VMwareベースのバーチャルプライベートクラウド基盤の構築、保守およびバックエンドサポートを担当。2014年にサーバーワークスに入社、システム監視を専門領域とし、AWSシステム構築エンジニア、プロジェクトリーダーのほか、クラウド研修講師などを行っている。
Copyright © ITmedia, Inc. All Rights Reserved.