2021/08/20

AWS管理にVagrantを利用する!vagrant-awsプラグイン導入について解説

 
  

Vagrantとは?何ができるのか?


Vagrant(ベイグラント)は、Virtualboxをはじめとした仮想マシン環境を構築および管理するためのツールです。

構成情報を記述した設定ファイル (Vagrantfile) を元に、仮想環境の構築から設定までを自動的に行うことができます。

そして、Ver1.1以降はプラグイン「vagrant-aws」を導入することにより、クラウドによる仮想サーバ環境であるところのAWSのAmazon EC2でも利用できます。

VagrantをAWSで使用するための前提となる準備に関して


AWSをVagrantによる仮想環境構築のホストとして使用する場合にもAWS側で準備は必要です。事前に用意しておく必要があるものは具体的に下記のとおりです。

①Vagrant用のユーザとグループの作成

②セキュリティグループの作成

③キーペアの作成

Vagrant用のユーザとグループを作成する

Vagrant が AWSにアクセスするためのユーザとグループを作成します。なお、作成済みのユーザを利用しても問題ありません。既存のユーザ、グループを使用する場合はこの項目を実施する必要はありません。

Services > Administration & Security > IAM

①ユーザ作成

左のメニューの Usersをクリック

Create New Users

任意のユーザ名を入力

Createをクリック

(AWS の認証情報(access key id, secret access key)が表示されるので記録する)

②グループ作成

左のメニューの Groupsをクリック

Create New Groupをクリック

任意のグループ名を入力

Attach Policyで「PowerUserAcessを選択

(注:PowerUserAccessは最上位のユーザ権限AdministratorAccessからIAMの操作権を取り除いたポリシー)

Create Groupをクリック

③グループにユーザを登録

左のメニューのGroupsをクリック

作成したグループを選択

Group Action -> Add Users to Groupを選択

作成したユーザをグループ追加対象として選択

Add Userをクリック

セキュリティグループを作成する

セキュリティグループを作成します。アプリケーション稼動に必要なHTTP・HTTPS、管理に必要なSSHを設定しています。

Services > Computing > EC2を選択

左側メニューの NETWORK SECURITY で Security Groupを選択

Create Security Groupをクリック

任意のSecurity Group Name と Descriptionを入力

Inboudのルールに
「SSH:TCP:22:クライアントのIPアドレス」
「HTTP:TCP:80:Anywhere」
「HTTPS:TCP:443:Anywhere」を追加して Createをクリック

キーペアを作成する

VagrantがAWSにアクセスする際のキーペアを作成します。

左側のメニューからService > Compute&Networking > EC2を選択

NETWORK & SECURITY > Key Pairsに移動

Create Key Pairをクリック

任意のキーペア名を入力してCreateをクリック

秘密鍵をダウンロードする

秘密鍵ファイルは後述するVagrantfileと同一のフォルダに入れておく必要があります。

Vagrant(Windows用)の導入方法について


まずVagrantのソフトウェア本編をインストールしていきます。

ここではVagrantの導入方法について、「ダウンロード、インストール方法」をWindows(64bit)ベースで解説していきます。

その他の環境において導入を行う場合は、それぞれ公式のユーザーガイドを参照してください。

Windows(64bit)用のVagrantインストーラをダウンロードする

Windows用の最新インストーラは以下のURLからダウンロードします。

【Windows(64bit)用のVagrantインストーラ(Ver.2.2.14)】
https://releases.hashicorp.com/vagrant/2.2.14/vagrant_2.2.14_x86_64.msi

また、最新版リリース情報および安定版の確認をするために公式ページやダウンロードページを確認することをおすすめします。

・Vagrant公式
https://www.vagrantup.com/

・Vagrant公式ダウンロードページ
https://www.vagrantup.com/downloads

WindowsでのVagrantのセットアップ

Vagrantをインストールするには、ダウンロードしたmsiファイルを右クリックして「インストール」を選択して実行します。

インストール先はデフォルトではC:\HashiCorp\Vagrantにインストールされます。

また、インストール完了後にPC再起動が必要です。

インストールを確認するにはコマンドプロンプトでvagrant –versionコマンドを使用します。
(例)
C:¥>vagrant –version
Vagrant 2.2.14

上記のようにVagrantのバージョンが表示されればインストールは正常に完了しています。もし表示されない場合はインストールを再度行います。

VagrantのAWS環境用プラグイン(vagrant-aws)の導入・利用


Vagrant自体のインストールが正常に完了しましたら、AWS環境で利用できるようにするためにプラグイン「vagrant-aws」をインストールし、その他、BOXファイルの指定、構成情報であるVagrantfileの用意が必要です。

Vagrantプラグイン「vagrant-aws」のインストール

Vagrantの機能をAWSでも使用できるようにまず「vagrant-aws」プラグインをインストールします。

コマンドプロンプトで下記コマンドを入力します。
vagrant plugin install vagrant-aws

※現行のvagrantだと下記のメッセージが表示され「vagrant-aws」が導入できない場合があります。
「libxml2」パッケージは利用できません

その場合は、必要に応じて「fog-ovirt」を先にインストールすることによって依存問題が解消し「vagrant-aws」インストールが可能です。
vagrant plugin install –plugin-version 1.0.1 fog-ovirt

dummyのBOXファイルを追加

VagrantのBOXファイル(OSのイメージファイルのようなもの)であり基本的に利用環境ごとに用意されています。

AWSの場合、VagrantfileのConfig.vm.providerブロック内ですべての詳細を手動で指定させます。したがって、最初にダミーのAWS用のBOXファイルを追加します。

コマンドプロンプトで下記コマンドを入力します。
vagrant box add dummy https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box

構成情報Vagrantfileの作成

下記の内容のVagrantfileを作成し各情報を書き換えます。

-----
Vagrant.configure("2") do |config|
  config.vm.box = "dummy"

  config.vm.provider :aws do |aws, override|
    aws.access_key_id = "AWSアクセスID"
    aws.secret_access_key = "AWSシークレットキー"
    aws.keypair_name = "キーペア名"
    aws.ami = "AMI名"
    aws.region = "ap-northeast-1"   #リージョン(東京はap-northeast-1)
    aws.subnet_id = "VPCを使う場合にサブネットを指定"
    aws.security_groups = ["セキュリティグループを指定"]

    override.ssh.username = "VMログインユーザ名"
    override.ssh.private_key_path = "キーファイル(.pem)を指定"
  end
end
-----

AWS EC2インスタンス作成する

Vagrantfileがあるフォルダに、AWSのキーファイル(.pem)を置いた上でインスタンス作成コマンドを入力します。

コマンドプロンプトを開きVagrantfileがある階層に移動して下記コマンドを入力します。
vagrant up –provider=aws

AWS EC2インスタンス管理の他コマンドに関して

作成したEC2インスタンスに対して各操作を行いたい場合は、通常のVagrantと同様に、コマンドスクリプト上から各コマンドを入力します。

#AWS EC2インスタンスへログイン
vagrant ssh

#AWS EC2インスタンスを停止
vagrnt halt

#AWS EC2インスタンスを破棄
vagrant destroy

Vagrant(vagrant-aws)でAWSを管理するメリット・考慮すべき点をおさえておこう!


最後に、Vagrantを導入するメリットと直接、デメリットとはならないまでも覚えておかないといけない事柄をまとめます。

・Vagrantを使うメリット
コマンド1つで設定ファイルに従って仮想環境を立ち上げることができます。同一のEC2インスタンスを繰り返し立ち上げる必要がある場合に、手動操作より非常に効率的です。今までのVirtualBox等と同様の感覚でAWSのEC2インスタンスを使うことができます。

・考慮すべき点
即、リスクや問題になるようなことではありませんが、Vagrantプラグインである「vagrant-aws」はMITライセンスでありすべて自己責任であること、2021年現在5年以上更新が無いことは理解したうえで使用する必要があります。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】