ELBついて色々調べた
ELBとAutoScalingについて
Web系システムではほぼセットで使うので、ごっちゃになりやすいが、本来ELBとAutoScalingは べつものなので、はっきりさせておく。
ELBのお仕事
ELBは、LB配下のノードのヘルスチェックを行い、死んでいるノードにリクエストを投げるのをやめたり、新規追加されたノードのヘルスチェックを行った後に、正常なノードとして、リクエストを割り振ったりする。
AutoScalingのお仕事
まず、LaunchConfiguration というもので、どういうAMIでどういうEC2設定で行くのかを予め決めておく。これを元にAutoScalingGroup(asg)を作る。asgは
- テンプレートとして どのLaunchConfigurationを使い
- どのELBと連動するか
を指定する必要がある。作成の順序としては
- ELB
- Launch Config
- AutoScaling Group
となる。AutoScalingのお仕事は
簡単に ELB & AutoScalingの関係
ともかく、EC2を増やしたり減らしたりのしごとは全部AutoScalingがやってる。ELBもヘルスチェックしているが、あくまで負荷分散の振り先として入れるか入れないかだけの判断であって、ELBでOutServiceと判断されただけでは、Terminateされない。ELBがEC2をTerminateできない。
ELBで分かったこと
- ELBのみを2段重ねできない。ELB - EC2 - ELB のように、EC2を一回かませる必要がある。
- リージョン跨ぎのELBは作れないので、これに相当する方法としては Route53か、CloudFront のキャッシュ無し版。
- SSL証明書の2枚刺しは原則できない。ポート変えればできるが
- 2つのELBが1台のEC2を参照することはできる。
- AutoScaling連携は必須ではない。EC2はEC2だけでも使える
AutoScalingで分かったこと
- 1つのAutoScalingGroupを複数ELBに使わせることは可能
- ELB連携は必須ではない。EC2だけでもAutoScalingできる
- AutoScaling Desire=0 スケジューリングで時間起動EC2も作れる
AutoScalingのイベントについて
ライフサイクル管理によってイベントステートは増えているが、Launch & TerminateのタイミングはSNS経由で取得することが可能。