Amazon 自動化
これらのコントロールプランファイルは、Amazon Web Services の使用を自動化するために使用可能なテンプレートです。ツールの使用方法は、Control Plan Editor(コントロールプランエディタ) を参照ください。目次
パッケージのダウンロード
Amazon Web Service インタフェースのためのコントロールプランのテンプレートを、ここからダウンロード してください。
EC2 テンプレート
下記のRubyテンプレートは、AWSへのコマンド実行にamazon-ec2 gemを使います。これらは、入力仕様からアクセスIDと秘密キーを入力パラメータとして取得します。AWS_describe_images
このサンプルはすべての使用可能イメージをリストします。リストを短くするために、オーナIDやイメージIDをパラメータとしてわたすことができます。AWS_describe_instances
このサンプルはこのアカウントのすべてインスタンスとそれらのステータスをリストします。追加アトリビュートがこのテンプレートを使って収集できます。AWS_run_instance
このサンプルはインスタンスをスタートします。イメージID、使用可能ゾーン、ユーザデータ、セキュリティグループおよび、キー名が起動パラメータとして入力仕様内で指定されます。AWS_reboot_instance
このサンプルはインスタンスをスリブートします。インスタンスIDが入力仕様テーブルで指定される必要があります。AWS_terminate_instance
このサンプルはインスタンスを終了します。インスタンスIDが入力仕様テーブルで指定される必要があります。S3テンプレート
下記のRubyテンプレートは、AWSへのコマンド実行に aws/s3 gem を使います。これらは、入力仕様からアクセスIDと秘密キーを入力パラメータとして取得します。S3_get_objects
このサンプルはバケット名内のオブジェクトを取得し、オブジェクト内容をプリントします。バケット名は、スクリプトの中で指定します。S3_store_objects
このサンプルはS3オブジェクト内のファイルのコンテンツを保存します。ファイル名とバケット名は、スクリプトの中で指定します。S3_list_objects
このサンプルはバケット名内のオブジェクトをリストします。バケット名は、スクリプトの中で指定します。S3_list_buckets
このサンプルはアカウント内のすべてのバケット名をリストします。プロセスのサンプル
自動スケーリング処理
- このサンプルについては、ここで説明しています。
- このコントロールプランは、ここからダウンロードしてください。(右クリックでファイル保存)
- コントロールプランのファイルSample_Scale_Up_1.xmlは上記のダウンロードパッケージファイルに含まれています。
- このサンプルをあなたのAWS環境に導入するには、下記の変更を実施する必要があります:
- AWS呼出が行われるプレース(イメージのリスト化、インスタンスの記述とリスト化、インスタンスの終了、インスタンスの実行)へのアクセスと秘密鍵を定義する。これらは、入力仕様テーブルかコードの中で定義できます。これを行うさまざまの方法については、データ構造 のセクションを参照してくさい。
- スケールアップやスケールダウンの判断するため Check_Capacity にロジックを追加します。これはどの監視システムをあなたが導入したかによって変わります。Tap In のクラウドサービスを使用場合、AWS インスタンスの使用率を監視のイベントを問い合わせるため、TapIn_Monitor の下のテンプレートを使うことができます。他の監視システムを保有している場合、そのシステムからステータスを取得する Java/Ruby コードを追加する必要があるでしょう。さらにご質問がございましたら support@tapinsystems.com へご連絡ください。
- 通知プレースを変更します。サンプルは、ステータスに基づいてTap In監視システムにイベントを送ります。Tap In監視システムを使用していない場合、これをあなたの監視システムに更新して置き換えできます。また、更新をあなたのeメールやツイッターアカウントに送るために通知サンプルを使用できます。
オペレータ通知リブート
このコントロールプランは、ここからダウンロード してください。(右クリックでファイル保存)このサンプルのコントロールプランは、どのユーザでも、そのままで使用できます。 プランが実行されるると、AWS証明書入力をうながされます。 定義済みインスタンスのリストとアトリビュートが一覧表示されます。ユーザはインスタンスを選び、そのインスタンスがリブートされます。このプランは下記を強調します:
- 証明書を取得するためオペレータダイアログボックスを使用
- データビューとオブジェクトを使用
- AWS コマンドとその応答により異なるパスを通る自動化
そのモデルの図は、以下のとおりです。
Get_Access_key ノードで下記のダイアログボックスが表示されます。
Get_Secret_Keyノードで下記のダイアログボックスが表示されます。
このデータはトークンのデータエンベロープの中に保存されます。 自動化スクリプトをオペレータダイアログなしで実行したい場合、下記で述べるように開始(Start)ノードのRubyスクリプトを使って、これらの証明書をデータエンベロープの中に保存する代替案があります。 その場合、Get_Access_KeyとGet_Secret_Keyノードを削除し、StartとGet_running_instances ノードを接続してください。
$myself.add "access_key_id","your_access_key_here" $myself.add "secret_access_key","your_secret_key_here"
List for Opsノードで、下記のデータビューが作成されます。 ここでインスタンスを選択できます。
testing = true
を "testing = false" とします。コマンドが発行された後、インスタンスのステータスをチェックして、インスタンスステータスが"running" に変わるのを確認します。 最後に、Tap In 監視システムにリブートが成功した旨のイベントを送ります。 このシナリオを、下図の実行済みプランで示します。
この時点以降に、そのインスタンスが"running"を返さなければ、監視システムにエラーイベントを送出します。
インスタンスが実行(running)した後、追加の監視チェックを実行することでこのプランを拡張することができます。たとえば、Webサーバをリブートした場合、リブートしたサーバのパブリックDNS名に対するhttpチェックを行うノードを追加できます。それが成功したら、リブートしたWebサーバが稼動していることの確認になります。