vagrantでaws ec2インスタンスを立ち上げる

Vagrant 1.1 で EC2 を vagrant up - naoyaのはてなダイアリー
こちらの記事を参考にvagrantでec2を立ち上げるのを試して見ました.

ですが色々引っかかったりして大変だったので,備忘録的に残します.

まずはVagrantのインストールですがこれは他のところでもいっぱいあるのでそちらに任せるとします.ぶっちゃけvirtualBoxVagrant公式に行って最新版落としてくればいいんですけど.

Vagrantはgemでも入れようとすれば入りますが古い上にもう公式がgemはやめろって言ってるらしいので公式からパッケージを落としてくればいいと思います.


まず上記URLを参考にpluginをインストールし,awsのためのdummy boxを設定します.

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

その後作業用ディレクトリに入ってinitします.

$ vagrant init

設定ファイルのVagrantfileをいじります.

$ emacs Vagrantfile

そしてこんな感じに編集しました.

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "dummy"

  config.vm.provider :aws do |aws, override|
    aws.access_key_id     = #EC2の権限を持ったAccessKey
    aws.secret_access_key = #EC2の権限を持ったSecretAccessKey
    aws.keypair_name = "mot-ec2"
    aws.instance_type = "t1.micro"
    aws.region = "ap-northeast-1"
    aws.ami = "ami-39b23d38"
    aws.security_groups = [ 'vagrant' ]

    override.ssh.username = "ec2-user"
    override.ssh.private_key_path = "~/.ssh/mot-ec2.pem"
  end
end

参考URLの時からVagrantがアップデートしたりしています.そのおかげで少しオプションが変わっています.

aws.amiには使用するAMIを設定します.ここではAmazonLinux(64bit)のAMIを指定しています.
参考URLの時のAMIが現在存在しなかったのでそこで引っかかったりしてました.

aws.security_groupsで指定しているvagrantセキュリティグループはsshのみを許可したセキュリティグループです.sshを許可しないと色々残念になります.それ以外のポートなどは適宜セキュリティグループを修正してください.

ここまで設定すればだいたい終わりです.

$ vagrant up      # インスタンスが立ち上がる
$ vagrant ssh     # インスタンスにssh
$ vagrant destroy # インスタンスをterminate

僕自身まだAWSとかVagrantとか全然詳しくなくて勉強しながらやってますが,楽しいですね.
こうやってサーバをすぐ調達できるのは面白いなぁ.


これからはChef-soloとかも使ってサーバ構築して潰す生活をしたいと思います.
破壊なくして創造はなし