2014年10月16日木曜日

vagrant-awsを使ってみた

はじめまして、竹内佑介と申します。

普段はA-AUTO 50の開発をやっていて、C++に触れる機会が多いです。また、個人的にはhtml5とかnode.jsに興味があって、趣味で対戦型オンラインゲームを作っています。


そもそもvagrantとは?

vagrantとはVagrantfileと呼ばれる設定ファイルから、同じVM環境を何個でも作れるツールです。そんなことは全員で同じVMイ メージを共有すればVMWarePlayerだけでも出来るだろう、と思われるかもしれません。しかし、同じVMイメージから環境を複数を立ち上げる場合 はどうでしょうか。この時にとるべき戦略は、

(1)VMイメージをコピーして個別に立ち上げる
(2)スナップショットを沢山作る

の2つになると思います。(1)の方法は単純にコピーの時間がかかり、(2)では環境が増えてくるとスナップショットの管理が大変になります。でもvagrantを使えば、

vagrant box add VM名 VMが存在するURL

というコマンドでVMの元ネタを登録して、

vagrant init VM名  #VM初期化。この時に自動的にVagrantfileが作られる
vagrant up                   #VMの起動

とやるだけで何個でも同じ環境が作れます。また、Vagrantfileの設定さえ変えれば、VMWare、VirtuakBox、AWSでも同じコマンドでVM環境を構築することができます。


環境構築

作業用PCに、以下のものをインストールして下さい。ちなみに、筆者はAWS上のWindows Server 2012で作業をしました。
  • vagrant
  • git bash
上記2つのインストールが完了したら、git bashを開いて下さい。以下コマンドでvagrant-awsをインストールします。

vagrant plugin install vagrant-aws

次にvagrant-aws用のダミーボックスをダウンロードします。

vagrant box add dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box

これで準備は完了です。

Vagrantfileを書こう


次にVagrantfileを書きます。このサイトを参考にしつつ、以下のようにVagrntfileを作りました。

AWSにインスタンスを作ろう

Vagrantfileがあるフォルダに、AWSのキーファイル(.pem)を置いたらgit bashを開きます。git bash上でVagrantfileがある階層に移動して、

vagrant up –provider=aws    #AWSインスタンスを起動

と入力して下さい。これだけで、AWSにインスタンスが立ち上がります。他にも以下のようなコマンドで、簡単にAWSインスタンスを操作することができます。

vagrant ssh                #AWSインスタンスへログイン
vagrnt halt                 #AWSインスタンスを停止
vagrant destroy     #AWSインスタンスを破棄

次回予告


vagrantはcheffと連携をして、MongoDBやnode.jsなどのミドルウェアを自動的に導入することもできます。次はvagrantとcheffの連携を中心に攻めてみます。次回の更新予定は2014/11/5です。

0 件のコメント:

コメントを投稿