Webサービスの安定稼働に欠かせない
AWS ELBの基礎知識

AWSでは、AWS ELBというロードバランサーが提供されています。ロードバランサーは集中するトラフィックを分散し、サービスの稼働を安定させるものです。ロードバランサーにより、クラウドサービスの特徴である柔軟性や高可用性をより高いレベルで実現できます。ここでは、AWS ELBの機能や種類について説明します。

AWS ELBとは

AWS ELBはAWS Elastic Load Balancingの略で、ほかのサービスへのトラフィックを、仮想サーバーなどの、複数のターゲットに自動的に分散し、安定稼働をサポートするサービスです。複数のサーバーへの負荷を均一化し、障害に対する耐性を高めます。

AWS ELBの機能

AWS ELBには、次のような機能があります。

複数のサーバーへのトラフィックに分散する

AWS ELBで複数のサーバーにアクセストラフィックを分散させることで、アクセス集中によるサーバーダウンを防ぎます。それによって、処理速度の向上や、高い可用性の維持が期待できます。

メンテナンスや障害対応をしやすくする

メンテナンスや障害発生時の前に、AWS ELBの設定を行うことにより、メンテナンス対象や障害が発生しているサーバーへのリクエストのみを停止することができ、サービスの全停止を回避することも可能です。(ただし、サーバー構成・サーバー上の適切なアプリケーションの配置や実装が前提です。)これにより対象サーバーはリクエストが無い状態ですので、メンテナンスや障害対応に集中した作業ができます。

サーバーのヘルスチェック

AWS ELBは、常にリクエストをトレースし、接続しているサーバーをモニタリングしています。それによって、リアルタイムにアプリケーションのヘルスチェックが可能です。異常な動作を検知した場合は、そのサーバーを切り離し、トラフィックをほかのサーバーに分散するので、アプリケーションの安定稼働が維持されます。

セキュリティ強化、SSLの設定を集中管理

AWS ELBでは、ロードバランサーと関連するセキュリティグループを作成して、セキュリティを強化できます。これには、Amazon Virtual Private Cloud(Amazon VPC)が必要です。またSSLの証明書や設定も集中管理しています。

AWS ELBの種類

AWS ELBには、3種類のロードバランサーがあります。目的に応じて最適なロードバランサーを選びましょう。

Application Load Balancer

AWS ELBのうち、最新で最も高機能なロードバランサーです。基本的には、Application Load Balancerを使用することが推奨されています。
HTTPトラフィックおよびHTTPSトラフィックの負荷分散、柔軟なアプリケーション管理が必要な場合に向いているロードバランサーです。
リクエストレベル(レイヤー7)で動作しており、マイクロサービスやコンテナなど、最新のアプリケーションアーキテクチャにも対応しています。

Network Load Balancer

毎秒数百万のリクエスト処理が可能で、高度なパフォーマンスが必要な場合に使用します。突発的なトラフィックや急激に変化するトラフィックにも対応可能です。
静的IPがアプリケーションで必要な場合にも、Network Load Balancerを使用しましょう。
接続レベル(レイヤー4)で動作しており、TCP/UDP/TLSのトラフィックの負荷分散にも向いています。

Classic Load Balancer

複数のAmazon EC2インスタンスにおける基本的な負荷分散を行う、基本的なロードバランサーです。EC2 Classicネットワーク内で構築された既存のアプリケーションがある場合は、Classic Load Balancerを使用しなくてはなりません。
リクエストレベル(レイヤー7)と接続レベル(レイヤー4)の両方で動作しています。Amazon VPCを使用する場合は、Application Load BalancerもしくはNetwork Load Balancer を使用しましょう。

AWS ELBの料金

AWS ELBの料金は従量制で、使用した分のみ支払います。最低料金や初期費用は不要です。無料利用枠もありません。料金は、使用するロードバランサー、およびリージョンにより異なるので、注意が必要です。

料金が発生するものは次の2つです。

  • ロードバランサーを使用した時間(1時間単位)
  • 転送データ量(GB単位)

AWS ELBを使用するには

AWS ELBを使用するために必要な設定について見ていきましょう。

AWS ELBの設定

1. 準備

通常は、AWS ELBを設定する前に、分散アクセスを前提としたサーバー(複数台)構成を用意しておきます。ただし、例えばアプリケーションサーバーが1台の場合でも、メンテナンスやヘルスチェック、SSL証明書導入などの面でメリットがあります。詳細は後述いたします。

2. ロードバランサーの作成

AWS Command Line Interface(CLI)か、またはAWSマネジメントコンソールからロードバランサーを作成します。

3. 設定

ロードバランサーの名前とネットワーク、ヘルスチェックのパスや動作などを設定します。

4. 登録

ロードバランサーにターゲットを登録します。
方法のひとつは、アプリケーションサーバーをターゲットグループに手動で登録してターゲットグループをロードバランサーに登録することです。もうひとつ、すでにターゲットグループに登録されているオートスケーリンググループにロードバランサーを関連付ける方法があります。

5. 動作確認

ヘルスチェックでロードバランサーの動作確認を行います。

連携するサービスや機能

AWS ELBは、さまざまなAWSのサービスと連携して、より高度な機能を実現できます。特に、次のようなサービスとよく連携しています。

Amazon CloudWatch

Amazon CloudWatchは、AWSのリソースや、そこで実行されているアプリケーションをリアルタイムに監視するサービスです。Amazon CloudWatchでELBの動作をモニタリングし、システムが正常に稼働しているか確認できます。

Amazon Route53

Amazon Route53はDNSサービスです。AWS ELBは、Network Load Balancer以外ではグローバルIPアドレスを使用できません。しかし、Amazon Route53と組み合わせ、AWS ELBを指定するエイリアスを作成することで、独自ドメインでもAWS ELBを使うことができます。

AWS Auto Scaling

AWS Auto Scalingは、複数のサービスを自動的にスケーリングする機能です。AWS ELBと組み合わせることで、負荷に応じて自動的にAmazon EC2の台数を増減できます。

AWS ELBのメリットやデメリット

AWS ELBのメリットとデメリットについて解説します。

AWS ELBのメリット

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

サービスの負荷を分散できる

AWS ELBは、トラフィックを複数のターゲットに分散することで、負荷を分散し、システムとしての可用性、耐障害性、信頼性などを高めます。クラウドだけでなく、オンプレミスサーバー上のAWSリソースの負荷分散を実行するハイブリッド負荷分散も可能です。

常にサービスをモニタリングできる

AWS ELBは、常にアプリケーションをモニタリングしています。リアルタイムでモニタリングすることで、パフォーマンスを詳細に把握し、問題を早期に発見して対処することが可能です。また、正常稼働しているターゲットだけでトラフィックを分散することができます。

サービスの弾力性を高める

AWS ELBは、トラフィックの増加に応じて自動的にスケーリングし、トラフィックの急激な増大にも耐えられます。トラフィックの量に合わせて、手動でAWS ELBの追加設定の必要はありません。キャンペーンやイベントなどで急激なトラフィック増加が見込まれる場合、AWS Auto Scalingと組み合わせれば、トラフィックに合わせてサーバーの増減も可能です。

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

AWS ELBを使うと、SSLを設定してSSL証明書や設定を集中管理してセキュリティを強化できます。SSL証明書は無料で利用可能です。また、DDoS攻撃に備えたAWS Shield Standardも用意されています。

アプリケーションの運用管理に手間がかからない

AWS ELBの機能はすべてAWS マネジメントコンソールの画面から一括して管理可能で、運用が容易です。

独自ドメインを利用可能

AWS ELBのDNSには、独自ドメインを設定可能です。ただし固定IPアドレスを使う場合には、AWSのDNSサービスであるAmazon Route 53が必要です。

低コストになることが多い

AWS ELBの料金は、利用した分だけ支払う従量制です。初期費用や最低料金などはかからず、必要な分だけ利用できます。そのため、ハードウェアのロードバランサーや月額料金で計算されるタイプのロードバランサーよりも低コストで利用できる場合も多いです。さらに、ハードウェアのロードバランサーのような維持管理のコストや人手は不要です。

AWS ELBのデメリット

AWS ELBを導入した場合のデメリットも把握しておきましょう。

AWS ELBの料金がかかる
Application Load Balancerには、アカウントごとに利用量の制限がある

ただし、利用量の制限はElastic Load Balancing 制限フォームから引き上げのリクエストが可能です。

サーバーが1台しかない場合のAWS ELBのメリット

サーバーが1台しかなくても、AWS ELBを使用することができます。AWS ELBの利用には、いくつものメリットがあります。

インスタンスの差し替えが容易

メンテナンスや障害対応を行う場合、インスタンスを操作しやすくなります。あらかじめAmazon Machine Image(AMI)で別なインスタンスを用意し、ロードバランサーで切り替えておけば、ユーザーに影響を与えずにメンテナンスが可能です。

サーバーのヘルスチェック

AWS ELBは常にサーバーのモニタリングを行っているので、トラブルや障害があったときにも早期に発見できます。

無料のSSL証明書が利用できる

AWS ELBを導入すれば、SSL証明書を無料で利用でき、Webサイトのセキュリティを強化できます。

AWSで提供するWebサービスに向いているAWS ELB

ロードバランサーといえば「膨大なアクセスのある大きなWebサービスが利用するもの」とイメージされるかもしれません。しかし、AWSでWebサービスを提供するときにはAWS ELBを使用すれば低コストで高機能なロードバランサーを実装できます。AWSを使ってビジネス用途で安定したWebサービスを提供するなら、AWS ELBの導入を検討してみてはいかがでしょうか。

Amazon Web Services(AWS)、Microsoft Azureの
導入支援サービスのご相談、お問い合わせをお待ちしております。

ページ上部へ戻る