47
47

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2013-08-14

目的

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

47
47
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
47
47

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?