Forum Stats

  • 3,827,324 Users
  • 2,260,761 Discussions
  • 7,897,203 Comments

Discussions

インスタンスのオートスケーリングを設定する - Oracle Cloud Infrastructureアドバンスド

mmarukaw-Oracle
mmarukaw-Oracle Posts: 18 Employee
edited Dec 13, 2019 12:27AM in Social Groups

目次に戻る : チュートリアル : Oracle Cloud Infrastructure を使ってみよう

アプリケーションの負荷に応じて自動的にコンピュート・リソースの増減ができれば、必要な時に必要な分だけのリソースを確保し、コストの最適化にもつながります。これを実現するための手法として、OCIではインスタンス・プールのオートスケーリング設定によって、負荷に応じてインスタンス・プール内のインスタンス数を増減させることが可能です。

このチュートリアルでは、オートスケーリングの設定を行って、実際にインスタンス数がどのように変化するかを確認します。

所要時間 : 約30分

前提条件 :

  1. インスタンスを作成する - Oracle Cloud Infrastructureを使ってみよう(その3) を通じてコンピュート・インスタンスの作成が完了していること

注意 : チュートリアル内の画面ショットについては Oracle Cloud Infrastructure の現在のコンソール画面と異なっている場合があります

image

今回の設定作業手順の流れは以下の図の1~4です。

スライド2.PNG

1. ベースになるインスタンスの作成

まずは、オートスケーリングの設定を行うインスタンス・プールのもとになるインスタンスを作成します。今回は、インスタンスを作成する - Oracle Cloud Infrastructureを使ってみよう(その3) で作成したコンピュート・インスタンスを使用します。

2. インスタンス・コンフィグレーションの作成

ベースになるインスタンスからインスタンス・コンフィグレーションを生成します。インスタンス・コンフィグレーションとは、インスタンス起動を行うための「イメージ、シェイプ、メタデータ情報(sshキー、起動時スクリプトなど)、関連リソース(ブロック・ボリューム、ネットワーク構成)」をひとまとめにした構成情報の定義です。

  1. コンソールメニューから ComputeInstances を選択し、作成したインスタンスのインスタンスTestVM1 リンクをクリックするか、右側の ・・・ メニューから View Instance Details を選択し、インスタンス詳細画面を開きます。
    pastedImage_0.png
  2. INSTANCE CONFIGURATION NAMEに任意の名前を入力し、Create Instance Configuration をクリックします。
    pastedImage_21.png
  3. インスタンス・コンフィグレーションができました。
    pastedImage_32.png

3. インスタンス・プールの作成

作成したインスタンス・コンフィグレーションをもとに、インスタンス・プールを作成します。インスタンス・プールを作成すると、インスタンス・コンフィグレーションで定義された構成のインスタンスが、設定したインスタンス数で自動的に起動してくるようになります。今回はまずサイズを「0」で作成し、あとのステップでこの数を増やしていく(スケーリングしていく)ようにします。

  1. 作成されたインスタンス・コンフィグレーションの画面から Create Instance Pool をクリックします。
  2. Create Instance Pool ウィンドウで下記の情報を入力し、ウィンドウ下部の Create Instance Pool をクリックします。
    • CREATE IN COMPARTMENT - 任意
    • INSTANCE POOL NAME - 任意
    • NUMBER OF INSTANCES - ここでは0を入力
    • ATTACH A LOAD BALANCER - 今回はチェックを入れない (既存のロードバランサーがある場合は、ここでロードバランサーにアタッチすることも可能です。アタッチすると、作成されたインスタンスは自動的にロードバランサーのバックエンドに追加されます。)
    • Availability Domain Selection 1
      • AVAILABILITY DOMAIN - 任意
      • Primary VNIC
        • VIRTUAL CLOUD NETWORK COMPARTMENT - VCNのあるコンパートメントを選択
        • VIRTUAL CLOUD NETWORK - VCN名を選択
        • SUBNET COMPARTMENT - SUBNETのあるコンパートメントを選択
        • SUBNET - SUBNET名を選択
          pastedImage_29.png
  3. インスタンス・プールができました。

4. オートスケーリングの設定

作成したインスタンス・プールにオートスケーリングの設定を行います。今回は、インスタンス・プール内の平均CPU使用率が70%を上回ったら1インスタンス増やす、30%未満になったら1インスタンス減らす、というポリシーを設定します。スケーリングするインスタンス数は、最小1インスタンス、最大4インスタンスに設定します。


  1. 作成したインスタンス・プールの画面から、ActionsCreate Auto Scaling Configuration をクリックします。
  2. Create Autoscaling Configurationのウィンドウで、下記項目を入力し、左下の Create をクリックします。
    • COMPARTMENT - 任意

    • AUTOSCALING CONFIGURATION NAME - 任意

    • INSTANCE POOL - 先ほど作成したインスタンスプール名が選択されていることを確認

    • COOLDOWN IN SECONDS - 300(デフォルト)のまま

    • AUTOSCALING POLICY NAME - 任意

    • PERFORMANCE METRIC - CPU Utilization を選択

    • Scaling Limits

      • MINIMUM NUMBER OF INSTANCES - 1

      • MAXIMUM NUMBER OF INSTANCES - 4

      • INITIAL NUMBER OF INSTANCES - 1

    • Scaling Rule

      • SCALE-OUT OPERATOR - Greater than (>) (デフォルトのまま)

      • THRESHOLD PERCENTAGE - 70

      • NUMBER OF INSTANCES TO ADD - 1

      • SCALE-IN OPERATOR - Less than (<) (デフォルトのまま)

      • THRESHOLD PERCENTAGE - 30

      • NUMBER OF INSTANCES TO REMOVE - 1
        pastedImage_39.png

  3. オートスケーリング設定ができました
    pastedImage_7.png

  4. できあがったオートスケーリングのページから、対象のインスタンス・プール名 TestPool1 をクリックしてインスタンス・プールの画面を表示します。初期インスタンス数 - 1、最小インスタンス数 - 1 に設定したため、自動的に1つめのインスタンスがプロビジョニングされていることがわかります。
    pastedImage_9.png

5. CPU負荷をかけてインスタンス増減を確認

起動してきたインスタンスにOS上からCPU負荷をかけてCPU使用率が閾値(ここでは70%)を上回るように設定し、実際にインスタンスが1つ増えるかどうかを確認します。

また、インスタンスの増加が確認できたら、負荷を止めてCPU使用率を閾値(ここでは30%)未満にし、インスタンスが1つ減る様子を確認します。

  1. インスタンス・プール画面の Created Instances のリスト上で、作成されたインスタンスのステータスがRunningになったらインスタンス起動が完了しています。インスタンスの名前のリンクをクリックして作成されたインスタンスの情報を表示します。
    pastedImage_2.png
  2. インスタンスのパブリックIPアドレスを確認し、このアドレスを使用してteratermなどのターミナルからsshでログインします。
  3. インスタンスのCPU負荷をあげるために、Linuxのstressコマンドで負荷をかけます。
    • 以下のコマンドを入力し、stressをインストールします。
      sudo yum -y install stress
    • stressコマンドでCPUに負荷をかけます。VM.Standard2.1のシェイプであれば、下記コマンドでCPU負荷が100%になります。
      stress -c 2 &
    • topコマンドでCPU負荷が約100%になっていることを確認します。Ctrl + C で終了します。

    • top -c
    • pastedImage_0.png
  4. OCIコンソール上からもCPU使用率の状況を確認します。コンピュート・インスタンスの画面から、MetricsSTART TIME の部分をクリックし、 Last hour を選択します。直近1時間のメトリックを表示できます。
    pastedImage_11.png

  5. この状態でCooldown期間で指定した300秒が過ぎると、スケーリング動作を確認することができます。再度、作成したインスタンス・プールの画面を表示します。ステータスが SCALING 中の状態となり、新規のインスタンスがプロビジョニングされていく様子が確認できます。
    pastedImage_0.png
  6. インスタンスの起動が完了すると、再びインスタンス・プールのステータスは RUNNING 状態に戻ります。この時点で、インスタンス・プール内の平均CPU使用率は50%となっているため、これ以上のインスタンス数増加はありません。
    pastedImage_12.png
  7. インスタンスのCPU負荷を下げます。ssh接続したターミナルから以下のコマンドを入力し、プロセスをkillします。CPU使用率は約0%に戻ります。
    • pkill stress
  8. 300秒が経過すると、自動で1インスタンスが削除され、インスタンス・プール内には1インスタンスのみ残ります。

以上がインスタンス・プールのオートスケーリング設定による動作です。

目次に戻る : チュートリアル : Oracle Cloud Infrastructure を使ってみよう