はじめに
この記事はAWS SAA試験勉強のための、ELBに関する知識のまとめです。
ELBとは
ELBとは、Elastic Load Balancingの略称で、AWSが提供しているロードバランシングサービスです。EC2インスタンス間のトラフィック分散を実施します。
スティッキー(固定する)セッションはセッション中に、同じユーザから来たリクエストを全て、常に同じEC2インスタンスに送信する機能。
Amazon EC2インスタンスとELBの間の通信を暗号化することで、EC2インスタンスを利用したトラフィックのセキュリティを向上させることができます。SSL/TSL証明書をELBまたはEC2インスタンスに設定することで、SSL通信を実行することが可能。
ELBの発動には数分かかるため、スパイク(急激な負荷増)には対応できません。
ELBロードバランサーを指すようにZone Apexを登録するために、Route53ではエイリアスレコードを登録する必要があります。
ELBのリスナー設定でHTTPSプロトコルを利用するように変更できます。
ターミネーションポリシー
NewestInstanceは新しく設置されたインスタンスから削除されるポリシー設定。
rsync
「rsync」は、リモート環境とファイルやディレクトリを「同期(sync)する」というコマンドです。
ELBを使って負荷分散した際、複数のEC2インスタンスの特定ディレクトリを同期したいときには、rsyncを使うのが一般的。
/* ディレクトリを同期する(内容のみをコピー)*/
rsync -avh --progress /path/to/source/ /path/to/destination/
ALB(Application Load Balancer)
CLB(Classic Load Balancer)
L4/L7で負荷分散。
NLB(Network Load Balancer)
L4(トランスポート層)で負荷分散。
HTTP/HTTPSトラフィックやアプリケーション層のルーティングが必要な場合はALBを選択し、TCP/UDPレベルの負荷分散や高スループットが必要な場合はNLBを選択します。
NLBに対してAWS Global Acceleratorを追加して、正しいリスナーポートを使用するようにGlobal Acceleratorの標準アクセルレーターエンドポイントを設定することで、グローバルなエンドポイントを介して、より高速なアプリケーションアクセスを可能にします。
バックエンドのEC2インスタンスの代わりに、NLBでTLS接続をTerminationすることができます。この際の証明管理書はAWS Certificate Manager(ACM)が推奨されます。
ELBのうち固定IPアドレスを割り当てることができるのはNLBのみです。
GLB(Gateway Load Balancer)
サードパーティネットワークアプライアンス製品向け。
Connection Draining
既存の接続を開いたまま、登録解除または異常なインスタンスへのELBのリクエスト送信を停止する機能。
ELBではない方法でトラフィック分散による高可用性とフォールトトレランスを構成する方法
仮想のElastic IPアドレスを使用してEC2インスタンスに付与します。
ヘルスチェック
ELBのヘルスチェックがターゲットのインスタンスの異常を検知した場合、そのターゲットへのトラフィック送信を停止します。
SNI(Server Name Indication)
SNIは、暗号化通信で使用するサーバー証明書をパブリックIPアドレスではなくドメイン名によって判断する技術です。SNIに対応したELBに複数のサーバー証明書を導入すると、ELBが宛先ドメイン名から適切なサーバー証明書を判断してサーバーへ通信を転送します。SNIはALBとNLBが対応しています。