ELBとは
Elastic Load Balancing(ELB)とは、AWSが提供するロードバランサー。
ロードバランサーとは、サーバーに集中するアクセス(トラフィック)を複数のサーバーやネットワークに振り分ける仕組み。
ひとつのサーバーにかかる負荷を分散させるので負荷分散装置と言う。
ELBの種類
- ALB
- NLB
- CLB
の3種類が存在する
ALB(Application Load Balancer)
HTTPおよびHTTPSに最適なロードバランサー。
OSI参照モデルにおけるアプリケーション層(具体的な通信を提供する層)で動く
要求コマンドなどの命令内容を見て判断するので、宛先のURLのディレクトリ単位で振り分けることもできる
インスタンスとロードバランサーとの通信を暗号化できる
ただし、振り分け先として静的IPアドレスを設定し、そのIPを持つホスト(機器)へ転送はできない
対応プロトコル:HTTP,HTTPS
NLB(Network Load Balancer)
OSI参照モデルにおけるトランスポート層(送信されたデータの制御を担う層)で動く
バケットと呼ばれる断片データしか見ないのでALBほど細かい振り分けはできない
振り分け先として静的IPアドレスを設定したり、
サーバーにアクセスしてきたクライアント側のIPアドレスをそのままサーバーに伝える設定にしたりできる
対応プロトコル:TCP,TLS
CLB(Classic Load Balancer)
古いタイプのロードバランサー。
対応するプロトコルが多い。
しかし、これから作るシステムでは使わないべき。
対応プロトコル:TCP,SSL/TLS,HTTP,HTTPS
ELBの料金
ALBとNLBの料金は、時間あたりの使用料金と、LCU(ロードバランサーキャパシティーユニット)料金の合計で算出される
料金 = 使用料金 + LCU
使用料金(使用単価×時間)
使用料金はELBの種類ごとに単価が決まっていて、それに時間をかけた金額
LCU料金(LCU使用量×LCU単価×時間)
LCU料金は使用状況の4つの項目についてLCU利用量が「何LCU」に当たるかを換算し、一番大きな項目だけを課金対象にする
※LCU料金を算出するために、まずLCUの4つの項目についてLCUの使用量を換算し比較する必要がある。
- 新しい接続(1LCU=1秒あたり25個の新しい接続)
1秒あたりの新たに確立された接続数。(イメージ)PCやスマホ、サーバーなどが新しくアクセスしてきた数。 - アクティブ接続(1LCU=1分あたり3000個のアクティブ接続)
1分あたりのアクティブな接続数。現在繋がっている接続の数 - 処理した量(1LCU=1時間あたり1GB)
ロードバランサーによって処理されたHTTP(S)リクエストと応答のバイト数。Lambda関数がターゲットの場合は1LCU=1時間あたり0.4GBで換算 - ルール評価(1LCU=1秒あたり1000個のルール評価)
ロードバランサーにより処理されたルール数とリクエストレート(1秒間に送られたリクエスト数)の積
以上の4項目が何LCUなのかを比較し、最大値の数値をLCU使用量として代入