Hinemos VM・クラウド管理機能を利用してAWS・VMwareなどのリソース制御を行ってみる

 こんにちは!

 今回は記事のタイトルにもある通り、Hinemos VM・クラウド管理機能を利用してAWS・VMareなどのVMやクラウド上にあるインスタンスなどのリソース制御を行ってみようと思います。
※Hinemos VM・クラウド管理機能はサブスクリプションにて提供される有償機能となります。

 設定の内容としては、まず

リソース制御を行うための判断基準となる監視設定(リソース監視や課金監視など)を作成
     ↓

クラウドサービス上のマシンを制御(停止、サスペンドなど)するジョブを作成
     ↓
Hinemosの各種監視設定に「ジョブ通知」を設定し、監視結果によって前述のジョブが実行されるよう設定を紐づける

上記のような流れでリソース制御を行う仕組みをつくります。
 では、早速リソース制御を行うための作成をHinemosで作成してみます!

1. ジョブを実行される判断基準になる監視設定を作成する

 まずは、リソースを制御するためのジョブを実行するトリガーとなる監視設定を作成します。
今回はリソース監視を使用し、監視対象に指定しているAWS上のインスタンスの「CPU使用率」が80%以上になった場合にインスタンスが停止されるような設定を作成します。

CPU使用率が0~30%未満のときに情報、30~80%未満のときに警告通知が出力されるよう設定したので、使用率が80%以上になると危険通知が出力される想定です。

2. クラウド、VM上のインスタンスを制御するためのジョブを作成する

 監視設定の作成が完了したら、次はインスタンス制御(今回の場合はインスタンスの停止)を行うためのジョブを作成していきます。

まず、HinemosクライアントからHinemosマネージャへ接続を行い、「クラウド[コンピュート]」パースペクティブを表示、「クラウド[構成ツリー]」からジョブの実行対象としたいインスタンスを選択します。
※クラウド[コンピュート]にインスタンスを表示させるためには、別途クラウドサービスの登録が必要となります。詳しい設定方法については、HinemosVM・クラウド管理オプションの各マニュアルをご確認ください。

実行対象のインスタンスを選択した後は、パワーオフ/パワーオンを選択、「すぐに実行」、「ジョブ(ノード指定)の作成」、「ジョブ(スコープ指定)の作成」が表示されるので、「ジョブ(ノード指定)の作成」、「ジョブ(スコープ指定)の作成」のいずれかを選択してください。
今回はスコープではなくノード(インスタンス)単体を指定するため、「ジョブ(ノード指定)の作成」を選択しています。

 ジョブの作成ボタンを選択すると、次に「ジョブネットの指定」を行うためのダイアログが表示されるので、ジョブを作成したいジョブユニット、ないしはジョブネットを選択し、「Next >」をクリックします。
※ジョブユニット、ジョブネットはこのダイアログでは作成ができないので、予め「ジョブ設定」ダイアログから作成を行ってください。

今回はAWS上のインスタンスを制御するため、ジョブユニットには「AWSリソース制御ジョブユニット」と名前をつけました

 ジョブユニット/ジョブネットを選択し次へ進むと、「ジョブID」「ジョブ名」の設定画面に移ります。
ジョブIDとジョブ名についてはデフォルトで設定されていますが、変更したい場合はこの画面で変更を行います。

ジョブIDとジョブ名を設定後、「Finish」をクリックしたら、ジョブの設定が完了です。
ジョブの設定完了後、「ジョブ設定[一覧]」ビューに遷移するので、作成したジョブが一覧に存在することを確認します。

3. 2.で作成したジョブをジョブ通知として登録する

 次は、2.で作成したジョブを1.で作成した監視設定と紐づけるため、「ジョブ通知」の設定を行います。

 「監視設定」パースペクティブに移動後、「監視設定[通知]」ビューから通知の新規作成ボタンをクリックし、「通知設定」ダイアログから「ジョブ設定」を選択します。

 「通知(ジョブ)[作成・変更]ダイアログが表示されたら、通知ID(必須)などを設定します。
今回は、「監視対象のインスタンスのCPU使用率が1回でも80%以上になった場合、監視対象のノードを停止するジョブが実行される」ようジョブ通知を設定したいので、「重要度変化後の初回通知」は「同じ重要度の監視結果が1回以上連続した場合に初めて通知する」よう設定しました。

 また、今回はCPU使用率が80%=監視結果が「危険」と判断された場合に動作させたいので、重要度の「危険」にチェックを入れ、参照ボタンから2.で作成したインスタンス停止ジョブを指定します。

 

ジョブの参照は右から二番目の「参照」ボタンからおこなうことができます

 これでジョブ通知の設定は完了です。

4. ジョブ通知を1.で作成した監視設定に紐づける

 最後に、3.で作成したジョブ通知をトリガーとしたい監視設定に紐づけていきます。

監視設定[一覧]ビューに遷移し、1.で作成した監視設定を選択、監視設定の編集を行います。

 監視設定(今回の場合はリソース)[作成・変更]ダイアログの通知設定欄にある「選択」ボタンをクリックし、通知一覧を表示します。

通知[一覧]から3.で作成したジョブ通知を選択、追加することで監視設定の通知に追加することができます。

 これで設定は完了です。
では、実際に監視設定をもとにインスタンスが停止できるかどうか、確かめてみましょう!

5. 監視の結果をもとにジョブを実行、リソースの制御を行う

 今回は、監視対象のCPU使用率が高騰した場合を想定して監視設定及びジョブを作成したため、意図的にCPU使用率に負荷をかけ、動作を確認してみます。

 CPUに対して負荷をかけるために以下のコマンドを実行します。

 コマンドを監視対象のインスタンスで実行して約1分後、CPU使用率が高騰し、危険と判断される80%まで上昇しました。
設定通りに監視とジョブが連動していれば、既にこの時点でジョブが実行されているはずです。

 ジョブの実行履歴を確認してみます。

 「実行契機情報」が「監視連動」、かつ契機となった監視設定IDが1.で作成した監視設定のものと一致しているため、問題なくジョブが実行されていることが確認できました!

 では、監視対象だったインスタンスは実際に停止しているのか、AWSのEC2インスタンス一覧から確認してみます。

 赤い枠で囲んだインスタンスが今回監視、及びジョブの実行対象となったインスタンスなのですが、「インスタンスの状態」が停止(stopped)状態になっていることが確認できます。

6. 最後に

 今回はCPU使用率の監視をもとにリソースの制御を行いましたが、他にも複数のマシンをスコープにまとめ、一括でリソース制御をおこなったり、AWS・Azureの場合は課金監視の結果をもとにリソース監視を行うことも可能です。

 では、今回はこの辺で失礼します!

 


ご意見やお問い合わせについて

この記事へのご意見やお問い合わせについては、こちら(お問い合わせフォーム)もしくは
Hinemos営業担当【hsd-sales@atomitech.jp】までご連絡ください。

※お問い合わせフォームからご連絡の場合には、お問い合わせ内容で「Hinemosについて」を選択し、
 本文の冒頭に「Hinemos研究日記_【タイトル名】」とご記載ください。
※メールアドレスへご連絡の場合には、件名を「Hinemos研究日記_【タイトル名】」でご連絡ください。