スタックの構築
対象リージョン:東日本第3/西日本第3
テンプレート(yaml形式)に定義されたリソース群を一括配備します。配備されたリソース一式は、スタックとして管理します。
テンプレートの詳細については、以下を参照してください。
- SNAT通信を行う場合、OS::Neutron::Routerの Optional Propertiesの value_specsパラメータに nuage_underlayを指定する必要があります。
-
東日本第3では、外部ゲートウェイ(external_gateway_info)パラメータを指定した場合、SNAT機能は有効です。
西日本第3では、デフォルトではSNAT機能が無効です。SNAT機能を有効にするには、external_gateway_infoパラメータ、および SNAT通信可否(nuage_underlay)パラメータの指定が必要です。nuage_underlayパラメータには、SNAT通信なしの場合は「off」、SNAT通信ありの場合は「snat」を指定してください。
設定例
test_router2:
type: OS::Neutron::Router
properties:
external_gateway_info: { network: "fip-net" }
name: test_router2
value_specs: { nuage_underlay: "snat" }
nuage_underlayパラメータの詳細については、APIリファレンス(東日本リージョン3/西日本リージョン3)の「API詳細(Routers)」を参照してください。
アラームを利用したオートスケール
アラームをトリガーとして実行されるオートスケールのスタック定義について説明します。
アラームのリソース種別には OS::AppFormix::Alarmを使用します。テンプレートに定義する項目は以下のとおりです。
項目 | 値 | 必須 |
---|---|---|
alarm_name | アラームの名前を指定する | ◯ |
alarm_metric |
アラームの監視項目を以下から指定する
|
◯ |
threshold | 監視項目に設定するしきい値(単位は監視項目に依存する)を指定する | ◯ |
aggregation_function |
監視項目の測定方法を以下から指定する
|
◯ |
comparison_function |
監視項目としきい値の比較方法を以下から指定する
|
◯ |
duration | しきい値との比較に使用する監視項目の値を計測する秒数を指定する | ◯ |
num_intervals | 監視項目の監視を実行する(監視項目の値を計測する)間隔を指定する | ◯ |
num_exception_intervals | アラームが有効になった場合、アラームを有効状態に設定し続ける間隔を指定する | ◯ |
project_id |
アラームを適用する仮想サーバのプロジェクトIDを指定する 注: project_idかaggregate_idのどちらか一方を必ず指定してください。
|
|
aggregate_id |
テンプレートで作成された仮想サーバを指定する 以下の値を固定で設定してください。 { GET_PARAM: "OS::STACK_ID" } 注: project_idかaggregate_idのどちらか一方を必ず指定してください。
|
|
notification_url |
アラームが有効になったことを通知する先のURLを指定する アラームをトリガーとしたオートスケールのためには、スケーリングポリシーのsignal_urlを設定する必要があります。 以下の値を固定で設定してください。 { get_attr: [scaleup_policy, signal_url] } |
◯ |
以下のテンプレートは、CPUの応答有無に基づいて仮想サーバの数をオートスケールします。
スタック定義の記述例:
description: Example auto scale group, policy and alarm
resources:
scaleup_group:
type: OS::Heat::AutoScalingGroup
properties:
cooldown: 60
desired_capacity: 1
min_size: 1
max_size: 3
resource:
type: OS::Nova::Server
properties:
key_name: sample_key
block_device_mapping_v2:
[{boot_index: '0', device_name: '/dev/vda', volume_size: 10, image: 'sample_images', delete_on_termination: true}]
flavor: S3-1
name: "test_vm"
networks:
- network : test-net
scaleup_policy:
type: OS::Heat::ScalingPolicy
properties:
adjustment_type: change_in_capacity
auto_scaling_group_id: {get_resource: scaleup_group}
cooldown: 60
scaling_adjustment: 1
alarm:
type: OS::AppFormix::Alarm
properties:
alarm_name: 'alarm_vm_cpu'
alarm_metric: 'cpu.usage'
aggregation_function: 'average'
comparison_function: 'above'
duration: 60
num_intervals: 1
num_exception_intervals: 1
threshold: 80
aggregate_id: { get_param: "OS::stack_id" }
notification_url: { get_attr: [scaleup_policy, signal_url] }
- スタックが配備されると、仮想サーバ(test_vm)が作成されます。
- アラーム(alarm_vm_cpu)は仮想サーバのCPU使用率(しきい値は80%)を監視します。
- アラームが有効の場合、scaleup_policyは60秒ごとに1台仮想サーバを追加します。
- Max_sizeに指定した値まで仮想サーバが追加されると、scaleup_policyは停止します。