この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
Gruntでec2を操作する
aws-cliとは、コマンドラインからAWSを操作することができるツールです。 これを使用すると、ちょっとしたAWS作業を簡単に行ったり自動化したりできます。 今回はこのaws-cliと連携してGruntでec2を操作するためのGruntプラグインを紹介します。
環境構築方法
今回使用した動作環境は以下のとおりです。
- OS : MacOS X 10.9
- Node.js : v0.10.21
セットアップ
Gruntが入ってない場合はgrunt-cliをインストールします。 また、aws-cliも必要なのでpipでインストールしておきましょう。
% npm install -g grunt-cli(Gruntをインストールしてなければ)
% mkdir my-grunt-ec2 && cd my-grunt-ec2
% npm install
% npm install --save-dev grunt-ec2
% sudo easy_install pip(pipをインストールしてなければ)
% sudo pip install awscli --upgrade(aws-cliをインストールしてなければ)
次に、aws.jsonという名前でAWSの認証情報を記述したファイルを作成しておきます。
{
"AWS_ACCESS_KEY_ID": "<アクセスキー>",
"AWS_SECRET_ACCESS_KEY": "<シークレットキー>",
"AWS_SECURITY_GROUP": "<セキュリティグループ>",
"AWS_DEFAULT_REGION":"<リージョン >"
}
そして、Gruntfile.jsを次のように記述しましょう。
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
ec2: 'aws.json'
});
grunt.loadNpmTasks('grunt-ec2');
};
上記Gruntfile.jsを記述したら、gruntコマンドを実行してみましょう。 下記のようにec2_list:allコマンドを実行すると、ec2インスタンス情報が表示されます。
% grunt ec2_list:all
{
"Reservations": [
{
"OwnerId": "xxxxxxx",
"ReservationId": "r-xxxxxxx",
"Groups": [],
"Instances": [
{
"Monitoring": {
"State": "disabled"
・
・
このように、grunt-ec2ではここにあるようにConfigurationとTaskを組み合わせて実行します。 Taskはec2の起動/シャットダウンやpm2関連の動作、nginx関連の動作を行うこともできます。 多数のTaskが用意されているので、確認してみてください。