Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Managed Load Balancer のつくりかた

Managed Load Balancer のつくりかた

#tech-night で発表しました。
Smart Data Platform Managed Loac Balancer の仕組み・裏側についてご紹介。
https://sdpf.ntt.com/services/managed-lb/

HORIUCHI Akihiko

May 30, 2022
Tweet

More Decks by HORIUCHI Akihiko

Other Decks in Technology

Transcript

  1. ロードバランサとの比較 Managed LB ロードバランサ 作成 / 編集 / 削除 GUI

    / API GUI / API 設定 GUI / API Console 監視 / 故障復旧 プロバイダが実施 [1] ユーザーが実施 バージョンアップ 自動 [1] 手動 Managed Service = プロバイダ側の責任範囲が大きい インスタンスのライフサイクルをなるべくシンプルに管理したい 4 [1] 今後の機能追加で提供予定
  2. サービスの自動化 / 省力運用 • ロードバランサの機能をモデル化し、インスタンスの構成 / 設定をコントローラで 一元管理 • インスタンスを

    Immutable にすることで、構成 / 設定の変更を容易に ◦ インスタンス = 設定に従って通信を振り分けるだけの仮想サーバ • バージョンアップ [1] / Auto-healing [1] はインスタンスの再デプロイ = Rollover として自動化 ◦ Blue / Green 形式で再デプロイすることで、 Persistence や Session を維持 コントローラ 旧 新 同期 モデルから設定を生成して投入 設定変更: バージョンアップ: Auto-healing: 旧設定インスタンス 旧 ver インスタンス 異常インスタンス 新設定インスタンス 新 ver インスタンス 正常インスタンス Rollover 5 [1] 今後の機能追加で提供予定
  3. インスタンスの Rollover IP IP 現用 LB #1 現用 LB #2

    IP IP 現用 LB #1 現用 LB #2 IP IP 現用 LB #1 現用 LB #2 IP IP IP IP 新規 LB #1 新規 LB #2 新規 LB #1 新規 LB #2 Customer ロジカルネットワーク Customer ロジカルネットワーク Customer ロジカルネットワーク 冗長 / 同期 • ユーザが GUI / API で設定変更 / バージョンアップ [1] / プラン変更 [1] を実施 • もしくは監視の失敗により Auto-healing が発動 • 新規 LB (Green) の仮想サーバを作成し設定を投入 • Blue / Green (2 〜 4 台) を冗長化し、Persistence と Session を同期 • 新規 LB (Green) の監視を開始、現用 LB (Blue) の監視を終了 • 現用 LB (Blue) の仮想サーバを削除 所要時間 約 10 分 VIP VIP VIP VIP 6 [1] 今後の機能追加で提供予定
  4. Managed LB の API (作成) データモデル Load Balancer staged インスタンス

    データモデル Load Balancer staged Policy staged Listener staged Health Monitor staged Target Group staged インスタンス データモデル Load Balancer current staged Policy current staged Listener current staged Health Monitor current staged Target Group current staged インスタンス 現用 Create Load Balancer • コントローラ上で Load Balancer のデータモデルと Staged Config が作成される ◦ この時点でインスタンスは作成されない Create Policy / Listener / Health Monitor / Target Group • コントローラ上で Load Balancer に紐付く各種リソースのデー タモデルと Staged Config が作成される • 他にも下記のようなリソースがあるが割愛 ◦ Certificate [1] ◦ Route ◦ Rule (Policy に紐付く) [1] ◦ TLS Policy [1] Action Load Balancer (apply-configurations) • この時点でインスタンスの実体 (仮想サーバやポート) が作成 される • 各リソースの Staged Config がインタンスに反映され、 Current Config となる ◦ Staged Config の各 Attribute は初期化され API 上 null になる 7 [1] 今後の機能追加で提供予定
  5. Managed LB の API (設定変更) API / データモデル API /

    データモデル Load Balancer current Policy current Listener current Health Monitor current Target Group current インスタンス 現用 Load Balancer current staged Policy current staged Listener current staged Health Monitor current staged Target Group current staged インスタンス 現用 API / データモデル Load Balancer current staged Policy current staged Listener current staged Health Monitor current staged Target Group current staged インスタンス 新規 現用 設定変更前 • 各リソースの Current Config と現用インスタンスの設定は一 致する Update Staged Configurations • コントローラ上で各種リソースの Staged Config が作成される ◦ Staged Config の更新 / 取消も可能 ◦ name / description / tags など、設定と関係のない Attribute に対する変更は API 上で即時反映される Action Load Balancer (apply-configurations) • 現用インスタンスの横に新規インスタンスを作成し、変更後の設 定を投入する ◦ Persistence / Session を同期の上、現用インスタンス は削除 • 各リソースの Staged Config が Current Config となる 8