本記事について
本記事はAWS初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。
ELBとは?
Elastic Load Balancing は受信したアプリケーションまたはネットワークトラフィックを、Amazon EC2 インスタンス、コンテナ、IP アドレス、複数のアベイラビリティーゾーンなど、複数のターゲットに分散させます。Elastic Load Balancing はアプリケーションへのトラフィックが時間の経過とともに変化するのに応じてロードバランサーをスケーリングします。また、大半のワークロードに合わせて自動的にスケーリングできます。
上の文はAWS公式ページからの引用です。私の知識不足のせいか分かりませんが、この文章ではいまいちピンときませんね...
ELB(Elastic Load Balancing)
「Elastic」は弾力性のある・伸縮性のある、という意味です。
「load」は負荷という意味。
「Balancing」はバランスとるやつ、みたいな意味と思ってください。
この訳通りに行くと「伸縮性があって負荷のバランスをとるやつ」。
要するにELBとはEC2などの他のサービスへの通信トラフィックを分散して、安定した稼働をサポートしますっていうやつですね!いわゆるロードバランサーです。
EC2に適用したい場合はEC2インスタンスを登録するだけで利用でき、この登録されたEC2インスタンスをバックエンドインスタンスと呼びます。
ELBの主な機能としては「通信トラフィックの分散」、「セキュリティ機能(SSL)」、「ヘルスチェック」、「高可用性」があります。
通信トラフィックの分散
通信トラフィックの分散は、複数のサーバーに通信トラフィックを分散してサーバーへの通信トラフィックの集中によってサーバーダウンすることを防ぎます。
セキュリティ機能(SSL)
ELBはセキュリティ機能としてSSLの復号機能があります。これによりSSLの証明書や設定の管理が行えます。
ヘルスチェック
ELBは常に接続しているサーバーをモニタリングし、正常に動作しているかをヘルスチェックしています。ヘルスチェックで以上が検知された場合は、そのサーバーへの振り分けを停止して他の正常なサーバーで通信を行います。
また、ELBを解除するときにそのサーバーの処理が残っていると処理が中断してしまう危険があります。そんな時は「Connection Draining」という機能を使いサーバーの処理が終わってからELBを解除できるようにします。
高可用性
ELBは通信トラフィックを複数のAZに分散する事ができ、例えAZに障害が発生したとしても通信トラフィックは正常なバックエンドインスタンスにのみに振り分けられるので通信を継続する事が可能とのことです。
ELBの種類
ELBには3種類あり、それぞれに特性があります。
Classic load Balancer (CLB)
EC2インスタンスへの標準的な負荷分散を行う。標準的なロードバランサーです。
AWS VPCを使用する場合はCLBではなく以下で紹介するALBかNLBを使用しましょうとのことです。
Application Load Balancer (ALB)
3つの中でもっとも評価の高いロードバランサーです。CLBの機能に加え、HTTP・HTTPSトラフィックの負荷を分散し、柔軟なアプリケーションの管理ができます。
最新のアプリケーションアーキテクチャにも対応しています。
Network Load Balancer (NLB)
低レイテンシで高いスループットを実現し、高度なパフォーマンスが必要なときに使用する。
送信元のアドレスを保持し、レスポンスはクライアントへ直接返す。TCP/UDP/TLSのトラフィックの負荷分散にも向いているようです。
##まとめ
AWS ELBは3種類あるロードバランスの総称という感じですね。
トラフィックの分散をし、セキュリティも強化でき可用性も上げられる大変便利なサービスです!
ELBには無料利用枠などはなく使用した分だけ支払う料金体系のようです。