humangas's blog

自分の振り返りを適当に書いてます。書きっぷりはそん時の気分によって変わります。

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

以前、QiitaにVagrantで AWS EC2インスタンス(RHEL5.5)を作成する という記事を書いたが、それからしばらく技術に触れることもなくすっかり忘れていたころに、また技術検証しないといけない要件が発生したのでやってみたところ、 記事を書いていたころより、大分バージョンが上がっており、試すOSも違ったので、2014/06/16時点で最新のバージョンでやってみることにした。

使い方は、前述の記事と大差ないと思うので割愛。

まず、Vagrantのバージョンアップ

前のバージョンを消すことなく、サイトからDLしてインストールしたら自動で上書きされた。

インストール後のバージョン確認(バージョン確認は2つやり方があり、普通のやつと、Latest Version も出してくれるやつがある)

$ vagrant --version
Vagrant 1.6.3

$ vagrant version
Installed Version: 1.6.3
Latest Version: 1.6.3
 
You're running an up-to-date version of Vagrant!

プラグインのアップデート

今回は、vagrant-aws プラグインを使ってEC2インスタンスを建てたいのでアップデートする。

$ vagrant plugin update
Updating installed plugins...
All plugins are up to date.

$ vagrant plugin list
sahara (0.0.16)
unf (0.1.4)
vagrant-aws (0.4.1)
vagrant-login (1.0.1, system)
vagrant-share (1.1.0, system)

IAMでユーザ作っておく

Vagrantfileにaws.access_key_idaws.secret_access_keyが必要だが、IAM作らないとキーが発行できないようになったので、ユーザを作っておく。 取り敢えず今回は、ADMIN権限を持つユーザを作っておく。

  • IAM Management Consoleのサイトにアクセス
  • 「Create a New Group of Users」を押下すれば、後は画面見れば分かります。
  • → その時、上記のキーが参照できるので控えておく。

Vagrantfileを書く

こんな感じです。vagrant-aws + vagrant-configspecでEC2をプロビジョニングするを参考にさせて頂きました。
独り言:へぇ、dummy.boxは、URL直指定でも良いのかぁ。。

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

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "ec2"
  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.access_key_id = '<YOUR_ACCESS_KEY_ID>' 
    aws.secret_access_key = '<YOURE_SECRET_ACCESS_KEY>'
    aws.keypair_name = '<YOURE_KEYPAIR_NAME>'

    aws.region = 'ap-northeast-1'

    aws.ami = 'ami-9526a894'
    aws.instance_type = 't1.micro'
    aws.security_groups = ['<YOURE_SECURITY_GROUPS>']

    aws.tags = { 
      'Name' => 'test-RHEL62'
    }

    override.ssh.username = 'root'  
    override.ssh.private_key_path = '<YOURE_SSH_PRIVATE_KEY_PATH>'
  end

end

YOURからはじまる箇所を適宜埋めます。
ここに埋まってる後のデータを参考までに書いておくと。。

  • ap-northeast-1: Tokyo リージョン
  • ami-9526a894: RHEL6.2
  • t1.micro: 最小インスタンスタイプ(無料期間であれば750H起動まで無料)
  • root: RHEL6.2だとrootでした。RHEL6.4起動した時はec2-userがいた記憶が。。

あとは使うのみ

操作対象サーバのVagrantディレクトリにcdしたら、以下で起動したりSSH接続したりする。

  • vagrant up : start
  • vagrant ssh : ssh接続
  • vagrant halt : stop
  • vagrant destroy:terminate
vagrant ssh-config >> ~/.ssh/config

をすると、簡単にSSH接続(ssh <Hostに定義されている名前>)できるので便利。
ちなみに、これはvagrantではなく、sshの機能です。