ELB(Elastic Load Balancer)とは、AWSの運用するロードバランサで負荷分散やヘルスチェックとかで使われるくらいに考えていました。
それ以外にも多くの便利な機能があり、図解を用いてELBをわかりやすく解説できればと思います。
主にソリューション アーキテクト向けで勉強した内容をまとめています。
ELB(Elastic Load Balancing)とは#
ELBはElastic Load Balancerと呼ばれている 負荷分散、ヘルスチェック機能を備えたAWSの展開するサービスの一つ。
- ELBは現在(2019年時点)以下3種類が利用可能
- ALB(Applicartion Load Balancer)
- NLB(Network Load Balancer)
- CLB(Classic Load Balancer)
- CLBは2013/12/4以前に提供されていたEC2-classicを利用している場合のみ採用される
- 単一リージョン内の複数AZに対して負荷分散が可能。
※複数リージョンレベルでの負荷分散を行う場合にはRoute53を利用したリージョンレベルでの負荷分散が必要
詳しくは別記事route53とはawsをわかりやすくをご参照ください。
ALBとは#
awsが提供する アプリケーション層(第7階層)ロードバランサ
- コンテンツベース(例:IPアドレス別、ファイルパス別)でルーティングできる
- 対応プロトコルは以下の通り
- フロント&ALB間 :HTTP/HTTPS
- ALB&バック間 : HTTP/HTTPS
- リクエスト情報(IPアドレス等)を確認する場合はX-Forwarded-For-Headerの値を見る
- IAMやAWS certificate manager(ACM)でSSL証明書の管理・自動更新が可能
- SNI(Server Name Indicator)を利用し複数のウェブサイトのSSL証明書の管理が可能
- Sticky Sessionにより同じユーザのリクエストを同じインスタンスへルーティングが可能
- Cross zone balancingはデフォルトで有効
- 少なくとも2つ以上のサブネットがアタッチされる必要がある
NLBとは#
awsが提供する トランスポート層(第4階層)ロードバランサ
- IPプロトコル別でルーティングできる(例:TCP)
- プロトコル:フロント側-> NLB:TCP/TCP_UDP NLB-> バック側:TCP/TLS/TCP_UDP/UDP
- 高パフォーマンス、低レイテンシが要求される際にNLBが採用される
- 少なくとも1つ以上のサブネットがアタッチされる必要がある。
CLBとは#
awsが提供する アプリケーション層/トランスポート層ロードバランサ
- EC2-Classicで稼働しているアプリケーションに対してCLBが採用される
- 参考サイト https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/default-vpc.html
- Enable advanced VPC configurationを有効にしていればサブネットアタッチ必要なし
- Cross zone balancingはデフォルトで有効
ELBの役割(負荷分散、ヘルスチェック)#
ELBの利用用途は主に以下二つ。
【負荷分散】 主にバックエンドで稼働するEC2インスタンスへのリクエストを分散させることで、インスタンスが死ぬことを防ぐ役割を持つ。
以下の図では本来100%で受けるリクエストがELBによって別々のAZ内のEC2へ50%ずつに分散される。
【ヘルスチェック】 ELBがEC2インスタンスの健康状態を確認し、CloudwatchにEC2の健康状態を報告する。
以下がELBヘルスチェックの実行フロー。
- ELBがEC2インスタンスに対してリクエストを送る(デフォルト:30秒間隔)
- EC2がELBに対して健康ですよーと返答する(デフォルトタイムアウト:5秒)
- ELBがCloudwatchに対してEC2の健康状態を報告する
ヘルスチェックでEC2がUnhealthyと判断された場合#
- もしも EC2がELBに対して時間内に応答しない場合には、EC2はUnhealthyとなり、新しいリクエストはそのEC2には送られなくなる。
- その後、Unhealthyとなったインスタンスは終了(terminate)される
- まずはUnhealthyと診断されたインスタンスを終了してからAuto-Scailingが始まり新しいインスタンスが生成される
さいごに#
ここまでお読みいただきありがとうございました。
私のブログ記事を読んでいる方の中には海外転職・海外移住への興味がある方もいらっしゃるかと思います。
私自身ダナンで働き始めて7年目になりますが、海外就職を実現するために大事なのは英語力と開発現場で働いた経験だと感じました。
もし今後海外移住・海外就職を本気で実現させたい方はぜひこれらのサービスを活用してみてください。
レアジョブ - 実務で使える英語力を身につけよう#
レアジョブ英会話は英会話力の向上に特化したサービスです。 私の友人もレアジョブを通じて0から学習を続け、現在はベトナム人のエンジニアとも英語でコミュニケーションが取れるレベルまで英会話力を伸ばすことができました。
レアジョブが選ばれる理由は多岐にわたりますが、主な理由としては下記3点が考えられます。
- 優秀な講師陣:公用語が英語であるフィリピン人の方が講師となり、生きた英語を身につけることができる
- 豊富な教材: 5,000以上の教材を提供しており、学習者のレベルや目的に応じて最適な教材を選べます。
- 安心のサポート体制:初心者でも安心して始められるように、日本人カウンセラーが学習のサポートをしてくれます。
海外移住計画の第一歩として、スピーキング力を身につけたいと考えている方は、ぜひこちらの無料体験を試してみてはいかがでしょうか。