Table of Contents
はじめに
FundastA Inc.の鈴木です。
現在、AWS ソリューションアーキテクトアソシエイト試験合格に向けAWSについて勉強中です。
今回は ELB について勉強したことを備忘録として、記述していきます。
ELBとは
複数のEC2インスタンスで処理を可能にするロードバランサーを提供するサービス
-
スケーラビリティの確保
-
複数のEC2インスタンス/ECSへの負荷分散
-
-
高可用性
-
複数のアベラビリティゾーンにある複数のEC2インスタンスの中から正常なターゲットにのみ振り分け
-
特徴
-
インスタンス間の負荷を分散するサービス
-
インスタンスに限らずIPアドレスをターゲットにした負荷分散も可能
-
ヘルスチェックにより異常なインスタンスを認識してトラフィックを正常なインスタンスのみに分散させる。
-
パブリック/プライベートサブネットのどちらでも使用可能
-
負荷に応じてキャパシティを自動増減するスケーリングを実施するが、これはAWS側でマネージドサービスとして実施
-
時間に応じたロードバランサーキャパシティユニット使用量で課金
-
AutoScaling、Route53、CloudFormationなどと連携
トラフィック例
ヘルスチェックによるトラフィック分散
ELBの構成例
ELB を利用したマルチAZ にインスタンスへのトラフィックを分散する構成が利用される。
- リージョンを跨げない
- プライベートサブネットでも可能
ELBのタイプ
CLB
-
古いタイプなのでALB/NLBの利用を優先
-
課金形態がデータ転送で課金
-
IPアドレスが可変で、DNSのみ利用可能
ALB
-
レイヤー7に対応し、HTTP/HTTPSリスナー対応
-
パスルーティングが利用可能
-
時間に応じたロードバランサーキャパシティユニット(LCU)の使用量で課金
-
IPアドレスが可変で、DNSのみ利用可能
-
デフォルトでクロスゾーン負荷分散が有効
NLB
-
レイヤー4 NATロードバランサでTCPリスナーに対応
-
時間に応じたLCUの使用量で課金
-
NLBのサブネット拡張サポート(サブネットを追加できる)
-
固定IPのためのDNSとIPのどちらも利用可能
-
ALBよりも高パフォーマンス処理が可能
-
デフォルトでクロスゾーン負荷分散が無効
主要な機能
ヘルスチェック
-
EC2インスタンスの正常/異常を確認し、利用するEC2の振り分けを行う。
クロスゾーン負荷分散
-
配下のEC2の負荷に応じて、複数のAZに跨るEC2インスタンスに均等に負荷分散
暗号化通信
- SSL/TLS証明書をELBに設定することでHTTPSまたはTLS通信を実施することができる
スティッキーセッション
- セッション中に同じユーザから来たリクエストを継続して同じEC2インスタンスに送信する。
ConnectionDraining
- インスタンスが登録解除されるか異常が発生した場合に、そのバックエンドインスタンスへの新規リクエスト送信を中止する。
ログ取得
-
ELBのログ取得を有効化するとS3バケットにログを収集
ELBとRoute53の違いは?
AWSには似たようなことをやっているリソースが多い気がします。中身は全然違うのですが、最初のころはイメージができなかったので、今回はELBとRoute53について簡単に解説します。
- ELBはEC2にかかるトラフィックの負荷分散するサービス
- Route53はエンドユーザーと各サービスを接続するサービス
両者は負荷分散をすることで同じですが、各リソースの繋がりで違いがあります。
イメージ図
Route53はユーザとELBを繋いでいます。(加重ルーティング)
ELBは、EC2(サーバー)に対して負荷分散をしています。
より細かい違いもありますが、イメージ的にはこんな感じでイメージしてもらえると良いと思います。
※今回は例としてこのような形にしてます。絶対にEC2としかつながらないわけではないです。
Route53とELBの違いはこちらのブログに詳しく書かれています。
おわりに
今回はELBについて記述しました。
AWSを勉強していくと似たようなサービスがあり、なにがどう違うのかわからないことも多くなってきました。
その時にイメージ図などを作成すると記憶に残りやすくなると思います。
ご覧いただきありがとうございます。