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

テクノロジーコラム

OpenStackCeilometer+Heatを使ったオートスケール(第4回)応用編、LB配下でVMがスケールアウト

OpenStackのオートスケールを実用的に使います。仮想LoadBarancer配下でVMをスケールアウトさせることができると、VMの負荷が高まった際に仮想LoadBarancer配下他のVMへ負荷分散させられます。負荷分散が必要なときだけ台数が増えるので、平常時のランニングコストを減らすことができます。

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

テーマは「仮想Load Balancer配下でVMを増やす」


今回はOpenStackのオートスケールをもう少し実用的に使ってみたいと思います。
仮想LoadBarancer配下でVMをスケールアウトさせることができると、
VMの負荷が高まった際に仮想LoadBarancer配下他のVMへ、負荷分散をさせることができるようになります。
負荷分散が必要なときだけ台数が増えるので、平常時のランニングコストを減らすことができます。

やりたいことを簡単に図解するとこんな感じです。

まずはHeat-Templateを用意します。
OpenStackのheat-template内にあるコードを使いますのでダウンロードしてください。
https://github.com/openstack/heat-templates/blob/master/hot/autoscaling.yaml
https://github.com/openstack/heat-templates/blob/master/hot/lb_server.yaml


Heatの動かし方は、第三回の説明を参照ください
ただし今回は[autoscale_env.yml]に必要な変数が増えていますので注意してください。
参考までに今回必要な変数を記載しておきます。

[autoscale_env.yml]

parameters:

image: d8fd4061-3c57-4204-86c7-bf8c4b476b21

key: ceilo_key

flavor: m1.tiny

database_flavor: m1.tiny

network: 108380e3-6ad1-4008-987c-471ab514ce3d

subnet_id: 2e476e0d-50ee-45b4-947f-055119bcc0de

external_network_id: 9b15e507-004e-41eb-b209-752337684621

第二回同様にテンプレート解説です。

Heat-Templateを元に解説していきます。


(1) 仮想Load Balancer配下にVMを増やしたいので、まずは仮想Load Balancerを作ります。
(2) Ceilometerでの監視設定を作ります。ここの詳細は第2回と同じですので、そちらをご確認ください。
(3) LB配下でスケールイン、スケールアウトするVMは、ここから呼ばれる"lb_server.yml"で設定します。
   Propertiesで仮想Load Balancerのpool_idを渡します。
(4) 仮想Load Balancer配下に追加したいVMを作ります。この段階ではまだ仮想Load Balancerには組み込まれていないです。
(5) 受け取ったpool_idを利用して、VMを仮想Load Balancerに繋げます。
(6) Heat実行後、仮想マシンに負荷をかけると、仮想Load Balancer配下でVMがスケールアウトします。

実際に動かしてみると、負荷をかける前と後でVMが増えていることが分かると思います。

図 17 オートスケール前のインスタンス状態

図 18 オートスケール後のインスタンス状態

ちゃんと仮想Load Balancerにも組み込まれていますね。

図 19 オートスケール前のLBの状態

図 20 オートスケール後のLBの状態

LB配下でVMをオートスケールさせる方法も簡単にできました。

さいごに

Ceilometer + Heatでのオートスケールは以上です。

オートスケールを考慮したアプリケーションの設計概念、Heat-templateの書き方、実行方法について4週にわたって連載してきましたが如何だったでしょうか。
オートスケールはクラウドネイティブなアプリケーション開発に無くてはならないものなので、OpenStackやAWSを扱うのであれば押さえておきたいスキルです。

NTTソフトウェアではOpenStackを構築するだけでなく、実際に自分たちで使っているからこそ分かる知見やノウハウも蓄え続けているので、皆様がお困りの際にはきっとお手伝いできると思います。
もしもOpenStackに関するお困りごとがございましたら、お気軽にお問い合わせ頂けると幸いです。

4部構成となっています。
第一回:オートスケールって何?
第二回:Heat-templateの解説
第三回:実際にオートスケールを動かしてみる。
第四回:応用編、LB配下でVMがスケールアウト
連載シリーズ
テクノロジーコラム
著者プロフィール
深津 颯騎
NTTソフトウェア株式会社
クラウドセキュリティ事業部
クラウド事業ユニット深津 颯騎