情報畑でつかまえてロゴ
本サイトは NTTテクノロスが旬の IT をキーワードに
IT 部門が今知っておきたい最新テクノロジーに関する情報をお届けするサイトです

テクノロジーコラム

OpenStackCeilometer+Heatを使ったオートスケール(第3回)実際にオートスケールを動かしてみる

今回はVMがスケールアウトする例を実際に動かしてみます。設定ファイルはご自身の環境に合わせて値を修正してください。

4部構成となっています。
第一回:オートスケールって何?
第二回:Heat-templateの解説
第三回:実際にオートスケールを動かしてみる。
第四回:応用編、LB配下でVMがスケールアウト

前回まではテンプレートの解説でしたが、今回はVMがスケールアウトする例を実際に動かしてみます。

まずはお手元にテンプレートと設定ファイルを用意します。
それぞれ、autoscaling.yml , autoscaling_env.ymlとして保存してください。
設定ファイルはご自身の環境に合わせて値を修正してください。


[autoscaling.yml]

heat_template_version: 2013-05-23
description: AutoScaling Wordpress
parameters:
image:
type: string
description: Image used for servers
flavor:
type: string
description: flavor used by the web servers
resources:
asg:
type: OS::Heat::AutoScalingGroup
properties:
min_size: 1
max_size: 3
resource:
type: OS::Nova::Server
properties:
flavor: {get_param: flavor}
image: {get_param: image}
metadata: {"metering.stack": {get_param: "OS::stack_id"}}
vm_scaleup_policy:
type: OS::Heat::ScalingPolicy
properties:
adjustment_type: change_in_capacity
auto_scaling_group_id: {get_resource: asg}
cooldown: 60
scaling_adjustment: 1
vm_scaledown_policy:
type: OS::Heat::ScalingPolicy
properties:
adjustment_type: change_in_capacity
auto_scaling_group_id: {get_resource: asg}
cooldown: 60
scaling_adjustment: -1
vm_connectiuon_alarm_high:
type: OS::Ceilometer::Alarm
properties:
description: Scale-up if the average  cpu_util > 5 for 1 minute
meter_name: cpu_util
statistic: avg
period: 60
evaluation_periods: 1
threshold: 5
alarm_actions:
- {get_attr: [vm_scaleup_policy, alarm_url]}
matching_metadata: {'metadata.user_metadata.stack': {get_param: "OS::stack_id"}}
comparison_operator: gt
vm_connection_alarm_low:
type: OS::Ceilometer::Alarm
properties:
description: Scale-down if the average cpu_util < 2 for 1 minutes
meter_name: cpu_util
statistic: avg
period: 60
evaluation_periods: 1
threshold: 2
alarm_actions:
- {get_attr: [vm_scaledown_policy, alarm_url]}
matching_metadata: {'metadata.user_metadata.stack': {get_param: "OS::stack_id"}}
comparison_operator: lt


[autoscaling_env.yml]

parameters:
image: 1b9e63fc-95ba-4038-aff2-db3769ffea99
flavor: m1.tiny

Horizonにログインしてください。
Heatを実行する前はこのようは状態になっています。
外部ネットワークと内部ネットワークを仮想ルーターで繋いでいるだけのシンプルな構成です。
これに先ほどのheat-templateを実行すると、オレンジのNW上にVMができあがります。

図 11 オートスケール実行前の状態

Heatを操作する画面へ移動しましょう。

図 12 heatを操作する画面

スタックの起動から、テンプレートの選択画面を開きます。
テンプレートの指定方法を「ファイル」とし、先ほど保存したautoscaling.ymlを参照します。
環境設定の指定方法も「ファイル」とし、同様に先ほど保存したautoscaling_env.ymlを参照します。

図 13 テンプレートの選択画面

画面遷移したら、スタック名を入力し、ユーザー"<自分のユーザー名>"のパスワードを入力し、起動ボタンを押すと実行されます。

図 14 スタックの起動

しばらく待つと、VMが出来ていると思います。

図 15 スタックの起動後

VMにログインして負荷をかけてみます。
下記のコマンドを実行すると、CPU使用率が90%超えます。

$ yes > /dev/null &

しばらく待つと、ceilometerがVMのCPU過負荷を検知してVMが増えました。
オートスケール成功です。

図 16 オートスケール実行後の状態

さいごに


実際に動かしてみて如何だったでしょうか。
基本的にはこの通りにやれば、OpenStackでオートスケールさせることができるようになります。
次回はもう少し実用的なオートスケールの例として、LB配下にVMが増えていく方法を紹介します。
OpenStack®はOpenStack, LLCの登録商標又は商標です。
4部構成となっています。
第一回:オートスケールって何?
第二回:Heat-templateの解説
第三回:実際にオートスケールを動かしてみる。
第四回:応用編、LB配下でVMがスケールアウト
連載シリーズ
テクノロジーコラム
著者プロフィール
深津 颯騎
NTTソフトウェア株式会社
クラウドセキュリティ事業部
クラウド事業ユニット深津 颯騎