FUJITSU Cloud Service K5
IaaS 設計・構築ガイド(デザインパターン・実装サンプル集)

VM数維持パターン


要求事項

サービスの可用性や性能を考慮した構成の1つとして、稼働させておく仮想サーバを一定の台数で固定したいといった要求事項に対応するパターンです。



対応するK5デザインパターン概要

一般に、サーバは突如停止する可能性が 0 ではありません。
クラウドでも、設備等の物理的なトラブルや、トラフィック増による性能劣化など、 何らかの理由でサービス継続ができない場合があります。

そこで本パターンでは、K5で提供しているオートスケールの以下の機能を利用して、 稼働させておく仮想サーバを一定の台数で固定するパターンを記載します。

  • 仮想サーバに対するヘルスチェック機能
  • ヘルスチェック機能で異常を検知した仮想サーバへの自動復旧機能



構造 (イメージ図)

ヘルスチェック機能で検知した異常仮想サーバへの自動復旧機能の動作イメージ



実装サンプル

本パターンでは、「オートスケール(負荷分散構成)」 で使用したシングルAZ構成で、負荷分散かつオートスケールに対応した以下のサンプルについて記載します。



1.テンプレート設定内容

 (1) 本パターンのテンプレートの設定内容
   本パターンのテンプレートでは、以下の内容を設定します。

  • parameters セクション
    parameters セクションのパラメータ名は、任意に設定可能です。
パラメータ名
設定値
内容
az"jp-east-1b"AZを設定
subnet-id(IDを設定)仮想サーバやロードバランサーを配備する サブネットID を設定
param-image-id(IDを設定)仮想サーバの イメージID を設定
param-flavor"S-1"仮想サーバの フレーバー を設定
key-name"cdp_keypair2"仮想サーバにログインするための キーペア を設定
autoscale-security-group"SG_default", "SG_Web_Local", "SG_Maintenance"仮想サーバ用セキュリティグループを 名称 で設定
lb-security-group("SG_default","SG_LB_Local"の ID を設定)ロードバランサー用セキュリティグループを ID で設定
※ロードバランサー用のセキュリティグループは名称では設定できません
lb-name(任意の名称)ロードバランサー名 を設定

 (2) resources セクションの設定内容詳細
   オートスケールの基本的な設定を行うリソースと、アラーム設定とアラーム検知時の実行内容のリソースのペアの設定内容を記載します。

    - 基本的な設定を行うリソース
     web-server-group

   
    - ヘルスチェックで仮想サーバの異常を検知するアラーム設定と、アラーム検知時の実行内容
     elb_status_abnormal、web_server_recovery_policy


  (3-a) 基本的な設定を行うリソース

プロパティ
設定値
内容
AvailabilityZones{get_param: az}AZの設定を get_resource で参照
LaunchConfigurationName{get_resource: launch_config}仮想サーバの設定を get_resource で参照
MinSize"2"最小2台で設定
MaxSize"6"最大6台で設定
VPCZoneIdentifier{ get_param: subnet-id }仮想サーバを配備する サブネット を指定
HealthCheckGracePeriod"120"ロードバランサーによるヘルスチェックを 有効 に設定
HealthCheckType"ELB"ヘルスチェックは "ELB" で固定
Cooldown"750"次のスケール処理を行わない時間を 750秒(12分) で設定
LoadBalancerNames{get_resource: fj-elb}ロードバランサーの設定を get_resource で参照



  (3-d) ヘルスチェックで仮想サーバの異常を検知するアラーム設定と、アラーム検知時の実行内容

プロパティ
設定値
内容
meter_namefcx.loadbalancing.instance.unhealthyヘルスチェックのアラームを設定
statistic"min"統計種別:異常となった仮想サーバ数を数えるよう、"min"を指定
period"60"監視間隔を 60秒間 で設定
evaluation_periods"1"アラーム判定回数(しきい値超えの回数)を 1回 で設定
repeat_actionstrueアクション繰り返し※ヘルスチェック機能を使用する場合は"true"を指定
threshold"1"しきい値となる異常仮想サーバの数を指定、'1' なら、1台でも異常となればスケールアウト
alarm_actions{ get_attr: [web_server_recovery_policy, AlarmUrl]}しきい値超えと判定した際に行うアクション
matching_metadata{ 'resource_id': {get_param: lb-name}}メタデータ検索条件(監視対象を設定)
comparison_operator"ge"条件判定式で ge:以上 を設定

  • web_server_recovery_policy
    • 上記のリソースタイプ OS::Ceilometer::Alarm のリソース elb_status_abnormal でアラーム検知時に実行する内容を、
      このリソースに、リソースタイプ FCX::AutoScaling::ScalingPolicy で設定します
    • OS::Ceilometer::Alarm と FCX::AutoScaling::ScalingPolicy は、一対になるように設定します
プロパティ
設定値
内容
AdjustmentTypeChangeInCapacity仮想サーバの増減タイプ
"ChangeInCapacity" の場合、
"ScalingAdjustment" で指定した数を追加/削除する
AutoScalingGroupName{ get_resource: web-server-group }スケーリングポリシーを設定するスケーリンググループを get_resource で設定
ScalingAdjustment"1"仮想サーバの増減数 を、1台追加 で設定



メリット・効果

負荷分散機能、オートスケール機能を利用した場合のメリット・効果は以下の通りです。

  • 仮想サーバ復旧処理と仮想サーバ拡張処理の共通化による運用・保守性向上



注意事項



その他

特にありません。



関連資料

  • FUJITSU Cloud Service K5 マニュアル
    http://jp.fujitsu.com/solutions/cloud/k5/document/
    • サービスご紹介資料
    • IaaS 機能説明書
    • IaaS サービスポータルユーザーズガイド
    • IaaS APIユーザーズガイド
    • IaaS APIリファレンスマニュアル
    • IaaS HEATテンプレート解説書

(2018年2月検証)