SHOEISHA iD

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

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

インフラ構成管理ツールを使いこなす!コードではじめるサーバ構築

コードによるインフラ構成管理はなぜ必要? 今さら聞けない「Infrastructure as Code」

インフラ構成管理ツールを使いこなす!コードではじめるサーバ構築 第1回

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

主な構成管理ツールの概要

 インフラの構成をコードで管理していくためには、構成管理ツールや仮想化ツールなどを利用します。ひとくちにインフラ構成管理ツールといっても、ネットワークやOSを含むサーバの構成を管理するものもあれば、OSやミドルウエアの定義ファイルを自動作成するもの、または複数サーバの統合管理をおこなうツールまでさまざまあります。

構成管理ツールの概要
構成管理ツールの概要

 ツールの持つ機能を役割に応じて、おおまかに分けると次のとおりです。

OSの起動を自動化するツール(Bootstrapping)

 サーバのOSをインストールしたり、仮想化ツールをインストール/設定したりする作業を自動化するためのツールです。RedHat系のLinuxディストリビューションで利用できる「KickStart」や、ローカルPCに仮想環境を作るための「Vagrant」などがあります。また、Linux上で動作するコンテナ仮想化ツールである「Docker」は、クラウド環境での実行環境として注目されています。

OSやミドルウエアの設定を自動化するツール(Configuration)

 データベースサーバ/Webサーバ/監視エージェントなどのミドルウエアのインストールやバージョン管理、Unix系OSの/etc配下にあるOSやミドルウエアの設定ファイルや、OSのファイアウォール機能などの設定といったセキュリティに関する設定などを自動化するためのツールです。主なツールは、Chef社が提供するオープンソースのRubyによるインフラ構成管理ツール「Chef」や、Pythonで実装された「Ansible」があります。また、「Puppet」は2005年にリリースされたオープンソースの構成管理ツールで長い歴史があります。

複数サーバの管理を自動化するツール(Orchestration)

 大規模なシステムを構成するサーバは複数台にわたります。これらの管理を自動化するためのツールです。サーバ群を監視し、新しいサーバをシステムに登録したり、障害のノードをシステムから取り除いたりできる「Serf」や複数台のサーバへのアプリケーションのデプロイをサポートする「Capistrano」などがあります。

 インフラの構成管理を行うときは、これらのツールを要件に応じて組み合わせて使うことが多くなっています。ただし、各ツールの持つ機能/プラグインやそれらの使い方によっては、この分類できっちり当てはまらないものもあるので、おおまかな分類としてとらえてください。

 本連載では、これらの中で、ツールの利用者が多く、インフラ構築の入門として習得がしやすい「Vagrant」「Chef」「Docker」についての機能を簡単に紹介する予定です。

Vagrantのインストールと設定 1

 それでは、さっそくインフラを構築していきましょう。システム開発の現場で多発する「あっちでは動くけど、こっちでは動かない」をなくすための第一歩は、アプリケーション開発チーム全体で統一した開発環境を整えることです。

 今回は、ホスト型の仮想化ソフトウエアであるVirtualBoxと、仮想環境を自動で構築するためのツールであるVagrantを使って、ローカル端末に開発環境を構築する手順を説明します。

仮想環境ってなんだろう?

 ここで、すこし仮想化技術についておさらいしておきたいと思います。みなさんは、普段Windowsのパソコンを使って、開発をしているとします。そこで、Linuxの本番サーバで動くWebアプリケーションを作りたいというときは、どのようにすれば良いでしょうか?一番簡単な方法は、Linuxサーバを開発チームで新たに購入することです。Webアプリケーションを作るためには、APサーバ以外にもDBサーバなどが必要なため、複数台のハードウエアが必要になります。

物理環境の構築
物理環境の構築

 しかしながら、開発環境を構築するためにハードウエアを購入すると費用もかかりますし、サーバの管理も面倒です。そこで、開発で使っているWindowsパソコンのハードウエア上で、仮想的にLinuxマシンを動かすことができれば、サーバ機器を新たに購入すること無くシステム開発が出来ます。物理的なハードウエアを持たず、仮想的にOSを動かし、その上でアプリケーションを動作させますので、「仮想環境」と呼ばれています。

仮想環境の構築
仮想環境の構築

 仮想環境を作るためには、基本となるハードウエアの上にOS(ホストOS)をインストールし、その環境に仮想化ソフトウエアを導入します。そして、仮想化ソフトウエア上で、ホストOSと異なるゲストOSを動かすことができるものです。動作イメージは次のとおりです。仮想化ソフトウエアを使うと、1つのハードウエア上に仮想的にいくつものOSを動作させたり、破棄したりすることができます。

仮想環境の構成
仮想環境の構成

 なお、この仮想化のしかたを「ホスト型仮想化」と言います。ホスト型の仮想化ソフトウエアはいくつか提供されていますが、その一つに米Oracle社の「VirtualBox」があります。VirtualBoxは、Javaで有名なSun Microsystems社が開発を行っていたデスクトップ向けのオープンソースの仮想化ソフトウエアで、現在は同社を買収したOracle社からリリースされています。なお仮想化技術については、ホスト型以外にもいくつかありますので、詳細については次回以降の連載で説明します。

次のページ
Vagrantのインストールと設定 2

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
インフラ構成管理ツールを使いこなす!コードではじめるサーバ構築連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

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

WINGSプロジェクト 阿佐 志保(アサ シホ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング