OpenStackCeilometer+Heatを使ったオートスケール(第2回)Heat-templateの解説
前回はオートスケールって何?とオートスケールを考慮した設計についてお話しました。今回から本題に入りたいと思います。Heat-Templateの書き方です
テクノロジーコラム
- 2016年02月15日公開
前回はオートスケールって何?とオートスケールを考慮した設計についてお話しました。
今回から本題に入りたいと思います。
4部構成となっています。
オートスケールを考慮したHeat-Templateの書き方。
使用可能なHeat-Templateの種類
使用可能なテンプレート形式は、
Heat Orchestration Template (HOT)
CloudFormation-compatible format (CFN)
の2種類です。今回はHOTの方を例にとり解説していきます。
コミュニティからもいろいろなheat-templateが公開されているので参考になるかと思います。
今回紹介するテンプレート例はコミュニティのHeat-templateを元にしています。
参考:https://github.com/openstack/heat-templates
Heat-Templateの書き方
オートスケールに必要な要素は3個
1) AutoScalingGroup
何をスケールアウトさせるか。
2) ScalingPolicy
スケールアウトするときのルールを定義します。
1回のアラートで何個増やすかなど。
3) Alarm
リソース監視を定義
閾値超えたらアラームを上げ、そのアラームがScalingPolicyに拾われるようにします。
まずはHeat-Templateの全体像について解説します。
Heat共通の項目については省略します。
「図 3 VMが1個増えるだけ」を例にとると、テンプレート内の要素はこんな形になっています。
図 8 VMだけオートスケールするテンプレート
Metadataの設定を忘れると、監視されないためオートスケールが発動されません。
2) このIDがmetadataに入ったVMを監視します。と定義する。
1) と対をなす設定です。
3) 監視設定にHitしたらScalingPolicyを呼び出す。
4) オートスケール実行。リソースを増減させます。
Horizonから、オーケストレーションのリソース種別を見ると詳しい書き方が載っています。
これを参考にしながら解説していきます。
図 9 Heat リソース種別
OS::Heat::AutoScalingGroup
まずは「図 8 VMだけオートスケールするテンプレート」の上から解説していきます。
AutoScalingGroupは" OS::Heat::AutoScalingGroup"です。これを開くと書き方の解説が出てきます。
この中に書かれているもの全てを使う必要は無いです。必須なものと必要なものを選んで使ってください。
Resourceで別のheat-templateを呼び出すことが出来るので、スケールアウトする対象が複雑な構成であれば、別ファイルにしたほう可読性が上がります。
最低限↓の項目があれば十分です。
min_size |
最低リソース数 |
max_size |
最大リソース数 |
Resource |
スケールアウトさせるリソース |
desired_capacity |
維持しておきたいリソース数 |
図 10 AutoScalingGroup 説明欄
OS::Heat::ScalingPolicy
同じようにHorizonからリソース種別の詳細を見ると、解説が書かれていますが、
ここではおまじないのようなものだと思って使いまわしてください。
一応変更するパラメータだけ解説します。
Cooldown |
更新間隔 |
scaling_adjustment |
何個スケールさせるか。 |
OS::Ceilometer::Alarm
最後に、Ceilometerの監視設定になります。
オートスケールを発動させるための監視設定を定義します。
Description |
設定の名前 |
meter_name |
Ceilometer meter-listに出てくる監視アイテム。 |
Statistic |
統計値として何を使うか。 |
Period |
更新間隔 |
evaluation_periods |
統計間隔(分) |
Threshold |
閾値 |
comparison_operator |
比較演算子 |
alarm_actions |
どのアクションを実行するか |
さいごに
Heat-Templateの基本的な書き方は以上です。どんなに複雑な構成になろうとも、基本はこれらを組み合わせることで対応可能できます。
コミュニティからもいろいろなHeat-Template例が出ていますので参考になるかと思います。
次回はオートスケールを実際に動かしてみます。
4部構成となっています。
NTTソフトウェア株式会社