AWSのロードバランサとは
AWSはクラウドサービスのシェアNo.1ですが、その各種サービスに対する高い評価も特徴です。今回はそのサービスの中から、ロードバランサのサービス、EBLについて解説します。Webサービスの停止や遅延はユーザーへのサービス提供に大きな支障をきたすばかりか、ブランドイメージを大きく損ないます。そのため、WebサービスにおいてはWebサーバーに対する負荷分散は必要不可欠になっています。
この負荷分散をロードバランシグと呼び、ロードバランシングを行うシステムをロードバランサと称します。このロードバランサについては後ほど詳しく触れますので、まず最初にAWSが提供するロードバランサ(ELB)について解説します。
ELBとは
ELBは正式名称「Amazon Elastic Load Balancing」の通称で、AWS が提供する「負荷分散」に加え、「ヘルスチェック機能」を備えたロードバランササービスです。ELBには多くの特徴(強み)がありますが、最初にELBの3つのロードバランサを紹介しましょう。
ELBの3つのロードバランサ
AWSが提供するロードバランサには3種類があり、Network Load Balancer(略称NLB)・Application Load Balancer(略称ALB)・Classic Load Balancer(略称CLB)です。 AWSでは、この3種類の中から、利用するシステムの適性に合わせて選択することができます。以下で、それぞれの特徴について説明します。
1.Network Load Balancer(NLB) NLBは、秒間数百万のリクエストを捌けるように設計されたロードバランサです。TCPプロトコルの標準的なL4でロードバランシングが行え、大量のアクセスが想定されるシステムに推奨されています。NLBは宛先IPをターゲットIPに変換して転送するため、帰路はロードバランサを介することなく、ターゲットからクライアントに通信できます。このように、NLBではロードバランサとしての処理が最小限であるため、遅延防止に重きを置いた仕組みとなっています。
2.Application Load Balancer(ALB) ALBは、HTTP・HTTPSプロトコルのL7(アプリケーション層)への対応が強化された単一ロードバランサです。異なるURLごとにサーバーに対するリクエストを振り分けることができ、CLB 比較してより細かい設定が可能です。
ALBは複数のアベイラビリティゾーン(データセンター)にまたがって対応することができ、高レベルの耐障害性を実現しています。また、ALB自体に自動的にキャパシティを増減する機能が備わっており、可用性においても非常に優れています。WEBアプリケーション用には、ALBが最も多く利用されています。
3.Classic Load Balancer(CLB) CLBは、AWSで初期から提供されているELBの1つです。複雑な設定はできず、シンプルなロードバランサです。利用中のユーザーがいるためサービスとしては提供中ですが、AWS側からは推奨されていない旧タイプです。
ロードバランサについてもっと知ろう
ITエンジニアなら、ロードバランサをご存知の方が多いでしょうが、ロードバランサには負荷分散以外にもさまざまな役割があることをご存知でしょうか?ここでは、ロードバランサについて知っておくべき基本知識について述べますので、ぜひ読み進めてください。
ロードバランサとは
改めて説明するまでもないかもしれませんが、ロードバランサとは、サーバーへのアクセス集中を防ぎ、サーバーの安定稼働をサポートするための装置や仕組みのことです。Load(負荷)Balancer(平衡を保つ)の言葉通りで、日本語では負荷分散装置とも呼ばれています。ロードバランサのおかげでWebサーバーへのアクセスが集中している時にも、利用者は安定したサービスを受けることができるのです。
ロードバランサが必要な理由
公開Webサイトは、膨大な数の利用者を対象にサービスを提供しており、サービスに対するアクセスには時として大きな変動があります。想定以上のアクセスが集中すると、サーバーの処理能力を超え、ネットワークが混雑してサイトへの接続がしにくくなりサービスの低下を招きます。高速道路の料金所の混雑状態をイメージするとよく分かると思います。
こうした状態が頻繁に起きると利用者離れを招き、企業ブランドのイメージ低下や売上減少などの弊害に繋がります。そうした事態を防ぐために、ロードバランサが必要です。まず、サーバーダウンに備えるためにWebサーバーの冗長化(多重化)があります。この場合、アクセスをバランスよく複数のサーバーに振り分けを行う必要があります。
冗長化にはアクセス集中の回避以外に、片方のサーバーがダウンしても、もう片方のサーバーでサービスを継続することができるというメリットがあります。この複数のサーバーにアクセスを分散させる役目を持つのがロードバランサです。
ロードバランサの機能
ロードバランサの機能について確認しておきましょう。
■アクセスの負荷分散 ロードバランサの基本機能で、アクセスを複数のWebサーバーに分散して振り分けを行います。急激なアクセスの増加に対して、レスポンスの低下を防ぐことができます。
負荷分散の方式は、以下の2種類があります。 ・ラウンドロビン:Round Robinは非常にシンプルな負荷分散方式で、アクセスを各サーバーに均等に振り分けます。 ・最小コネクション:サーバーの処理状況に合わせ、アクセスを処理の少ないサーバーに振り分けをします。
■セッション維持 利用者ごとのアクセスを同一のサーバーに振り分けます。例えば、ECサイトの利用では、買物から決済まで一連の流れを同一のサーバーに接続しておく必要があります。このため、同じ利用者からのアクセスは利用者(IPアドレス)単位で同一サーバーに振り分けます。
■故障監視 ロードバランサはWebサーバーの状態を定期的にモニタリングし、サーバーの故障を検出するとそのサーバーへのアクセスの振り分けを停止し、負荷分散対象から切り離します。このため1つのサーバーで障害が発生しても、サービス提供を継続することができます。
■連続サービス 利用者へのサービスを停止せずに、Webサーバー増設・保守・修理などを可能とします。このため、システムの柔軟な保守が行えるようになります。
AWS ELBの強み
ここからは、AWSのロードバランサELBの強みについて解説します。AWS ELBの中でも、中心的なサービスであるALBを軸にして強みを見ていきましょう。
可用性に優れている
AWS ELBはトラフィック(通行量)を自動的に分散してくれるため、トラフィックによるサーバーダウンを防ぐ役割を持っています。では、ELB自体が故障することはないのでしょうか?実は ELB 自体も負荷に対応してキャパシティを自動的に増減するため、ユーザー側で ELB の台数を増す必要はありません。スペックも意識する必要はないのです。
堅固なセキュリティ
AWS ELBの強みの1つは、堅固なセキュリティにあります。ELB自体は、Amazon Visual Private Cloud の中に配置されており、、不必要なトラフックや安全性に問題がありそうなトラフィックはシャットアウトしてくれます。
またELBにはSSLの設定を行うことができ、非常に強固なセキュリティ環境を実現できます。しかもSSLを利用しても特に追加料金は発生しないという点は注目に値します。
柔軟性に優れている
AWS ELBは、コンテントベースのルーティングが可能です。つまり、同一インスタンスでもアプリケーション毎にターゲットを柔軟に設定する事ができ、アプリケーション間の通信をシンプルにできるのです。
高い負荷分散能力
AWS ELBの最大の魅力は、その高い負荷分散能力です。ロードバランサであるELBが負荷分散を行うのは当然ですが、その負荷分散能力には並外れたものがあります。ELBはAWSの他のアベイラビリティゾーンへの負荷分散も可能であり、災害対策の面からも万全の対応が可能です。
モニタリングが可能
AWS ELBは接続しているサーバーをモニタリングがし、サーバーの仕事が均一になるようコントロールをしてくれます。EWSは、Amazon Cloud Watchメトリクスの機能やリクエスト追跡機能などを活用して、パフォーマンスやアプリケーションの動きをリアルタイムで把握できます。
また、サーバーに障害が発生した場合でも、他の正常なサーバーに自動的に負荷分散してくれるなど障害の影響を最小限に抑え、迅速に問題解決に導いてくれます。
複数のサーバーのアクセスログをまとめて取得
サーバーへのアクセスログの収集や解析はサーバー管理、Webの管理では重要な業務の1つですが、複数台あるサーバーのアクセスログを1つにまとめて解析するのはかなり面倒なことです。ELBではこのアクセスログを一元的に確認することができ、アクセスログ管理に関する手間を省いてくれるという副次効果があります。
ELBを利用してみよう
ここまで読み、AWS ELBの概要やメリットなどについては理解されたかと思います。最後に、ELBの利用料金・実際に利用する際の設定手順などについて解説するのでぜひ参考にしてください。
ELBの料金
AWS ELBの料金は、次の2つの基準によって計算されます。 ▪ロードバランサの利用時間(1時間単位) ▪データ転送量(GB単位) 料金シミュレーションは以下で行えますので、興味のある方は試してください。 ざっくりAWS
ELBの設定方法
1. 準備 AWS ELBを設定する前に、分散処理を前提とする複数台のサーバー構成を用意します。ただし、ELBは1台構成のサーバーでも、メンテナンスやSSL証明書導入などでメリットがありますので、最初から導入しておくとよいでしょう。
2.ロードバランサの作成 続いて、ロードバランサを作成しますが、CLI(AWS Command Line Interface)、あるいはAWSマネジメントコンソールから作成をします。
3.設定 ロードバランサの設定では、ロードバランサの名前・ネットワーク・ヘルスチェックのパスや動作などについて設定をします。
4.ターゲット登録 ロードバランサの対象となるターゲットを登録します。
5.動作確認 ヘルスチェックを利用してロードバランサが正しく動作することを確認をします。
AWS ELBまとめ
AWS ELBの特徴や強みについて、解説してきました。ロードバランサの特質を最大限活かしたAWS ELBは、サーバーの台数や構成に関わらず利用することで、さまざまなメリットが得られます。Webサーバー以外でも利用メリットが大きいため、AWSを利用する際にはELBを必須と考えてください。AWSのELBに強いエンジニアとして、皆さんの更なるご活躍を期待しています。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから