VagrantをEC2と使ってみた

AWS運用自動化サービス「Cloud Automator」
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。

エンジニアの新井です。

今回はVagrantをちょっと触ってみようかと思います。

Vagrantとは

設定ファイルを用いてVirtualboxの仮想マシンの操作ができるツールです。

chefやpuppetとの親和性も高く、仮想マシンの環境構築が非常に簡単に行えます。

最近AWSとかVMwareにも対応しました。

前準備

Vagrantを利用するにはVirtualBoxをインストールしておく必要があります。

Downloadsから自分のマシンに合ったバイナリを落としてインストールしましょう。

まずは試してみる

公式サイトからパッケージを取得します。

インストールをしたら

これだけで仮想マシンが立ち上がります。

仮想マシンが立ち上がったら

で仮想マシンにSSHで入ることができます。

ね、簡単でしょ?

削除する時はdestroyをしましょう。(haltやsuspendもあります)

EC2をVagrantで起動してみる

Vagrantは1.1から公式に操作できる対象にEC2+VPCが増えました。(他にもRackspaceやVMware Fusion)

EC2に対応しているのにやらない理由がありません。

注意点としては

  • セキュリテイグループはSSH(22番ポート)を許可してある必要がある。
    • 起動直後にsshでログインできるかチェックしてるのでそこでハマります。
  • 起動したインスタンスに対してデフォルトではタグがつきません。
    • 共用アカウント等を利用している場合はちゃんとNameタグ等をつけましょう。
  • Amazon LinuxではDefaults requirettyが有効な状態になっているので無効化したAMIを用意する必要がある(見事にハマった)。
    • visudoから編集しておきましょう。

では、Amazon LinuxをVagrantで起動しましょう。

AWSを利用する場合、OSのイメージは必要ありませんが、Boxは必要なのでダミーのそれを用意します。

Vagrantfileを作成し、編集します。

設定ファイルを書き終えたら起動しましょう。

起動したのでインスタンスに接続!

使い終わったインスタンスはterminateしましょう。

まとめ

今回は起動/削除しか紹介していませんが、shellコマンドを実行したり、chefを利用したりも出来るので ちょこっと検証用の使い捨ての環境を作るにはとても便利ですね!

また、AWSプラグインは物足りないところも多く、例えば、Vagrant経由ではまだhalt(=stop)が出来なかったりします。(stopに関してはPull requestは出ているようです。)

オープンソースなのでパッチを送ってどんどんよくしていきたいですね!

AWS運用自動化サービス「Cloud Automator」