AWS ELBとは? ELBの可用性について詳しく解説!

    サーバーに多くのアクセスが集中すると負荷がかかり、サイトの表示に時間がかかることがあります。ELBはそれを防ぎ、安定したインターネットサービスを利用者に提供するためのものです。

    AWSはAmazonによって提供されているクラウドコンピューティングサービスで、ここで構築されたシステムの負荷分散のためにAWS ELBがあります。この記事ではAWS ELBの機能とその可用性について、詳しく解説します。

    サーバー負荷の高いサービスに必須! ロードバランサーとは?

    ロードバランサーとは、サーバーにかかる負荷を分散する仕組みのことをいいます。インターネットを利用するにはサーバーの存在が不可欠です。サイトにアクセスするということはつまり、そのサイトのHTMLファイルを送信してほしい、とサーバーにリクエストをしていることになります。リクエストを受けたサーバーは自身のCPUやメモリなどのリソースを使い、利用者(クライアント)の端末にHTMLファイルを送信します。その結果、利用者の端末にリクエストされたサイトが表示されるのです。この送信は通常1度のやり取りでは済まず、何回にも分けてデータを送受信することで完了しています。

    もし、何かしらの理由でサイトにアクセスが集中すると、サーバーがリクエストを処理するのに時間がかかります。これがサーバーに負荷がかかっている状態であり、サイトの表示が遅くなったり、表示自体がされなくなってしまったりすることもあります。このような状況を起こさないよう、サーバーの負荷(ロード)を分散(バランシング)する仕組みがロードバランサーなのです。アクセス集中に限らず、サーバーが故障した場合などにも、利用者にwebサービスを安定して提供することができないことが考えられます。そんなときにも、ロードバランサーを導入することで安定したサービスを提供することが可能になるのです。いわば、ロードバランサーは仕事が立て込んでいるとき、その場にいる人員にそれぞれの分担を指示する司令塔の役割をしているといえるでしょう。

    AWSが提供するロードバランサー、AWS ELBとは?

    AWS(Amazon Web Services)とは、Amazonによって提供されているクラウドサービスプラットフォームです。クラウドコンピューティングが利用されており、インターネットを介して、サーバー、ストレージ、データベース、ソフトウェアのような、コンピューターを使ったさまざまなサービスが利用できます。AWSでは、インターネット環境とPCさえあれば、クラウド上のサーバーやストレージなどが利用でき、200以上の機能を使用してシステムを構築することもできるのです。

    そのAWSのサービスの一つにELB(Elastic Load Balancing)があります。ELBとは、AWSが提供しているロードバランサーをいいます。
    ELBもロードバランサーの1つなので、サーバーに集中する負荷、つまりアクセス(トラフィック)を複数のサーバーやネットワークに振り分け、負荷を分散させる仕組みとなっています。ELBはサーバーへの負荷を分散させるほかにヘルスチェック機能も備えているため、アプリケーションへの負荷やCPUの稼働状況をリアルタイムでモニタリングしてくれるのです。もし、モニタリング中にサーバーに異常があることがわかった場合には、異常のあるサーバーへのトラフィック送信を中止し、他の正常なサーバーへとそのトラフィックを送信します。つまり、ELBはサーバーへの負荷を自動的に分散してくれるため、サーバーのダウンを防ぐことができるのです。ELBの導入によって、障害にもセキュリティ面でも強いサービスを提供し続けることができます。

    ELBは2009年にリリースされたもので、AWSのロードバランサーといえばAWS ELBを指していました。その後、システムのニーズに合わせた形に開発されたロードバランサーがさらにリリースされていき、2022年時点ではALB(Application Load Balancer)、NLB(Network Load Balancer)、CLB(Classic Load Balancer)、GLB(Gateway Load Balancer)の4種類のロードバランサーが存在します。AWS ELBは、CLB(Classic Load Balancer)と名を変えて残されています。

    AWS ELBの種類と、それぞれの用途とは?

    AWS ELBには、ALB、NLB、CLB、GLBの4種類のロードバランサーがあります。システムの用途に合わせていずれかのロードバランサーを選び、利用すると良いでしょう。では、それぞれの特徴について解説します。

    ALB(Application Load Balancer)

    ALBは、2016年にリリースされたロードバランサーです。レイヤー7(アプリケーション層)で動作する単一ロードバランサーで、HTTP・HTTPSトラフィックの負荷分散、柔軟なアプリケーション管理に特化しています。さらに、WebSocketとHTTP/2という2つのプロトコルもサポート。最新のアプリケーションアーキテクチャを対象とした設定も可能、ターゲットグループと呼ばれる別々のサーバグループん対してもインスタンスを紐付けしてルーティングを設定可能と、自由でスムーズな利用の仕方が可能です。

    NLB(Network Load Balancer)

    NLBは2017年にリリースされたロードバランサーです。レイヤー4(トランスポート層)で動作し、高パフォーマンスが必要な環境の負荷を分散するのに特化しています。ALBのような柔軟性はありませんが、低遅延で大量のアクセスによる負荷を分散することができ、突発的で急激に変化するようなトラフィックにも対応することが可能です。アプリケーションで静的IPが必要な場合にも、NLBなら設定ができます。TCP、UDP、TLSのトラフィックの負荷分散にも適したロードバランサーです。

    CLB(Classic Load Balancer)

    CLBは、Amazon ELBの基本形として生まれたロードバランサーです。レイヤー7とレイヤー4の両方で動作しています。EC2 Classicネットワークで構築された既存のアプリケーションがある場合は、CLBを使用する必要があります。TCP、SSL/TLS、HTTP、HTTPSなど、多くのプロトコルに対応しているのが特徴です。

    GLB(Gateway Load Balancer)

    GLBは2021年にリリースされたロードバランサーです。レイヤー3(ネットワーク層)で動作していますが、レイヤー4の負荷分散機能も備えています。サードパーティーのファイアウォールのようなセキュリティ製品などをAWSで利用する場合に高可用性を発揮するという特徴があります。

    AWS ELBのメリット・デメリットとは?

    AWS ELBを導入するメリットには、次のようなことがあります。

    サーバーへの負荷を分散できる

    AWS ELBを導入することで、トラフィックを複数のターゲットに分散し、各サーバーへの負荷を分散します。システムの可用性を高め、障害への耐性を強化できます。

    自動的に問題に対処できる

    AWS ELBにはヘルスチェック機能があり、アプリケーションを常にモニタリングしてパフォーマンスを詳細に把握しています。さらに、問題を早期発見し、トラフィックを正常稼働しているサーバーに対して自動的に分散することが可能です。

    セキュリティを強化できる

    AWS ELBを導入することでセキュリティを強化できます。SSLを設定し、無料で利用できるSSL証明書や設定を集中的に管理することが可能です。

    AWSの他の機能を組み合わせて利用できる

    AWS ELBはAWSの機能の1つなので、AWSの他の機能を組み合わせることで柔軟性の高いサービスへの対応が可能です。AWS Auto Scalingを活用すれば自動的にトラフィックの増減に対応できますし、セキュリティ強化のためにAWS Shield Standardを利用することもできます。

    アプリケーションの運用管理が簡単

    AWS ELBはAWSマネジメントコンソールによって一括での管理が可能です。

    低コストで導入できる

    AWS ELBは、従量制の料金設定です。利用した分だけを支払えばいいので、比較的低コストで利用できることが多いでしょう。

    一方で、AWS ELBを導入するうえでデメリットもあります。

    利用する分はコストがかかってしまう

    低コストで導入できるとはいえ、AWSの提供するサービスである以上コストが追加で必要になります。

    ALBを選択した場合は、アカウントごとに利用料の制限がある

    アカウントや、アプリケーションごとに制限や個別の対応を必要とするケースがあります。

    AWS ELBの構成のコストと注意事項とは?

    AWSのサービスは、ELBに限らず使用した分に料金がかかる従量課金制となっています。その他の初期費用や月額料金といった固定料金はありません。AWSでシステムを構築する場合、仮想サーバーであるEC2、RDS(リレーショナル型データベースサービス)、S3(オブジェクトストレージサービス)、ELBなどを導入することが多く、それらにその都度使用した分だけの料金を支払うことになります。もちろん、オプションとしてさらに利用したいサービスを加えれば、それだけコストが増えていきます。使った分だけを払えばいいというのは良心的ですが、では実際コストがどのくらいかかるのかとなると、構築したシステムを稼働してみないとわからないところが難点といえるでしょう。おおよそのコストが知りたければ、「AWS Pricing Calculator」や「ざっくりAWS」などのツールを使うことで計算することができます。

    コストをなるべく抑えるコツは、絶対に必要なサービスだけを厳選して、必要な時間だけ利用することです。例えば、昼間は利用しないシステムであれば、夜間はインスタンスを停止することでコスト削減できます。また、運用状況を把握できるツールがあるので、どんな時間帯にアクセスが集中しやすいかなどを分析し、インスタンスの使い分けなどの契約内容を見直すことでもコスト削減できる可能性があるでしょう。

    AWS ELBの可用性とは?

    ロードバランサーには、AWS ELBのようなクラウドの形態のもののほか、専用の筐体が存在するハードウェア型、サーバーにインストールして利用するソフトウェア型があります。従来はハードウェア型が主流で、その能力の高さは優れたものですが、コストが非常に高額になるのがデメリットです。また、想像を超えたアクセスが集中してしまった場合、ロードバランサーがあっても処理能力が追いつかないこともあるかもしれません。ソフトウェア型の場合はコストを抑えることができますが、インストールする本体であるサーバーのパフォーマンスに左右されてしまいますし、機能的にも最低限のものとなってしまうことがあります。

    クラウド型であるAWS ELBは、その柔軟性が一番の特徴といえるでしょう。必要な機能や設備を必要に応じて追加したり削除したりでき、使った分だけを支払えばいいので、上手に使えば無駄なコストもかからなくなります。また、クラウドサービスは常に進化が進んでおり、機能面でもセキュリティにおいても、最新のものに対応していくことができます。リアルタイムでモニタリングを行っているため、必要に応じて自動的にトラフィックを分散し、サーバーダウンを防ぐ力は高いといえるでしょう。AWS ELBは非常に可用性の高いことが特徴のロードバランサーなのです。

    AWSのELBを導入して、システムの可用性を高めよう

    AWSが提供するELBは、柔軟性や可用性の高さが特徴のロードバランサーです。ELBは幅広いケースに対応可能なので、ロードバランサーを選択する際には一考の価値があるでしょう。ただし、可用性をより高めるという観点では、サービスの性格や状況に合った方法を選択するのが最大のポイントです。ロードバランサーが適用できない構成や、サービス/ハードウェアとの相性等、様々な要因で可用性を十分に担保できない場合は、ソフトウェア型のサービスにも注目を浴びているものがあるので、いろいろな製品を比較してみるといいでしょう。

    サイオステクノロジーが提供するHAクラスターソフトウェア LifeKeeperもその一つとなりますのでAWS上での構築・運用のご検討の際はご検討の際には是非合わせてご利用をご検討ください。

    SNSでもご購読できます。