参考
有難うございます。
事前の準備
- IAM ユーザーを作成し Managed Policy の AmazonEC2FullAccess をアタッチしておく
- IAM ユーザーのアクセスキーID を確認しておく
- IAM ユーザーのシークレットアクセスキーを確認しておく
- SSH key にて鍵を発行しておく
- セキュリティグループの ID を確認しておく
- VPC のサブネット ID を確認しておく
- Vagrant の導入、vagrant-aws の導入
本記事の環境について
vagrant を実行する環境
ProductName: Mac OS X ProductVersion: 10.11.4 BuildVersion: 15E49a
vagrant のバージョン
Installed Version: 1.8.1 Latest Version: 1.8.1
vagrant-aws の導入
vagrant plugin install vagrant-aws
Vagrantfile の作成
プロジェクトディレクトリの作成
mkdir ~/path/to/vagrant_ec2
vagrant init
cd ~/path/to/vagrant_ec2
vagrant init
vagrant init
を実行すると Vagrantfile が生成される。
Vagrantfile
# # - ami-a21529cc を利用して Ubuntu 14.04 インスタンスを t2.micro で起動する # - VPC 内にインスタンスを起動する # Vagrant.configure(2) do |config| config.vm.box = "dummy" config.vm.box_url = "https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box" config.vm.provider :aws do |aws, override| aws.access_key_id = "${アクセスキー ID}" aws.secret_access_key = "${シークレットアクセスキー}" aws.region = "ap-northeast-1" aws.keypair_name = "${KEYNAME}" aws.ami = "ami-a21529cc" override.ssh.username = "ubuntu" override.ssh.private_key_path = "/path/to/${KEYNAME}.pem" aws.security_groups = ["${SECURITY_GROUP_ID}", "${SECURITY_GROUP_ID}", "${SECURITY_GROUP_ID}", "${SECURITY_GROUP_ID}", "${SECURITY_GROUP_ID}"] aws.subnet_id = "${SUBNET_ID}" aws.instance_type = "t2.micro" end end
本来はアクセスキー ID やシークレットアクセスキーを直接 Vagrantfile に書くのはイケてないので環境変数に登録しておくと良い。
export AWS_ACCEESS_KEY_ID="AKxxxxxxxxxxxxxxxxxxxxxxxxxx" export AWS_SECRET_ACCESS_KEY="xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
環境変数に登録した場合には Vagrantfile は以下のように書いておく。
config.vm.box = "dummy" config.vm.box_url = "https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box" config.vm.provider :aws do |aws, override| aws.access_key_id = ENV["AWS_ACCEESS_KEY_ID"] aws.secret_access_key = ENV["AWS_SECRET_ACCESS_KEY"] aws.region = "ap-northeast-1" aws.keypair_name = "${KEYNAME}" aws.ami = "ami-a21529cc" override.ssh.username = "ubuntu" override.ssh.private_key_path = "/path/to/${KEYNAME}.pem" aws.security_groups = ["${SECURITY_GROUP_ID}", "${SECURITY_GROUP_ID}", "${SECURITY_GROUP_ID}", "${SECURITY_GROUP_ID}", "${SECURITY_GROUP_ID}"] aws.subnet_id = "${SUBNET_ID}" aws.associate_public_ip = true aws.instance_type = "t2.micro" end end
仮想マシンの起動、ログイン、停止、破棄
仮想マシンの起動
vagrant up --provider aws
仮想マシンへのログイン
vagrant ssh
仮想マシンの停止
vagrant halt
仮想マシンの破棄
vagrant destroy
以上
Amazon EC2 を Vagrant 経由で起動する手順でした。