ページ

2015年10月7日水曜日

VagrantでAWSのEC2を使う


今回はVagrantを使ってAWSのEC2のインスタンスを操作してみたいと思います。
※AWSのアカウントを持っておりVagrantがインストールされている前提です。


IAMユーザーの作成


AWSサービスにAPIでアクセスする為にアクセスキーを作成する必要があります
アクセスキーを作成する為IAMユーザーを作成します
  • グループの作成
まずはIAMコンソールにアクセスしログインする
メニューからグループを選択し「新しいグループの作成」 をクリック

適当なグループ名を設定します。ここではDevelopersを設定

ポリシーのアタッチではグループに権限を設定することができます。
とりあえずPowerUserAccessに設定

最後に確認画面で内容が正しければ「グループの作成」をクリックし作成する
グループ一覧画面に作成したグループが表示されていればOK

  • ユーザーの作成
メニューからユーザーを選択し「新しいユーザーの作成」 をクリック

今回は1ユーザーしか作成しないので、ユーザー名に適当な名前を入力し「作成」
今回はvagrantの名前でユーザーを作成

作成されたら「ユーザーのセキュリティ認証情報を表示」をクリックしアクセスキーをメモ、または「認証情報のダウンロード」をクリックしCSVファイルで保管

ユーザーにグループを紐付かせる為、ユーザー一覧から作成したユーザーをクリックし
「グループにユーザーを追加」 をクリック

先ほど作成したグループを選択し「グループに追加」

EC2側の設定


EC2 Management Consoleを開く
  • キーペアの作成 キーペアの作成はここを参照
  • セキュリティグループの作成
sshICMPを通すようなセキュリティグループを作成する
今回はvagrantの名前でセキュリティグループを作成

  • 起動するAMIのIDを確認
vagrantで起動したいAMIのIDを確認する為に、メニューから
「インスタンスの作成」を選択

今回はAmazon Linuxを起動する為、Amazon LinuxのIDを確認

※リージョン毎にIDが異なるらしいので注意!!

Vagrant側の設定


  • AWSプラグインのインストール
$ vagrant plugin install vagrant-aws
Installing the 'vagrant-aws' plugin. This can take a few minutes...
Installed the plugin 'vagrant-aws (0.6.0)'!
  • Vagrantfile編集
vagrant initでVagrantfileができたら↓に編集
# -*- mode: ruby -*-
# vi: set ft=ruby :

AWS_ACCESS_KEY_ID = "XXXXXXXXX" # 保存したアクセスキー
AWS_SECRET_KEY = "XXXXXXXXXXXX" # 保存したシークレットキー

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.synced_folder ".", "/vagrant", disabled: true

  config.vm.provider "aws" do |aws, override|
    aws.ami = "XXXXXXXXXXXXX" # 確認したAMI-ID
    aws.tags = { 'Name' => 'VagrantEC2' } # 適当な名前に設定
    aws.instance_type = "t2.micro" # 必要に応じて調整
    aws.security_groups = "vagrant" # 作成したセキュリティグループ
    aws.access_key_id = AWS_ACCESS_KEY_ID
    aws.secret_access_key = AWS_SECRET_KEY
    aws.region = "ap-northeast-1" # 必要に応じて調整
    aws.keypair_name = "XXXX" # 作成したキーペア
    override.ssh.username = "ec2-user"
    override.ssh.private_key_path = "~/.ssh/XXXX.pem" # 作成したキーペア
  end
end
config.vm.boxは今回関係ないのでダミーを設定
公式サイトと同様に設定
いざ!!Vagrantを起動してみる
vagrant up --provider=aws
エラー無く起動すればEC2のインスタンスが起動する
マネジメントコンソールからも確認出来る

後は普通にVagrantと同じように操作が可能
  • 起動
$ vagrant ssh

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2015.09-release-notes/
No packages needed for security; 7 packages available
Run "sudo yum update" to apply all updates.
[ec2-user@ip-XXX-XX-XX-XXX ~]$
  • 状態確認
$ vagrant status
Current machine states:

default                   running (aws)

The EC2 instance is running. To stop this machine, you can run
`vagrant halt`. To destroy the machine, you can run `vagrant destroy`.
  • 停止
$ vagrant halt
  • 削除
$ vagrant destory -f

1 件のコメント: