コンテンツにスキップ

Examples: ELB + サーバの水平スケール(クローン)

概要

ELB配下のサーバの水平スケール(台数変更)を行います。
水平スケール対象のサーバは指定のサーバをクローン(ディスクのクローン)として作成します。
ELB配下に指定したサーバグループの台数の増減に合わせELBの実サーバとして登録/削除されます。

構成例

以下の条件でサーバを水平スケールさせる例です。

  • 対象エンハンスドロードバランサ:
    • example
  • 対象サーバグループ:
    • is1aゾーンのserversグループ
    • 2コア/4GBメモリ
    • インターネット側のNICとして共有セグメント(100Mbps)を利用
    • eth0の80番ポートをELBの実サーバのアドレスとして登録
    • ディスクソースとしてクローン元のサーバのディスクを指定

サーバのプロビジョニングはクローン元のサーバに対してあらかじめ行っておく必要があります。

resources:
  - type: ServerGroup
    name: "servers"
    zone: "is1a"

    # 親リソースの定義
    parent:
      type: ELB
      selector: "example"

    min_size: 5   # 最小インスタンス数
    max_size: 20  # 最大インスタンス数

    template: # 各サーバのテンプレート
      plan:
        core: 2
        memory: 4

      # NICs
      network_interfaces:
        - upstream: "shared"
          expose:
            ports: [ 80 ] # このNICで上流リソースに公開するポート番号

      # ディスク
      disks:
        - names: ["clone-source-disk"] #クローン元サーバのディスクの名前

      # 1番目のディスクの対するパラメータ(対応しているアーカイブの場合のみ指定可能)
      edit_parameter:
        disabled: false # ディスクの修正を行わない場合はtrue
        password: "your-password"
        disable_pw_auth: true
        enable_dhcp: false
        change_partition_uuid: true

        # SSH公開鍵の指定
        ssh_keys:
          # ファイルパス or 文字列で指定
          - "~/.ssh/id_rsa.pub"

Info

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

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