コンテンツにスキップ

Examples: ELB + サーバの垂直スケール

概要

ELB配下のサーバの垂直スケール(プラン変更)を行います。
Inputsからパラメータresource-nameを指定することでELBまたはサーバのプラン変更が可能です。

ELB配下に指定したサーバのIPアドレスがELBに実サーバとして登録されている場合は以下のように処理されます。

  • <各サーバを順次処理>
    • ELBからデタッチ
    • サーバのプラン変更(再起動を伴います)
    • ELBへアタッチ

Warning

ELB+サーバのオートスケールは無停止/サービス中断なしで行えますが、そのためには実サーバが2台以上必要です。
実サーバが2台未満の場合はサーバが再起動する間にサービス中断が発生する可能性があります。
また、サーバの垂直スケール後に準備が整わないままサービスインさせないようにsetup_grace_periodを適切に指定しておく必要があります(デフォルトは60秒です)。

Info

ELBからのデタッチ/アタッチはELBの実サーバごとに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"] # 名前に'example'が含まれているリソースが操作対象となる
      zones: ["is1a"]

    parent:
      type: ELB
      selector: "example"

    plans:
      - core: 1
        memory: 1
      - core: 2
        memory: 4
      - core: 4
        memory: 8

Info

リソース定義が1つだけなため、Inputsからのリクエスト時にresource-nameパラメータを省略可能です。

例:  
Webhook系のリクエストURL例: `http://<your-host>/up`  
Direct Inputsの実行例: `autoscaler inputs direct up`