SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 受託開発において、比較的小規模なフルスクラッチの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で開発環境を作成するのと同じ要領でマシンイメージを自動で作成可能です。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
ローカルPCでのVagrant、Ansibleを用いた開発環境構築

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
小規模な受託開発におけるAWS活用の勘所連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11323 2019/01/17 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング