ELB
ELBの種類
ELBには3種類のバランシングタイプがある
- CLB(Classic Load Balancer)
- L4/L7レイヤーで負荷分散を行う
- 初期に提供された機能であり複雑な設定はできない
- ALB(Application Load Balancer)
- L7レイヤで負荷分散を行う
- CLBより後発であり、機能も豊富に提供されている
- WebSocketに対応、HTTPS/2に対応、URLパターンで振り分けるパスベースルーティングを提供
- NLB(Network Load Balancer)
- L4レイヤーで負荷分散を行う
- HTTP/HTTPS以外のプロトコル通信を負荷分散したい時に利用する
- NLB自体が固定IPアドレスを持つ
ELBの特徴
ELBを利用するメリット
- ELB自体のスケーリングが可能
- EC2上にLBを導入する場合、そのEC2インスタンスが単一障害点にならないよう設計する必要がある
- ELBを利用していれば、負荷に応じて自動でスケーリングする設計になっている
- 急激な負担増(スパイク)が予想できる場合も、ELBのプレウォーミング申請で対応が可能
- ヘルスチェックが利用可能
- 設定された間隔でEC2インスタンスの状態をチェックする
- 設定項目:対象ファイル、ヘルスチェックの間隔、何回連続でリクエストが失敗したらインスタンスを切り離すか
- 設定された間隔でEC2インスタンスの状態をチェックする
Auto Scaling
下記のような設定を事前に行っておくことで、システムの利用状況に応じて自動的にELBに紐づくインスタンスの台数を増減させる
適切な設定を行うと自動で、繁忙期はインスタンスを増やし、閑散期はインスタンスを減少するような動作が可能
- 設定項目
- 最小のインスタンス数
- 最大のインスタンス数
- インスタンスを増やす条件と増やす数
- インスタンスを減らす条件と減らす数
- どのインスタンスから削除するか
# ELBとAuto Scalingを利用する際の設計ポイント
- サーバをステートレスに設計する
2. インスタンス上にファイルを保持すると、別インスタンスから参照できなくなる可能性がある - AZをまたがってインスタンスを配置するよう設計する
4. AZ全体の障害が発生することもあるのでマルチAZ構成にして単一障害点をなくす
参考図書:AWS認定資格試験テキスト AWS認定ソリューションアーキテクト[アソシエイト]