ELBの資料を読んだメモ
自分が業務で使いそうな範囲でメモに起こす。
ELB = L4のロードバランサー(Classic Load Balancer = CLB) + L7ベースのロードバランサー(Application Load Balancer = ALB)
ELB
ELBは複数AZをまたいで負荷分散が可能。
ヘルスチェックは細かく指定可能。以下の表は引用。 ウェブアプリケーションで未熟な状態なら、PingパスでDBの接続とかあれこれチェックできる状態にしておくのも一つの手か?
項目 例 メモ Ping プロトコル HTTP 200が返るか? Ping ポート 80 Ping パス /index.html HTTP/HTTPS利用の場合 タイムアウト時間 20秒 ヘルスチェック間隔 30秒 異常判定までの回数 4回 正常判定までの回数 2回 正常との判定が遅いと追加したインスタンスが使える前に時間がかかる。 逆に異常との判定が厳しすぎても過負荷時に処理できるインスタンスを減らしてしまうことも。
Route 53以外でDNSを使うときは、CNAMEで設定してELBに向ける。
サーバー証明書はELBにアップロード。Let's Encryptを使うときはどうする?的な話は別途調べる。→AWS Certificate Managerを使用する。証明書に対しての料金がかからない理解。アップロード作業も不要。
サーバーへの接続のソースIPはELBのIPアドレスになるので、X-Forwarded-For
ヘッダーを見る。
ELBにもセキュリティグループを設定できるので、今までEC2に設定していたセキュリティグループはELBだけを受け付けるようにして、ELB側で制限をかける。
ALB
コンテクストベースルーティングで、ルールにURLのパスが使える。振り分け先にはターゲットグループ(バックエンドサーバーをまとめたグループ)を指定。
WebsocketやHTTP/2にも対応。
料金 ALBの使用時間と、Load Balancer Capacity Units (LCU) の使用量で課金。
LCU 以下の3つのディメンションを測定し、使用量が最も高いディメンションのみ請求。
とりあえず変なことしなければ、CLBよりちょろっと安く済ませられるらしい。
ディメンションの項目から考えると、HTTP/2にちゃんと対応したほうが安くなるのか?