Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
47
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@Humangas

Vagrantで AWS EC2インスタンス(RHEL5.5)を作成する

目的

Vagrant のAWS-Provider (プラグイン) を使用して、AWS EC2 インスタンス(RHEL5.5)を作成する。

クライアントは、Windows7 とMacOSXです(本文中のパスはWindowsで記載してありますが、Macでも適宜置き換えれば特に問題ないと思います)。


前提条件

環境

作業前

  • OS: Windows 7 Home Premium、MacOSX 10.8.5
  • Vagrant: 1.2.4

作業後(※差異部のみ記載)

  • vagrant-aws: 0.2.2

参考情報


構築手順:概要

  1. Vagrant インストール
  2. Vagrant のAWS 用プラグインをインストール = vagrant plugin install [plugin-name]
  3. AWS EC2 用の Dummy Box を入手 = vagrant box add dummy [URL]
  4. AWS EC2 用の Dummy Box を初期化 = vagrant init
  5. Vagrantfile を EC2 用に修正 = vi Vagrantfile
  6. 仮想サーバ起動 & 作成 = vagrant up
  7. 仮想サーバへssh 接続 = vagrant ssh
  8. 仮想サーバ停止 = vagrant halt
  9. 仮想サーバ削除 = vagrant destroy

構築手順:詳細

Vagrant インストール

※ RubyGems(gem) でインストールすると、古いv.1.0 系しかダウンロードされないため、v.1.1系(他の仮想マシンにも対応するプラグイン構成版)以降は、パッケージ インストールする。

  1. Vagrant HP にアクセス
  2. インストーラをダウンロード
    • Windows版インストーラ:Vagrant_1.2.3.msi
    • Mac版インストーラ:Vagrant-1.2.3.dmg
  3. ダウンロードした インストーラ(e.g. Vagrant_1.2.3.msi) を起動
  4. インストール完了後、コマンドプロンプトで、以下のように表示されることを確認
$ vagrat --version  
Vagrant version 1.2.3

Vagrant のAWS-Provider インストール

$ vagrant plugin install vagrant-aws
$ vagrant plugin list
vagrant-aws (0.2.2)

AWS EC2 用のDummyBox 取得&初期化

AWS EC2を利用する場合、OS のイメージは必要ないが、Vagrant Box は必要なのでダミーを用意する。

$ vagrant box add dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box
$ vagrant box list
dummy                               (aws)

Vagrant Box 用ディレクトリ作成

$ mkdir -p /c/_/data/vagrant-aws-test/

Vagrant Box 初期化 → Vagrantfile 作成

vagrant init した場所(Vagrantfile がある場所)に対して操作する。

$ cd /c/_/data/vagrant-aws-test/
$ vagrant init

Vagrantfile 修正

$ vi /c/_/data/vagrant-aws-test/Vagrantfile
Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.box = "dummy"

  config.vm.provider :aws do |aws, override|
    aws.access_key_id = 'アクセスキーID'
    aws.secret_access_key = 'シークレットキーID'
    aws.region = 'ap-northeast-1'
    aws.instance_type = 't1.micro'    
    aws.ami = 'ami-3ddd543c'
    aws.security_groups = ['仮想マシンに設定するセキュリティグループ名']
    aws.keypair_name = '仮想マシンに設定するキーペア名'
    aws.tags = { 
      'Name' => 'サーバ名等、EC2インスタンスの名前に相当する名称'
    }
    # aws.use_iam_profile = ''
    # aws.subnet_id = ''
    # aws.private_ip_address = ''
    override.ssh.username = "root"
    override.ssh.private_key_path = 'pvivatekey(*.pem)のフルパス'

  end
end

各属性の調べ方

TODO: 後で書く

  • access_key_id, secret_access_key:
  • region:
  • availability_zone:
  • instance_type:
  • ami:
  • security_groups:
  • keypair_name:
  • tags:
    • Name: サーバ名に該当する名称
    • その他Tag: 任意で定義する
  • ssh.username:
  • ssh.private_key_path:

vagrant 起動(= 仮想サーバ作成)

$ vagrant up --provider=aws

※ もう一回同じコマンドを打ったらどうなるか?

* → 既に作られている。と表示される。
* → 作り直したい場合は、$ vagrant destroy してから、もう一度 vagrant up --provider=aws すればOK

Bringing machine 'default' up with 'aws' provider...
[default] The machine is already created.

作成した仮想サーバにssh 接続

$ vagrant ssh

これで、public DNS を意識せずにssh 接続できる。

作成した仮想サーバを停止

$ vagrant halt

※ただし、まだ対応されていない(2013/08/06時点)。

以下のエラーメッセージが表示される。

なので、停止したい場合は、以下の方法で停止する。
* 対象仮想マシン上で直接、shutdown -h now などOSのシャットダウンコマンドで停止する
* AWS Management Console で停止する

$ vagrant halt
Vagrant attempted to call the action 'halt' on the provider
'AWS (i-78438a7d)', but this provider doesn't support this action. This
is probably a bug in either the provider or the plugin calling this
action, and should be reported.

作成した仮想サーバを削除

$ vagrant destroy

これで、Terminate される。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
47
Help us understand the problem. What are the problem?