【AWS】ELBについて特徴を解説します
はじめに
本記事をご覧のあなたはロードバランサーという言葉にどのようなイメージをお持ちでしょうか。「アクセス数の多いWebサービスに用いられる」と考える方もいるかもしれません。ところが、Amazon Web Service(以後、AWS)でWebサービスを運用するとき、AWS ELBという機能を用いることで少ないコストで高性能のロードバランサーの実装ができます。AWSを用いて多岐にわたる目的で安定したWebサービスを運用したい場合、ぜひELBを導入してみてください。
本記事ではこのAWS ELBの概要をご紹介いたします。読み終わるころにはELBの仕組みや特徴を身に着けることができるでしょう。
AWS ELBとは
ELB(Elastic Load Balancing)は、AWS上で動作するロードバランサーサービスです。Webサーバーならびにアプリケーションサーバーが複数存在する場合に通信の負荷が統一されるように、トラフィックを分けてくれる機能を持っています。
ELBはアベイラビリティゾーン(データセンターをまとめたもの)に散らばって設置されるため、アベイラビリティゾーンが異なって設置されているEC2のトラフィックも分散させることが可能です。
ELBはロードバランサーのこと
AWSでロードバランサーを用いるときにCLB、NLB、ALBなどのキーワードをよく目にします。その理由については下記で紹介するAWSにおけるロードバランサーの過去を読み解くことで理解できるでしょう。
元をたどるとAWSのロードバランシングサービスはELBでした。しかし、追加のオプションとしてALB(Application Load Balancer)の開発が行われ、ELBはCLB(Classic Load Balancer)に変更されました。その後、このALBとCLBを総省してELBとして利用されるようになり、今ではNLB(Network Load Balancer)も増え、サービスが充実しております。
つまりELBは、ALB、CLB、NLBの3種類の強力なロードバランサー機能を持ち合わせたAWSのロードバランシングサービスなのです。
ALB(Application Load Balancer)
AWS ELBの中で、新しく高性能なロードバランサーのことです。HTTPトラフィックとHTTPSトラフィックの負荷を分散し、アプリケーションを自由に管理するのに向いています。コンテナやマイクロサービスにも対応しています。
- ・L7リバースプロキシ
- ・HTTP、HTTPSに対応
NLB(Network Load Balancer)
毎秒数百万のリクエスト処理を行うことができるため、より高度なパフォーマンスを要する際に向いており、急に発生したトラフィックにも対応しています。トランスポートレイヤー、TCP / UDP / TLSに対するトラフィック負荷の分散にも適しています。
- ・L4 NATロードバランサ
- ・TCPに対応
CLB(Classic Load Balancer)
複数のAmazon EC2インスタンスにおいて負荷分散を実行する基本となるロードバランサーです。EC2 Classicネットワーク内で構築されたアプリケーションがすでにある場合は、CLBの使用が必須となっています。アプリケーションレイヤーとトランスポートレイヤーのどちらでも動いています。
- ・L4/L7リバースプロキシ
- ・TCP、SSL、HHTP、HTTPSに対応
※互換性などの理由がなければ、現在はALBまたはNLBの利用が推奨されています。
【3種類の特徴と違い】
- 1、通信経路
- ・ALB、CLBはリバースプロキシなので行きも帰りもロードバランサーを経由
- ・NLBは宛先IPをクライアントIPに変えるので帰りにロードバランサーを通らない
- 2、アクセス制限
- ・ALB、CLBはポートでのアクセス制限が可能
- ・NLBはシンプルではあるがアクセス制限が不可
- 3、IPアドレス
- ・ALB、CLBはIPアドレスが可変のため、DNSの利用が必要
- ・NLBは固定IPのため、DNSとIPを利用できる
- 4、アクセスログ
- ・NLBのみアクセスログの出力が非対応(設定が必要)
AWS ELBの特徴
【負荷分散】
トラフィックをいくつものターゲットに分散させることで、ひとつあたりの負担を減らすことができ、システムとして可用性や耐障害性、信頼性が高まります。また、ハイブリッド負荷分散も行えて、オンプレミスサーバー上でAWSリソースの負荷分散を実施します。
【自動スケーラブル】
ELBはトラフィックが増えると自動的にスケーリングを行い、情報量の突然の増加にも耐えることのできる仕組みになっています。
情報量に合わせて、手動でELBの追加設定は不要です。キャンペーンやイベントにて突然のトラフィックが増える可能性があるときなどはAWS Auto Scalingと併用し、情報量に合わせたサーバーの増減もできます。
【低コスト】
ELBは一般的な負荷分散装置と比較して、非常に安価な利用ができます。稼働時間や処理したトラフィック量に応じた従量課金制になっているため、リーズナブルに利用できます。また、初回のコストや最低料金はかからず、ハードウェアにおけるロードバランサーといった維持管理にかかるコストや人手も必要としません。
目安価格としては、ELB1台につき、月に約2000円で使えます。
【ヘルスチェック】
ELBは接続中のEC2の状態を検出でき、EC2に異常が発生した際は該当するEC2にトラフィックを送ることなく別のインスタンスに振り分けるような動作をします。
【独自ドメインで利用可能】
ELBのドメイン名をDNSに設定すると、独自ドメインで利用可能になります。
ただし、固定IPアドレスを使う際はAWSのDNSサービスであるAmazon Route53が必要になります。
【アプリケーションを運用・管理するのに手間がかからない】
ELBの機能はAWSマネジメントコンソール画面から一括して管理・運用が可能です。
【セキュリティを強化できる】
ELBにSSLの設定をすることで、SSL証明書の設定にて集中管理を行い、セキュリティの強化ができます。SSL証明書は無料で利用可能です。また、DDoS攻撃に対応するAWS Shield Standardもあります。
【監視、モニタリング】
ELBは常にアプリケーションのモニタリングを行っています。そのリアルタイム性によってパフォーマンスを詳細に把握することができ、問題発生時に素早く見つけて対応が可能です。さらに、正常に稼働するターゲットに絞ってトラフィックの分散をすることが可能です。
AWS ELBの料金形態
ELBの料金は従量課金で、利用しただけの料金を支払う仕組みとなっています。一方でこちらは無料枠では使用できません。利用料は使用するロードバランサーとリージョンによって変わるため、お使いの環境に適した選択が必須です。
- ※料金が発生するものは次の2項目
- ・ロードバランサーを活用した時間(1時間単位)
- ・転送データ量(GB単位)
サーバーが1台のみでもELB利用でメリット
サーバーが1台のみであってもAWS ELBを使用可能です。AWS ELBの利用には様々なメリットが存在します。
- インスタンスの差し替えが簡単
- メンテナンスや障害対応を実施する際にインスタンスの操作が簡単になります。あらかじめAMIを使って他にインスタンスを用います。続いてロードバランサーで切り替えを設定し、ユーザーに影響を出さずにメンテナンスを実施できます。
- サーバーのヘルスチェック
- ELBは常時サーバーのモニタリングを実施しているため、問題発生時には素早く見つけることができ、対応にかかる時間の削減に繋がります。
- 無料でSSL証明書の使用もできる
- ELBを導入により、SSL証明書を無料で使用可能です。また、Webサイトのセキュリティ面を強めることもできます。
まとめ
いかがでしたでしょうか?AWSにおいて、ELBは有効活用したいサービスのひとつです。事業に取り入れるために、まずはELBの概要を理解してキーワードにおける特徴や違いを把握しながらどれを使用していくか見極めましょう。ALB、CLB、NLBを総称したAWS ELBには、ユニークで便利な機能が多く存在します。本記事が最後まで読まれたあなたの判断材料の手助けとなっていたら幸いです。
AWSにはほかにも様々な機能が数多くあるので幅広い知識を掛け合わせて実際の運用を目指していくことになるでしょう。ぜひ引き続き学習を継続し、本記事でご紹介したELBも取り入れてみてください。
本記事を最後までご閲覧いただきありがとうございました。