Twitter Facebook github

VagrantでEC2をプロバイダとして使う

Vagrantは基本的にVirtualBoxみたいな仮想化ソフトウェアをローカルにインストールして使っている人が多いと思いますが、この仮想化ソフトウェアのことをプロバイダと呼びます。Vagrant AWS Providorプラグインを使うことにより、AWS EC2をプロバイダとして使うことができます。

結構あちこちで解説されているネタでもあるので備忘録的なsomethingとして軽く流します。
なお、AWSについての知識も少なからず必要になるので、事前にVPCとEC2を触って知識をつけてから試すことをおすすめします。

環境

以下の環境が既にインストール済み
– Mac OS X El Capitan 10.11.3
– Vagrant 1.7.4

必要な情報を準備

AWSマネジメントコンソール、またはAWS CLIから、次の情報を取得しておきます。
後ろの括弧内は今回設定するサンプル値です。

  • EC2を操作する権限のあるアクセスキー [your_acc_key, your_sec_acc_key]
  • 起動するAMI ID [ami-59bdb937]
  • リージョンコード [ap-northeast-1]
  • VPCのSubnet ID [subnet-5a1fb42a]
  • セキュリティグループID [sg-42c13b8]
  • キーペア名 [kp1234]

セキュリティグループは操作しているネットワークから接続できるようにSSHポートを開いておく必要があります。

Vagrantにプラグインをインストール

アクセスキーを環境変数に設定

Vagrantfileは基本的にバージョン管理対象なので、IAMのクレデンシャルは環境変数から読み込むことにします。

Vagrantfileの設定

こんな感じで作ります。適宜環境に合わせて書き換えてください。
なお、AZコードやVPC IDなども指定可能ですが、サブネットIDがあれば不要なので省略しています。

動かしてみる

起動するときはプロバイダを指定して。一度起動した後は省略できます。

vagrant statusで running (aws) と表示されれば接続できます。

ちなみに起動したインスタンスIDは .vagrant/machines/default/aws/id に保存されていて、haltで停止してupし直した場合などはこのIDのインスタンスが立ち上がります。

使えないsynced_folder

synced_folder機能はrsync over sshで実現されているために、最小限のサポートに留まります。
というのは、vagrant up|reload|provision のタイミングでしかrsyncされません。

個人的にはこれを開発用で使いたかったので、リアルタイムrsyncしてほしかったです…。
IDEの機能を使うか、lsyncd等を使えばできなくもないでしょうけれど、どちらにしろ自分で実装する必要がありますね。

もちろんこの環境を本番用のデプロイに使うのもナンセンスなので、ちょっと使いどころが微妙な感じ。

所感

リアルタイムでsyncしてほしかったトコロ…。また色々試行錯誤してみるかもしれません。

コメントを残す

メールアドレスが公開されることはありません。