AWSについては、vagrant-aws というプラグインを導入することで、vagrantからaws instanceの立ち上げ〜廃棄を行うことができます。
◯install
vagrantについては以下のサイトなどから適当に(1.1以上必須)。
http://www.vagrantup.com/
vagrant-awsについては以下のコマンドで追加できます。
◯init$ vagrant plugin install vagrant-aws $ vagrant plugin list vagrant-aws (0.1.2)
まず"vagrant init"によってVagrantfileのひな形を作成します。$ vagrant init
ここではawsのインスタンスを立ち上げる事を目標としているので、Vagrantfileをaws向けの設定に書き換えます。
vgrant-awsのREADMEを引用すると以下のような書式になります。
まず 、"Vagrant.configure("2")"はおまじないみたいなもので、vagrantの1.1を使用する、という宣言です。Vagrant.configure("2") do |config| config.vm.box = "dummy" config.vm.provider :aws do |aws| aws.access_key_id = "YOUR KEY" aws.secret_access_key = "YOUR SECRET KEY" aws.keypair_name = "KEYPAIR NAME" aws.ssh_private_key_path = "PATH TO YOUR PRIVATE KEY" aws.ami = "ami-7747d01e" aws.ssh_username = "ubuntu" end end
続いて、config.vm.boxで使用するboxを指定します。awsの場合、ec2側で登録されているamiを使用する形になるので、本来はこの設定は不要です。ただ、vagrant的には値の設定が必要なようなので、dummyのboxを指定します。
なおdummyのboxはvagrant-awsのgit上に用意されているので、あらかじめvagrantにaddしておきましょう。
aws provider周りの設定については、それぞれの項目に応じて設定します。あらかじめaccess keyやsecret access keyなどの値を控えておきましょう。vagrant box add dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box
詳細な項目についてはvagrant-awsのREADMEの”Configuration"の項を参照ください。
https://github.com/mitchellh/vagrant-aws
なお、security group についてはssh portが空いているものを設定する必要があります。sshが接続できないとvagrantからコントロールすることが出来ず、インスタンスだけ立ち上がるけれどvagrant側はエラーになりdestroyできなくなる、という状況に陥ります。
※ 設定で嵌りそうな点についてはこの辺のブログなどを参照してください。
http://d.hatena.ne.jp/naoya/20130315/1363340698
◯operation
ひと通り設定が終わったら、vagrant upを実行します。provider情報として"aws"を指定する必要があります。
ec2のインスタンスが立ち上がったら、Virtual Boxの時と同じようにssh接続することができます。$ vagrant up --provider=aws
使用が終わったら、destroyをすると立ち上げたインスタンスがterminateされます。$ vagrant ssh
なお、私が試した環境では、"vagrant halt"が上手く動作しませんでした。イメージ的にはインスタンスがstopされて欲しいのですが…$ vagrant destroy
◯所感
vagrant経由で簡単にawsをハンドリングする事ができるので、手軽にec2のインスタンスを立ち上げ、アプリケーションや構成管理ツール(chefなど)の動作確認を行うには非常に便利なツールだと思います。
ただ、ユースケースとしては、あくまで検証向きだと思います。本番環境の複数台のサーバーに対してvagrantで管理する、というイメージがあまり持てないので、検証領域での使用に留めるのが妥当かなと思っています。
0 件のコメント:
コメントを投稿