Japan
サイト内の現在位置を表示しています。
JobCenterでAWSの野良インスタンスを管理
JobCenter Lab vol.2こんにちは。WebSAM JobCenter ブログ担当の荒尾です。
AWSを利用していると、いつの間にか所有者不明の野良インスタンスが増えてしまい、管理者がこれら野良インスタンスを停止や削除してよいのか、わからない状態になりがちです。
そこで、WebSAM JobCenterの「拡張カスタムジョブ部品」の中の「AWS連携部品」を利用した、野良インスタンスを管理する方法についてご紹介します。
インスタンス情報の取得を自動化する
いつの間にか野良インスタンスが増えている状況を防ぐには、所有者が不明(「所有者」タグが未設定)のインスタンスについて、定期的に管理するのが一番です。
これをWebSAM JobCenterを活用して実施します。
実現するためのポイントは以下の2つです。
実際の手順は以下になります。
1.AWS連携部品でインスタンス情報取得のジョブ定義を作成
WebSAM JobCenterの「拡張カスタムジョブ部品」には、AWSの操作を自動化する「AWS連携部品」という部品があるので、これを利用してインスタンス情報取得を自動化します。
以下は、「所有者」タグが未設定のインスタンスを対象として、インスタンス情報を取得するジョブ定義例です。
ジョブ定義の作成は、以下のように、実行したい機能の部品をジョブフロー内に配置し、パラメータを設定します。


インスタンス情報取得に利用する拡張カスタムジョブ部品と、実現に必要な設定パラメータは以下になります。
- 格納パス
/Root/System/AmazonWebService/ElasticComputeCloud - Amazon Web Services 連携部品
定義名 機能 DescribeInstances インスタンス情報取得
- カスタムパラメータ設定タブ
変数 設定値 説明 noTag 所有者 タグ「所有者」が未設定のインスタンスを情報取得の対象とします endpoint エンドポイント名 APIリクエストする先のエンドポイント(必須) - 実行設定タブ
項目 設定値 説明 投入キュー カスタムジョブ用のキュー 予め作成した、カスタムジョブ専用のキューを指定します(必須)
2.スケジュールで自動運用
次にスケジュールによる自動運用です。
以下は、インスタンス情報取得のスケジュールの表示例です。
毎週月曜(休日の日は翌火曜日)にジョブ実行するスケジュール(「AWS情報取得」)と、インスタンス情報取得ジョブ定義(「管理_野良インスタンス通知」)を関連付けて、所有者タブが未設定のインスタンスの情報を自動取得します。

スケジュールされたジョブ定義例
上記のジョブ定義を実行すると、以下のような、所有者タブが未設定のインスタンスの情報が取得されます。

所有者タブが未設定のインスタンス情報の取得例
おわりに
作成したジョブ定義をスケジュールで自動実行することで、所有者不明の野良インスタンスの情報取得が自動化され、定期的に管理できるようになります。
また、「拡張カスタムジョブ部品」の「メール送信部品」を合わせて利用すると、取得したインスタンス情報をメールで受け取ることができます。
(「メール送信部品」については別の機会にご紹介します)