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

スケジュールオートスケール(負荷分散構成)


要求事項

繁忙期に仮想サーバの増設が必要と見込まれている場合に、あらかじめ仮想サーバ増設を行っておきたい、といった要求事項に対するパターンです。



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

業務の繁忙期など、負荷増大があらかじめ予測できる場合には、オートスケールの機能に含まれるオートスケールスケジューラー機能を利用することでスケールアウト運用を自動化することが可能です。



構造 (イメージ図)



実装サンプル

1.オートスケールの設定



2.スケジュールの登録(API)

  • 設定項目(REST API)
項目
内容
$NAMEオートスケールのスケジュール名(任意)
(重要:リージョン内の全プロジェクトで一意である必要があります。)
$METHOD"POST"で固定
  • 設定項目(http header)
項目
内容
$EPオーケストレーションのエンドポイントhttp版(sなし)
$PROJECT_IDスケジュール処理を実行するプロジェクトID
$STACK_NAMEオートスケールのHeatテンプレートのスタック名
$STACK_IDオートスケールのHeatテンプレートのスタックID
$RESOURCE_NAMEHeatテンプレートに記載のオートスケールポリシーの名前
$URL$EP/v1/$PROJECT_ID/stacks/$STACK_NAME/$STACK_ID/resources/$RESOURCE_NAME/signal
実行日時起動時刻は「"time" : "* * * * *"」をcronの指定方法と同様に変更して調整可能(UTCで指定する)
  • 実行API(例:スケジュールを毎月1日 15:00に調整)

curl -i $AUTOSCALE/autoscale_schedulers -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"name" : "'$NAME'" ,"time" : "0 15 1 * *","method" : "'$METHOD'","url" : "'$URL'","project_id" : "'$PROJECT_ID'"}'



3.スケジュールリストの参照(API)

  • 実行API

curl -s $AUTOSCALE/autoscale_schedulers -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq .



4.スケジュールの削除(API)

  • 設定項目(REST API)
項目
内容
$NAMEオートスケールのスケジュール名
  • 実行API

curl -i $AUTOSCALE/autoscale_schedulers/$NAME -X DELETE -H "X-Auth-Token: $OS_AUTH_TOKEN"



メリット・効果

オートスケールスケジューラ機能を利用した場合のメリット・効果は以下の通りです。

  • 業務の繁忙期など、事前に予測できる負荷増大に対するスケールアウト運用の自動化

  • 仮想サーバ群の自動拡張・縮小によるリソースの最適化と運用コスト抑制

  • 負荷分散とオートスケールによる拡張性向上

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



注意事項

  • 事前にオートスケールポリシーを有するスタックを作成してください。
    スケジュール登録は対象のスタックを作成したユーザと同じユーザで登録してください。

  • WindowsやRHELのOSでは、OS利用料金は月額で課金されます。
    スケールアウト処理が発生すると、その都度新規にサーバを作成しますので、スケールアウト処理の回数分OSの料金が発生します。



その他

特にありません。



関連資料

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

(2018年2月検証)