Examples: LB + サーバの垂直スケール
概要
LB配下のサーバの垂直スケール(プラン変更)を行います。
Inputsからパラメータresource-name
を指定することでLBまたはサーバのプラン変更が可能です。
LB配下に指定したサーバのIPアドレスがLBに実サーバとして登録されている場合は以下のように処理されます。
- <各サーバを順次処理>
- LBからデタッチ
- サーバのプラン変更(再起動を伴います)
- LBへアタッチ
Warning
LB+サーバのオートスケールは無停止/サービス中断なしで行えますが、そのためには実サーバが2台以上必要です。
実サーバが2台未満の場合はサーバが再起動する間にサービス中断が発生する可能性があります。
また、サーバの垂直スケール後に準備が整わないままサービスインさせないようにsetup_grace_period
を適切に指定しておく必要があります(デフォルトは60秒です)。
Info
LBからのデタッチ/アタッチはLBの実サーバごとにEnabled
というプロパティを更新することで行われます。
この際に元のEnabled
の値は考慮されません。スケールアップ/ダウン前からEnabled=false
であってもELBにアタッチする際にEnabled=true
へ更新されます。
構成例
以下の条件でサーバを垂直スケールさせる例です。
- 対象ロードバランサ:
- example
- 対象サーバ:
- is1aゾーンのexample1とexample2
- プランは以下の範囲とする
- Core:1 / メモリ: 1GB
- Core:2 / メモリ: 4GB
- Core:4 / メモリ: 8GB
resources:
- type: Server
name: "servers"
selector:
names: ["example"]
zones: ["is1a"]
plans:
- core: 1
memory: 1
- core: 2
memory: 4
- core: 4
memory: 8
parent:
type: LoadBalancer
selector: "example"
Info
リソース定義が1つだけなため、Inputsからのリクエスト時にresource-name
パラメータを省略可能です。
例:
Webhook系のリクエストURL例: `http://<your-host>/up`
Direct Inputsの実行例: `autoscaler inputs direct up`