SHOEISHA iD

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

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

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

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

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

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

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

VirtualBoxのインストール

 さっそく仮想環境を構築するため、VirtualBoxをインストールしていきましょう。インストールモジュールは以下のサイトからダウンロードできます。

 執筆時点での最新版は、4.3.18です。Windows版を選択し、ダウンロードしたexeファイルを実行して、VirtualBoxをインストールしてください。

VirtualBoxのダウンロード
VirtualBoxのダウンロード

Vagrantのインストール

 先ほど、インストールしたVirtualBoxを使って仮想環境をつくっていきます。VirtualBoxはGUIのツールがありますので、手動でゲストOSをインストールして環境を構築していくことも、もちろん可能ですが、ここではVagrant(ベイグラント)というツールを使って環境を構築します。

 Vagrantは、仮想環境を自動で構築するためのツールです。VagrantはWindowsのほかにもMac OS Xや、UbuntuなどのLinuxで動作します。VagrantはRubyで実装されているのが特徴で、仮想環境を作成するための設定ファイルもRubyで記述していきます。

 インストールモジュールは以下のサイトからダウンロードできます。

 執筆時点での最新版は、1.6.5です。Windows版を選択し、ダウンロードしたファイルを実行して、Vagrantをインストールしてください。

Vagrantのダウンロード
Vagrantのダウンロード

 なお、Vagrantが対応している仮想化ソフトはVirtualBoxのほかにVMwareがあります。Vagrantでは仮想化ソフトのことを「プロバイダー」と呼んでいます。またプラグインを使えば、ローカルマシンの環境だけでなく、クラウド(Amazon Web ServicesのEC2)でインスタンスを起動することもできます。

Vagrantを使うための準備

 はじめに、Vagrantを使って仮想環境を作るためのもとになるフォルダを作成します。筆者の環境では、Eドライブにvagrant-sampleというフォルダを作成し、その中で作業を行っています。

 Vagrantでは、すでにVagrant用にOSがインストールされた専用のディスクイメージを使用して仮想マシンを作成します。これを「Box」と呼びます。また、このBoxをもとに、「Vagrantfile」という設定ファイルに従って、仮想マシンを設定します。手動で仮想環境を構築するときの場合を考えると、OSイメージファイル(isoファイル)に相当するのがBoxで、パラメータシート(ミドルのバージョンや設定ファイルの内容などサーバの状態を定義したインフラ設計書)にあたるのがVagrantfileになります。

VagrantのBoxとVagrantfile
VagrantのBoxとVagrantfile

 Vagrantはコマンドプロンプトを使って実行します。バージョンを確認するには、次のコマンドを実行します。インストールした1.6.5が表示されれば、インストールは完了です。

リスト1 Vagrantの動作確認
E:\> mkdir vagrant-sample
E:\> cd vagrant-sample
E:\vagrant-sample> vagrant -v
Vagrant 1.6.5

 では、この仮想マシンのもとになるBoxをvagrant box addコマンドで作成します。コマンド書式は以下の通りです。

リスト2 vagrant box addコマンド
vagrant box add [作成するBoxの名前] [Boxイメージの配布元URL]

 たとえば、precise32という名前でBoxを作成する場合は次のようになります。

リスト3 Boxの作成
E:\vagrant-sample> vagrant box add precise32 http://dl.dropbox.com/u/13510779/lxc-raring-amd64-2013-07-12.box

 上記のVagrantの公式サイトで配布されているBoxはUbuntuですが、次のサイトなどでインターネット上に公開されているものをそのまま使うこともできます。

 作成したBoxを確認するには、vagrant box listコマンドを実行します。

リスト4 Boxの一覧表示
E:\vagrant-sample>vagrant box list
precise32    (virtualbox, 0)

 作成したBoxを削除するときはvagrant box removeコマンドを実行します。コマンド書式は以下の通りです。

リスト5 vagrant box removeコマンド
vagrant box remove [削除するBoxの名前]

 たとえば、centosという名前のBoxを削除するときは次のようになります。

リスト6 boxの作成
E:\vagrant-sample> vagrant box remove centos

 

DevOpsの問題

 アプリケーション開発者は、顧客から常に新しい価値をもつ機能を開発することを求められています。プログラミングの世界では、「あれやこれや書いているとなにがなんだか分からなくなったので、きちんと動いていた昨日のソースコードに一旦戻したい」ということが容易にできるため、アプリケーション開発者は、技術的に「あれやこれや」への挑戦がし易くなっています。

 

 一方、インフラエンジニアは、顧客から常に安定した状態でシステムを稼働し続けることを求められています。特にオンプレミス環境でのインフラエンニアは、1つのものを変化させながら管理しているので「あれやこれや」がしづらくなっていました。ましてや、システムがミッションクリティカルであればあるほど、安定稼働している本番環境に構成変更をしたくないため、保守的な考え方の人も多く、しばしシステム開発の現場では、アプリケーションエンジアとインフラエンジニアで衝突することもありました。

 

 しかしながら、クラウドに代表される仮想化技術によってインフラエンジニアはこれまで縛られていたハードウエアの制約から解放され、アプリケーション開発者と同じように、構築/変更/破棄が容易になったため、技術的なチャレンジへのハードルが大きく下がりました。

 

 結果として、これまではインフラエンジニアの仕事だった実行環境の構築などが、本連載でご紹介する構成管理ツールなどを使えば、アプリケーション開発者でできるようになりました。逆にインフラエンジニアは、インフラの知識だけでなく、アプリケーション開発者のようなコーディング力が必要になっています。そのため業務分掌自体があいまいになっており、両者がノウハウを持ち寄り、互いに協力してより良いシステムを構築/開発していくことが求められています。この流れは「DevOps」と呼ばれています。

 

 ただし、大規模なシステム開発の場合、アプリケーション開発者(Dev)とインフラエンジニア(Ops)は別部門(または別会社)が担当することが多く、DevOpsを推進するための、制度やマネジメントなどの問題も解決しておくことが不可欠です。

おわりに

 今回の記事では、コードによるインフラ構成管理の基礎とVagrantをつかった仮想開発環境の構築を行う準備について紹介しました。

 次回は、開発環境を作成するためのVagrantfileの具体的なコーディングの方法について紹介します。

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

  • 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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー

アクセスランキング

アクセスランキング