実践活用ガイド - ネットワークとインフラの構築

オートスケールを設定する

IDCFクラウドでは仮想ルーターを使用して負荷分散をすることが可能です。

スクリプトにより、Webサーバーなどへの負荷が継続した際や急激なアクセス上昇を検知し、自動でテンプレートから仮想マシンを作成してスケールアウト(ロードバランサーへ登録)することができます。
スケールアウトを使用することで緊急時でもサーバーからのレスポンスを一定にコントロールすることができ、運用負荷も軽減させることができます。

ここで紹介するオートスケールは、指定したロードバランサー配下の仮想マシン1台のLoadAverageを監視し、指定の上限しきい値を超えた場合、指定したテンプレートから仮想マシンを作成し、作成した仮想マシンをロードバランサー配下に追加します。
また、LoadAverageが指定した下限しきい値を下回った場合はロードバランサーから仮想マシンを1台削除します。
仮想マシンの上限/下限台数を指定できるので、指定以上/以下の台数にはなりません。
なお、監視対象のサーバーは1台しか指定できないため、ロードバランサーのバランシングのアルゴリズムはroundrobinを選択する必要があります。

オートスケールを使用して構築するには、元となるサーバー(仮想マシン)のテンプレートを作成してAPIが使用できる環境を作成する必要があります。
また、しきい値を監視するため、監視元と監視対象のサーバーを用意する必要があります。(本書ではテスト実行のため、最終的に3台構成となります。)

本書の中で監視元サーバーを「運用サーバー」、監視対象サーバーを「監視対象サーバー」と記載しています。

1. 監視対象サーバーの構築とテンプレート準備

監視対象サーバーを構築し、テンプレートを作成します。

1. 監視対象サーバーとして、CentOS7でHTTPサーバーを構築します。仮想マシン名は「scale01」とします。
仮想マシンの作成方法は、「Webサイトの本番環境を構築したい(Web1台構成)」の「1. 仮想マシンの作成」をご参照ください。
設定例は下記の通りです。

項目 設定内容
マシンタイプ Light.S1
イメージ おすすめTemplate - CentOS 7.9 64-bit
ボリューム データディスクなし(空欄のまま)
SSH Key ※注1
仮想マシン台数 1台
ネットワークインターフェース ※注2

詳細情報
 
マシン名 scale01
グループ (なし)

※注1: SSH Keyの項目は、SSH秘密鍵を未作成の場合は[作成]を選択し、生成された秘密鍵をローカルPCに保存します。詳しくは「めちゃ楽ガイド新規ウィンドウを開きます」6ページの手順3をご参照ください。
※注2: ご利用のアカウントによってネットワークインターフェースとして選択できるゾーン名が異なります。普段お使いのゾーン名をご選択ください。


2. オートスケール用にパブリックIPアドレスを1つ用意します。
パブリックIPアドレスの取得方法は、「仮想マシンの接続方法 スタティックNAT編」の「1.パブリックIPアドレスの取得」をご参照ください。
設定例は以下のとおりです。

項目 設定内容
IPアドレス名 scale
ゾーン 仮想マシンを作成したゾーン
ネットワーク 仮想マシンを作成したネットワーク


3. IPアドレス取得後、IPアドレス一覧画面より、取得した[IPアドレス名]をクリックします。


4. IPアドレス詳細画面にて、ファイアウォールの設定を行います。
ファイアウォール設定方法は、「ファイアウォールの設定方法」をご参照ください。
設定例は以下のとおりです。

コメント ソースCIDR タイプ ポートレンジ
ssh-web My IP Custom TCP 10022
ssh My IP SSH 22
http Any HTTP 80


5. 同じIPアドレス詳細画面にて、ポートフォワードの設定を行います。
ポートフォワード設定方法は、「仮想マシンへの接続方法 ポートフォワード編」をご参照ください。
設定例は以下のとおりです。
監視対象サーバーは基本的に外部からログインする機会が殆どないため、22番ポートは運用サーバーで使用し、10022番ポートを監視対象サーバー用に設定します。

コメント パブリックポート プライベートポート 仮想マシン
ssh-web

Custome TCP

10022

22 scale01


6. 同じIPアドレス詳細画面にて、ロードバランサーの設定を行います。
ロードバランサーの設定方法は「仮想マシンへの接続方法 ロードバランサー編」をご参照ください。
設定例は以下のとおりです。
Webサーバーの負荷分散として、今回はHTTPアクセスのロードバランサーのルール設定を実施し、scale01をあらかじめ登録します。

コメント パブリックポート プライベートポート アルゴリズム 接続維持 仮想マシン
scale HTTP 80 roundrobin なし scale01


7. 監視対象サーバーにsshログインし、Webサイト環境構築を行います。
監視対象サーバーへのアクセス方法は、「Webサイトの本番環境を構築したい(Web1台構成)」の「3. 仮想マシンへのアクセス」を、Webサイト環境構築方法は、同じく「4. Webサイト環境構築」をご参照ください。
監視対象サーバーへのアクセスは、sshポートを10022と指定してください。

8. 監視対象サーバーのテンプレートを作成します。
テンプレート作成方法は、「スケーラブルなWebサイトを構築したい(Web2台構成編)」の「2. スナップショットの作成」と「3. テンプレートの作成」をご参照ください。
テンプレート作成の設定例は以下のとおりです。

項目 設定内容
テンプレート名 scale01 template
説明 scale01のテンプレート
OSタイプ ※お使いのOSタイプと同じもの、もしくは近いものをご選択ください。
パスワードリセット 有効
ダイナミックスケール 有効


以上で監視対象サーバーの作業は完了です。

2. 運用サーバーの作成とスクリプトの設定

オートスケールのスクリプトを実行する運用サーバーの構築を行います。
運用サーバーにはAPIから情報を取得するためのコマンドラインツール「idcfcloud-cli」とオートスケール用のサンプルプログラム「idcf.compute.auto_scale」をインストールします。
本章では、運用サーバー、監視対象サーバーそれぞれで作業を行いますので、作業対象の仮想マシンを間違えないようご注意ください。

1. 運用サーバーとして、CentOS7の仮想マシンを作成します。仮想マシン名は「manage01」とします。
仮想マシンの作成方法は、「Webサイトの本番環境を構築したい(Web1台構成)」の「1. 仮想マシンの作成」をご参照ください。
設定例は下記の通りです。
※必ず監視対象サーバーと同じゾーンに作成してください。

項目 設定内容
マシンタイプ Light.S1
イメージ おすすめTemplate - CentOS 7.9 64-bit
ボリューム データディスクなし(空欄のまま)
SSH Key ※注1
仮想マシン台数 1台
ネットワークインターフェース ※注2

詳細情報
 
マシン名 manage01
グループ (なし)

※注1: SSH Keyの項目は、SSH秘密鍵を未作成の場合は[作成]を選択し、生成された秘密鍵をローカルPCに保存します。詳しくは「めちゃ楽ガイド新規ウィンドウを開きます」6ページの手順3をご参照ください。
※注2: ご利用のアカウントによってネットワークインターフェースとして選択できるゾーン名が異なります。普段お使いのゾーン名をご選択ください。


2. 左メニューから[IPアドレス]をクリックし、「1. 監視対象サーバーの構築とテンプレート準備」で作成したIPアドレス名[scale]をクリックします。


3. IPアドレス詳細画面にて、運用サーバー「manage01」にsshログインするためのポートフォワード設定を行います。
ポートフォワード設定方法は、「仮想マシンへの接続方法 ポートフォワード編」をご参照ください。
設定例は以下のとおりです。

コメント パブリックポート プライベートポート 仮想マシン
ssh

SSH

22 manage01


4. API関連情報を確認するため、クラウドコンソール右上のアイコンをクリックし、プルダウンメニューから[アカウント設定]をクリックします。


5. 左メニューから[API]をクリックし、API画面を表示します。
API Key、Secret Keyおよびコンピュートのご利用のリージョンのエンドポイントを確認して以降の手順で使用できるようにしておきます。


6. 運用サーバーにsshログインします。
運用サーバーへのアクセス方法は、「Webサイトの本番環境を構築したい(Web1台構成)」の「3. 仮想マシンへのアクセス」をご参照ください。

7. 運用サーバーに、APIから情報を取得するためのコマンドラインツール「idcfcloud-cli」をインストールします。
「idcfcloud-cli」のインストールおよび初期設定方法については「API Docs」をご参照ください。
最後に、再ログイン時に毎回sclコマンドを入力する必要がないように、/etc/profile.d以下に下記ファイルを作成します。

[root@manage01 ~]# [root@manage01 ~]# cat /etc/profile.d/rh-ruby25.sh
#!/bin/bash
source scl_source enable rh-ruby25
							

8. 当社で用意しているリポジトリから、オートスケール用スクリプト「idcf.compute.auto_scale」をインストールします。

[root@manage01 ~]# yum -y install epel-release
 ~~~~~~~~~~
完了しました!
New leaves:
  epel-release.noarch
[root@manage01 ~]# yum -y install http://repo.noah.idc.jp/Linux/CentOS/7/idcf/x86_64/idcf-release-8-0.0.idcf.el7.noarch.rpm
 ~~~~~~~~~~
完了しました!
New leaves:
  idcf-release.noarch
[root@manage01 ~]# yum -y install idcf.compute.auto_scale
 ~~~~~~~~~~
完了しました!
New leaves:
  idcf.compute.auto_scale.noarch
[root@manage01 ~]#
							

9. 設定のサンプルファイルをコピーします。
viなどのテキストエディタでコピーしたサンプルファイルを開き、手順5で確認した項目を記入します。

[root@manage01 ~]# cp /usr/share/doc/idcf.compute.auto_scale-*/sample.idcfrc .idcfrc
[root@manage01 ~]# vi .idcfrc #以下を編集して保存
---------------
[account]
host=<ご利用のリージョンのエンドポイント>
api_key=<API Key>
secret_key=<Secret Key>
---------------
[root@manage01 ~]#
							

10. idcfcloud-cliが正しく動作するかzone IDを取得して確認します。
このzone IDは後に使用するので、今回サーバーを作成したzone IDをメモ帳などにコピーしておいてください。
表示例は以下のとおりです。
※なお、エラーになる場合は設定が間違っている、もしくはクラウドコンソールにてAPI IPアドレス制限が掛かっている可能性があるため、設定を見直してください。

[root@manage01 ~]# idcfcloud compute listZones -o table -f id,name
+------------------------------------+------+
|id                                  |name  |
|5059911c-cc46-48a8-8cc5-3c172b74e408|volt  |
|712f9db0-bcad-475b-9448-7d79d4bab1b9|ampere|
+------------------------------------+------+
[root@manage01 ~]#
							

11. idcfcloud-cliでテンプレートIDを取得します。
このテンプレートIDは後に使用するので、メモ帳などにコピーしておいてください。
表示例は以下のとおりです。

[root@manage01 ~]# idcfcloud compute listTemplates -o table -f id,name '{"templatefilter":"self"}'
+------------------------------------+----------------+
|id                                  |name            |
|5cddb79c-a5db-4919-9bd9-xxxxxxxxxxxx|scale01 template|
+------------------------------------+----------------+
[root@manage01 ~]#
							

12. idcfcloud-cliでサーバーを紐づけるLoad Balancer Rule ID(ここではscaleのid)を取得します。
このLoad Balancer Rule IDは後に使用するので、メモ帳などにコピーしておいてください。
表示例は以下のとおりです。

[root@manage01 ~]# idcfcloud compute listLoadBalancerRules -o table -f id,name,publicip
+------------------------------------+-----+--------------+
|id                                  |name |publicip      |
|462a42f6-fb48-4da0-8a31-xxxxxxxxxxxx|scale|xxx.xxx.xxx.xxx|
+------------------------------------+-----+--------------+
[root@manage01 ~]#
							

13. idcfcloud-cliで仮想マシンのマシンタイプのid(ServiceOffering ID)を取得します。
このServiceOffering IDは後に使用するので、メモ帳などにコピーしておいてください。
表示例は以下のとおりです。

[root@manage01 ~]# idcfcloud compute listServiceOfferings -o table -f id,name
+------------------------------------+------------------------+
|id                                  |name                    |
|9eddd2bb-3e70-4f68-bf58-09e1417be5f8|light.S1                |
|ede4b903-f7fc-4fae-ac4b-5d4a1eea21cc|light.S2                |
|63fc283f-3039-48e1-ae1f-d66ec62d27aa|light.M3                |
 ~~~~~~~~~~
|f842d113-cfe0-4769-8cf1-ab8d120bbcf6|highcpu.XL16            |
|44d783b9-70b3-460c-9d8f-6bfb62f59bfe|highcpu.2XL32           |
|72c52b79-cdad-492c-bc7c-2a8753b87ccc|highio.3XL128.g3        |
+------------------------------------+------------------------+
[root@manage01 ~]#
							

14. 監視対象サーバーに監視スクリプトでログインできるように設定を行います。
まずは、運用サーバーでSSH鍵を作成します。
※監視スクリプトでパスフレーズを入力するため、パスフレーズを設定してください。

[root@manage01 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): [Enter]
Enter passphrase (empty for no passphrase): [パスフレーズを入力]
Enter same passphrase again: [もう1度パスフレーズを入力]
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
~~~~~~~~~~~~~~~~~~
+-----------------+
[root@manage01 ~]#
							

15. ※※この工程は監視対象サーバーでの作業です※※
手順14で作成した運用サーバーのSSH公開鍵(~/.ssh/id_rsa.pub)の内容を、監視対象サーバーの~/.ssh/authorized_keysに追加します。

16. ※※本章のこの工程以降はすべて運用サーバーでの作業です※※
監視スクリプト(ssh_scale.py)で呼び出す設定ファイルをviで編集します。

[root@manage01 ~]# vi .idcfrc
---------------------------------------------------------------
[account]
host=[手順9で設定済み]
api_key=[手順9で設定済み]
secret_key=[手順9で設定済み]
   
[monitoring]
host=[監視対象VMの仮想マシン名(今回はscale01)]
user=root
private_key_path=/root/.ssh/id_rsa
pass_phrase=[パスフレーズ]
   
[launch_config]
serviceofferingid=[手順13で確認したServiceOffering ID]
templateid=[手順11で確認したテンプレートID]
zoneid=[手順10で確認したzone ID]

[scalling]
min_size=[オートスケール時の最小VM台数(ここでは2)]
max_size=[オートスケール時の最大VM台数(ここでは4)]
load_balancer=[手順12で確認したLoad Balancer Rule ID]
   
[scalling_policy_out]
threshold=[スケールアウトを開始するLoad Average(ここでは2)]
   
[scalling_policy_in]
threshold=[スケールインを開始するLoad Average(ここでは1)]
---------------------------------------------------------------
[root@manage01 ~]#
							

17. 実際にssh_scale.pyを実行してテストします。
現在はscale01のみがロードバランサー配下で稼働していますが、手順16でmin_sizeを2に指定しているため、1台追加されます。
クラウドコンソールの仮想マシン一覧にて「E3VM-」※から始まる仮想マシンが1台追加されていること、IPアドレス名「scale」のロードバランサールールの仮想マシンにも仮想マシンが1台追加されていることを確認します。
※「E3VM-」の部分は、使用するリージョンによって異なります。

[root@manage01 ~]# /usr/bin/ssh_scale.py
2021-11-17 14:58:28 *** scale out check ***
2021-11-17 14:58:28 la_threshold_out : 2
2021-11-17 14:58:28 now_la           : 0
2021-11-17 14:58:28 now_vm_count     : 1
2021-11-17 14:58:28 vm count         : now 1, max 4
2021-11-17 14:58:28 scale out        : +1
2021-11-17 14:58:32 query job        : jobid: 08062817-7597-4a08-a1fd-c6f39d67e3c2, jobstatus: 0
2021-11-17 14:58:42 query job        : jobid: 08062817-7597-4a08-a1fd-c6f39d67e3c2, jobstatus: 0
2021-11-17 14:58:53 query job        : jobid: 08062817-7597-4a08-a1fd-c6f39d67e3c2, jobstatus: 0
2021-11-17 14:59:03 query job        : jobid: 08062817-7597-4a08-a1fd-c6f39d67e3c2, jobstatus: 0
2021-11-17 14:59:13 query job        : jobid: 08062817-7597-4a08-a1fd-c6f39d67e3c2, jobstatus: 0
2021-11-17 14:59:23 query job        : jobid: 08062817-7597-4a08-a1fd-c6f39d67e3c2, jobstatus: 1
2021-11-17 14:59:23 now vm count    : 2
2021-11-17 14:59:23 *** scale in check ***
2021-11-17 14:59:23 la_threshold_in  : 1
2021-11-17 14:59:23 now_la           : 0
2021-11-17 14:59:23 now_vm_count     : 2
[root@manage01 ~]#
							


18. 自動監視スクリプトを自動実行するために、運用サーバーのcronにて以下のとおり設定します。
ここでは直前に実行したスクリプトと重複しないよう3分ごとに実行する例です。

[root@manage01 ~]# (crontab -l; echo "*/3 * * * * /usr/bin/ssh_scale.py >> /var/log/ssh_scale.log 2>&1") | crontab -
no crontab for root(crontab登録がないときに出るメッセージ)
[root@manage01 ~]# crontab –l
*/3 * * * * /usr/bin/ssh_scale.py >> /var/log/ssh_scale.log 2>&1
[root@manage01 ~]#
							

以上で運用サーバーの設定は完了です。

3. スケールアウトのテスト

実際にスケールアウト・スケールインするか負荷をかけて動作確認を行います。
本章では、運用サーバー、監視対象サーバーそれぞれで作業を行いますので、作業対象の仮想マシンを間違えないようご注意ください。

1. ※※この工程は監視対象サーバーでの作業です※※
監視対象サーバーで負荷をかけるためにストレステストツールを導入します。

[root@scale01 ~]# yum -y install epel-release
 ~~~~~~~~~~
完了しました!
New leaves:
  epel-release.noarch
[root@scale01 ~]# yum -y install stress
~~~~~~~~~~
完了しました!
New leaves:
  stress.x86_64
[root@scale01 ~]#
							

2. ※※この工程は監視対象サーバーでの作業です※※
ストレステストツールを実行します。

[root@scale01 ~]# stress -c 4 > /dev/null &
[1] 3154 (pidのため、必ずしも同じにはなりません。)
[root@scale01 ~]#
							

3. ※※この工程は監視対象サーバーでの作業です※※
何回かwコマンドを実行してLoadAverageがしきい値(ここでは2)を超えることを確認します。

[root@scale01 ~]# w
 15:10:36 up  3:36,  1 user,  load average: 0.32, 0.08, 0.07
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
~~~~~~~~~~~~~
[root@scale01 ~]# w
 15:10:42 up  3:36,  1 user,  load average: 0.89, 0.21, 0.11
~~~~~~~~~~~~~
[root@scale01 ~]# w
 15:11:12 up  3:37,  1 user,  load average: 2.24, 0.60, 0.24
~~~~~~~~~~~~~
[root@scale01 ~]#
							

4. ※※この工程は運用サーバーでの作業です※※
tailコマンドでssh_scale.pyの実行ログを確認し、サーバーを増やす挙動があることを確認します。(出ていない場合は、1分程度待って再度実行します。)

[root@manage01 ~]# tail -f /var/log/ssh_scale.log
~~~~~~~~~~~~~
2021-11-17 15:12:06 query job        : jobid: c8991dcc-ab58-45d5-8746-a89e792bbc4a, jobstatus: 0
2021-11-17 15:12:17 query job        : jobid: c8991dcc-ab58-45d5-8746-a89e792bbc4a, jobstatus: 0
2021-11-17 15:12:27 query job        : jobid: c8991dcc-ab58-45d5-8746-a89e792bbc4a, jobstatus: 0
2021-11-17 15:12:37 query job        : jobid: c8991dcc-ab58-45d5-8746-a89e792bbc4a, jobstatus: 0
2021-11-17 15:12:47 query job        : jobid: c8991dcc-ab58-45d5-8746-a89e792bbc4a, jobstatus: 1
2021-11-17 15:12:47 now vm count    : 3
2021-11-17 15:12:48 *** scale in check ***
2021-11-17 15:12:48 la_threshold_in  : 1
2021-11-17 15:12:48 now_la           : 3
2021-11-17 15:12:48 now_vm_count     : 3
2021-11-17 15:13:03 *** scale out check ***
2021-11-17 15:13:03 la_threshold_out : 2
2021-11-17 15:13:03 now_la           : 3
2021-11-17 15:13:03 now_vm_count     : 3
2021-11-17 15:13:03 vm count         : now 3, max 4
2021-11-17 15:13:03 scale out        : +1
2021-11-17 15:13:06 query job        : jobid: 116d9b0d-e650-4027-b526-e67e4a672364, jobstatus: 0
2021-11-17 15:13:17 query job        : jobid: 116d9b0d-e650-4027-b526-e67e4a672364, jobstatus: 0
2021-11-17 15:13:27 query job        : jobid: 116d9b0d-e650-4027-b526-e67e4a672364, jobstatus: 0
2021-11-17 15:13:37 query job        : jobid: 116d9b0d-e650-4027-b526-e67e4a672364, jobstatus: 1
2021-11-17 15:13:37 now vm count    : 4
2021-11-17 15:13:38 *** scale in check ***
2021-11-17 15:13:38 la_threshold_in  : 1
2021-11-17 15:13:38 now_la           : 3
2021-11-17 15:13:38 now_vm_count     : 4
2021-11-17 15:14:04 *** scale out check ***
2021-11-17 15:14:04 la_threshold_out : 2
2021-11-17 15:14:04 now_la           : 3
2021-11-17 15:14:05 now_vm_count     : 4
~~~~~~~~~~~~~
							

5. クラウドコンソールの仮想マシン一覧にて、「E3VM-」から始まる仮想マシンが自動で追加されていることを確認します。


6. クラウドコンソールのIPアドレス名「scale」のロードバランサールールにて、「E3VM-」から始まる仮想マシンが自動で追加されていることを確認します。


7. ※※この工程は監視対象サーバーでの作業です※※
ストレステストツールを終了して負荷を下げます。

[root@scale01 ~]# killall stress
[1]+  終了しました  	stress -c 4 > /dev/null
[root@scale01 ~]#
							

8. ※※この工程は監視対象サーバーでの作業です※※
数分置いてからwコマンドを実行してLoadAverageがしきい値(ここでは1)以下に下がったことを確認します。

[root@scale01 ~]# w
 15:31:56 up  3:57,  1 user,  load average: 0.53, 2.85, 2.74
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
~~~~~~~~~~~~~
[root@scale01 ~]# 
							

9. クラウドコンソールにて、スケールした「E3VM-」から始まる仮想マシンが自動で削除されていることを確認します。
2. 運用サーバーの作成とスクリプトの設定」の手順16で設定したmin_size:2に従い、2台の仮想マシンを残す動作となります。
(ステータスがDestroyedに変更後、15分後にクラウドコンソールの仮想マシン一覧から表示が削除されます)


10. クラウドコンソールのIPアドレス名「scale」のロードバランサールールにて、「E3VM-」から始まる仮想マシンが自動で削除されていることを確認します。
2. 運用サーバーの作成とスクリプトの設定」の手順16で設定したmin_size:2に従い、2台の仮想マシンを残す動作となります。


11. ※※この工程は運用サーバーでの作業です※※
tailコマンドでssh_scale.pyの実行ログを確認し、正常に稼働していることを確認します。
実行時間が1分間の間に発生していて、now_vm_countが設定したmin_sizeと同じことを確認します。

[root@manage01 ~]# tail -f /var/log/ssh_scale.log
~~~~~~~~~~~~~
2021-11-17 15:32:01 *** scale out check ***
2021-11-17 15:32:01 la_threshold_out : 2
2021-11-17 15:32:01 now_la           : 0
2021-11-17 15:32:01 now_vm_count     : 4
2021-11-17 15:32:01 *** scale in check ***
2021-11-17 15:32:01 la_threshold_in  : 1
2021-11-17 15:32:01 now_la           : 0
2021-11-17 15:32:01 now_vm_count     : 4
2021-11-17 15:32:01 vm count         : now 4, min 2
2021-11-17 15:32:01 scale in         : -1
2021-11-17 15:32:02 vm destorying    : 860bb3da-c0de-4d51-93fa-e50eddaece20
2021-11-17 15:33:01 *** scale out check ***
2021-11-17 15:33:01 la_threshold_out : 2
2021-11-17 15:33:01 now_la           : 0
2021-11-17 15:33:01 now_vm_count     : 3
2021-11-17 15:33:01 *** scale in check ***
2021-11-17 15:33:01 la_threshold_in  : 1
2021-11-17 15:33:01 now_la           : 0
2021-11-17 15:33:01 now_vm_count     : 3
2021-11-17 15:33:01 vm count         : now 3, min 2
2021-11-17 15:33:01 scale in         : -1
2021-11-17 15:33:01 vm destorying    : 0e85545d-b771-4bab-a605-bf1dc3a57b60
2021-11-17 15:34:02 *** scale out check ***
2021-11-17 15:34:02 la_threshold_out : 2
2021-11-17 15:34:02 now_la           : 0
2021-11-17 15:34:02 now_vm_count     : 2
2021-11-17 15:34:02 *** scale in check ***
2021-11-17 15:34:02 la_threshold_in  : 1
2021-11-17 15:34:02 now_la           : 0
2021-11-17 15:34:02 now_vm_count     : 2
~~~~~~~~~~~~~
							

以上、実際に負荷をかけて、スケールアウト・スケールインの動作を確認しました。

本マニュアルでは、説明をシンプルにするため、パブリックIPアドレスを新規取得してロードバランサーの設定を行いましたが、ゾーンにデフォルトで払い出されるパブリックIPアドレスでも実行可能です。

オートスケールの機能を使うことにより夜間休日問わず、不測の急激なアクセスに対応し、Webサーバーのレスポンス速度を負荷分散によって平準化したり、耐障害性を高めることが自動でできるようになります。
今回はIDCフロンティアにて用意をしたサンプルスクリプトにて動作確認を行いましたが、APIは公開しておりますので同じ仕組みで自作スクリプトを作成し、自由に柔軟なスケーリングを構築することもできます。
また、APIを利用するIPアドレスを制限する「API IPアドレス制限」機能も提供していますので、あわせてご利用をご検討ください。

関連情報

このページの先頭へ このページの先頭へ