Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Ansible、Vagrant、Packerを用いたAWSの開発/本番/ステージング環境の構築

小規模な受託開発におけるAWS活用の勘所 第2回

  • LINEで送る
  • このエントリーをはてなブックマークに追加

 本連載では、比較的「小規模」な「受託」開発を実施する際のAWS活用の勘所を、実際の開発現場での経験を元に紹介します。大規模な開発では当てはまらない部分もあると思いますが、可能な限りインフラ関連の工数を少なくし、効率的に開発を実施するために、最低限抑えておく実務上役立つ点について、解説します。本記事では、インフラ関連の工数がかかる部分であるAWS上のWeb/アプリケーションサーバの構築において、Ansible、Vagrant、Packerを用いた効率的な方法をご紹介します。

目次

はじめに

 受託開発において、比較的小規模なフルスクラッチのWebシステムを開発する場合、インフラ関連の工数の中でWeb/アプリケーション(AP)サーバの構築に対する工数が比較的多くなってきます。

 また、複数のプロジェクトにおいて、同じような作業を繰り返し実施する必要があり、手作業で構築を実施する場合、繰り返し実施する中で手順書が修正され続け、いわゆる「秘伝のタレ」となり再現性が失われるケースが多々あります。

 本稿では、開発環境及び本番/ステージング環境において、Web/APサーバを構築する際に「再現性があり」「繰り返し利用が可能で」「短時間で構築が可能な」方法として、Ansible、Vagrant、Packerを用いた実践方法をご紹介します。

Ansible、Vagrant、Packerの役割

 Ansible、Vagrant、Packerは既に多くの事例でも採用されているため、ご存知の方も多いと思います。

 また、Dockerによるコンテナが広く利用されるようになってきていますが、受託システムの開発では、以前からあるシステムの機能エンハンスや保守・運用を行うことも多々あり、Ansible、Vagrant、Packerも多くの活用シーンがあるかと思います。

Ansible、Vagrant、Packerの役割イメージ
Ansible、Vagrant、Packerの役割イメージ

 Ansible、Vagrant、Packerの役割について簡単に説明します。

Ansible

 Ansibleは、Red Hat社によるデプロイメントツール、オーケストレーションツール、構成管理ツールです。YAML形式でサーバにて実行するタスクをPlaybookに記載しておき、実行が可能です。

 何ができるのか端的に記載すると「開発時、デプロイ時にサーバのセッティングが自動で」できます(他にも使い方は多々ありますが、ここではこの用途に特化したご説明をします)。

 Ansibleの優位点は多くのWebサイト[1]で紹介されていますので、ここでは詳細は割愛しますが、主要な優位点としては、以下の点が上げられます。

  • PlaybookをYAML形式で記載できる(他の構成管理ツールでは、Rubyや独自言語が多い)。
  • 冪等性の確保が比較的容易である。
  • エージェントレスである(ansible-Playbook)。

 運用に合わせて多様な使い方がありますが、ここではVagrantやPackerのプロビジョニングに特化した使用方法をご紹介します。

[1] Ansibleについて詳しく知りたい方は、例えば以下の記事をご覧ください。

Vagrant

 Vagrantは、HashiCorp社による仮想環境の構築・管理・配布が可能なツールです。開発時に使用することがほとんどだと思いますが、ローカル環境で、VirtualBox等の仮想化ソフトウェアを用いてゲストOSを構築し、開発を容易にします。

 Boxファイルと呼ばれるゲストOSの元となるファイルをレポジトリやローカルに配置しておき、そのBoxファイルを元にゲストOSの起動(ホストOSとの連携設定を含む)、プロビジョニング、停止、破棄等を制御します。

Packer

 Packerは、Vagrantと同じくHashiCorp社によるマシンイメージを自動でビルドするツールです。さまざまな仮想環境やクラウドに対応しており、ここでご紹介するAWS EC2のAMIを作成する用途以外にも適用可能です。

 プロビジョナーとしてAnsibleを利用可能であり、Vagrantで開発環境を作成するのと同じ要領でマシンイメージを自動で作成可能です。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 塩飽 展弘(株式会社鈴木商店)(シワク ノブヒロ)

     株式会社鈴木商店 経営企画室室長。  大手通信事業者にて、SE、研究開発、経営企画等に従事後、2016年株式会社鈴木商店に入社。  営業、要件定義、開発(主にAWS関連インフラ)に従事後、現職。  AWS Certified Solutions Architect - Professiona...

バックナンバー

連載:小規模な受託開発におけるAWS活用の勘所
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5