⌚
ロードバランサー講座メモ
作成日: 2024-01-23T13:59:00.000Z
最終更新: 2024-08-07T13:15:00.000Z
DAY1
負荷分散とは
- 可用性を高めるための手段
- 存在しなかったら
- 一台のサーバーで全てのリクエストを捌かないといけない
- 複数台用意したとして
- リクエストの振り分け方は?
- 1台が死んだ時の対処法は?
ロードバランシングの種類
- RoundRobin
- 順番に均等に振り分ける
- LeastConnections
- コネクション数を見て少ないサーバに転送
- DNSラウンドロビン
- ドメイン索引時にIPアドレスを交互に返す
- L4ロードバランシング
- メリット
- LBのIPを固定できる
- 効果養成、高スループット、低レイテンシ
- メリット
- L7ロードバランシング
- HTTP/HTTPSの機能を使った負荷分散
- いろんなルーティングができる
- 一旦L7を選定するということが多いかも
- 普段使いしやすい&柔軟
- ネットワークの要件が高い場合はL4
スティッキーセッション
セッションが続いている間は同じクライアントを同じサーバへ誘導する機能
均等に振り分け続けるとクライアントの情報を保持していないサーバにリクエストしてしまうことがあるため
DAY2
- AWSではEC2の中にあるロードバランシングの項目を見る
- ロードバランサータイプ
- Application = L7
- internet-facing = public Subnetに配置している
- Private ALBになるケース(蛇足メモ)
- コンテナ間通信、internal ALBなどの場合
- サービスディスカバリなどを最近採用するケースが多い
- ALBはサブネットに配置するため、VPCができている前提
- DNSは必ず払い出される
- トラフィックの設定
- ユーザーからのリクエストでヘッダーなどの情報が欠落しないように見直すところ
- リスナーとルール
- ポート
- 例:HTTPS:444なら444 のポートで来たリクエストに対してどのように振る舞うか
- ターゲットグループ
- 転送先
- リダイレクトや固定レスポンス(エラーなど)を返すこともできる
- if文(ルール条件の定義)で、IPやパスで条件分岐させることも可能
- ALBの責務にするべきか、アプリケーションの責務にするべきかは設計次第
- 登録済みターゲット
- ECS on Fargateで指定する
- ヘルスチェックが通っていると
Healthy
と表示される - リクエストエラーが発生している場合はヘルスチェックの値を確認
- ポート
- ALBの性能限界を超えるような時は、暖機申請をする
- 5分間で50%以上のトラフィック増加があると、ALBのスケールが間に合わなくなってくるかもしれない(参考)