2016.07.19インフラ

サーバー構築自動化のメリットと代表的な自動化ツール3選

  • このエントリーをはてなブックマークに追加
F3d484a2 0b2d 4a42 aadd 303c0aef80d1
ここ数年で、『自動化』という言葉をよく耳にします。インフラにおける自動化は、”サーバー構築の自動化”、”テストの自動化”、”運用の自動化”の3項目に分けられており、最初に行うものがサーバー構築の自動化です。これは、インストールから環境設定までを自動化します。

そもそも、ここで言う自動化とはなにか。一台一台、インストールから環境設定まで行っていたものを、複数のサーバーを同時に同じ設定で構築することを指します。もしくは、親機となるサーバーを設定構築することによって、他のサーバーも同じ設定で構築することです。サーバー構築を自動化するためには、専用のツールを使用する必要があります。今回は、サーバー構築を自動化するためのメリットと、自動化の際に使用する代表的なツールを3つご紹介させていただきます。
 

 
10,000件以上の案件から希望の案件をご紹介!

未公開案件も多数ありますので「まずは相談したい。」という方もお気軽に登録ください。
 
Banner free wide 037b570405fddeb419957475d18a005501589cadc55bfe73d5000335887322fd
【目次】
サーバー構築を自動化するメリット
初心者でもサーバー構築・運用が自動化できるように
人手不足解消
業務効率化
環境・サーバー構築で利用される代表的なツール3選
Chefとは
Docherとは
Ansibleとは
自動構築の流れ
Chefの場合
Dockerの場合
Ansibleの場合
サーバー構築自動化を学ぶのにおすすめの教材
その他開発現場でありがちな業務効率化のポイント
まとめ
 
  
 

サーバー構築を自動化するメリット



今まで手動で行っていた作業を、サーバー構築自動化のツールに費用を割いてまで自動化するようになったのはなぜか。はっきりと一言で言ってしまうと、開発を行う企業にとって人的・金銭的コストが削減できることが最たる理由です。ここでは、もっと深く掘り下げて3つのメリットについてご紹介していきます。
 

初心者でもサーバー構築・運用ができるように

見出しタイトルに”初心者でも出来るように”、と書きましたが、実は容易に出来るものではありません。あくまでもサーバー構築に関する基礎知識はしっかりと必要になります。ただし開発現場で求められるサーバー構築・運用の経験やスキルは、10年前と比べると緩和してきています。それも、サーバー構築自動化の技術が進んだからです。
 
サーバー構築自動化の設定さえ理解できれば、インストールから環境設定まで自動化できるため、経験・スキルが浅い方でも入りやすくなっているうえ、サーバー構築について教えてくれる現場もあります。
 

人手不足解消

2016年現在、エンジニアを募集している仕事は多く存在しておりますが、エンジニアが少ないという状況が続いております。仕事はなくならないのに、人が足りなくて作業が進まないということになってしまうと世の中が大変なことになってしまいます。そこで、サーバー構築自動化のツールを取り入れることにより、複数のサーバーを同時に同じ設定で構築する繰り返しの作業を自動で行ってもらい、人手不足を解消することができます。
 

業務効率化

構築しなくてはいけないサーバーが400台あるとします。これを、手作業で1台3時間構築できるとすると、多くても1日3台~4台が限度になってしまい、日数も多くかかってしまいます。また、インストールだけでも10分ほどかかる作業もスムーズに行うことができますので、作業スケジュールの大幅な短縮が可能です。
 
また、自動化ツールを使用して作成したソフトウェアの設定をコード化して管理を行うことができるため、一度サーバー構築自動化のツールを使用したソフトウェアの設定を、これからサーバー構築する他のサーバーに適応することができます。既存コードをカスタマイズすることでそのまま運用にも流用できます。構築から運用までの業務も効率化できるというメリットがあります。
 
 

環境・サーバー構築で利用される代表的なツール3選



サーバー構築自動化と検索すると様々なツールが出てきて、どれを使用すればいいのかわからなくなってしまいます。そこで今回は、エンジニアのための情報サイト”フリエン”に登録されている案件やその現場でよく使用されている、代表的なツールを3つご紹介いたします。
 

Chefとは

Chef (シェフ)とは、仮想環境の自動化に特化したシステム総合のフレームワークになります。Rubyコマンド実行ではなく、サーバーの設定管理をコードによって行います。また、CookBookをそのまま構築手順書として使用できるため、同じ構成のサーバー構築の複製可能・サーバーの設定情報も検索可能です。
 
※Chefを利用する際に押さえておきたい用語
Chef Server:管理したいサーバー群の構成情報を集中管理するホストのこと。
Chef Client:実際にインフラで自動構成される対象のホストのこと。
Chef Solo:開発環境を構築するときなどにスタンドアロンで利用する際に使うコマンドのこと。
Recipe:Chef Clientで実際に設定される構成情報をかいたプログラムのこと。
CookBook:作成したRecipeを実行するために必要な設定ファイルやひな形、パラメーターシートなどをまとめたもののこと
Knifeコマンド:Chefを管理するためのコマンドラインツールのことで、Chef Clientをインストールすると使用出来ます。
 

Dockerとは

Docker(ドッカー)とは、開発者やシステム管理者のためのオープンソースのコンテナ型仮想化ソフトウェアです。XenやVMwareのような仮想化とは違い、扱う単位がマシンではなくプロセスになります。サーバー環境構築の簡略化、インフラ環境の抽象化、開発環境の抽象化を行うことができます。
 
※Dockerを利用する際に押さえておきたい用語
コンテナ:外部からプロセスやネットワークなどが隔離された空間のこと。
イメージ:コンテナのテンプレートのこと。このイメージを元に新規のコンテナを作成します。
レジストリ:イメージが保存される場所の名称。
 

Ansibleとは

Ansible(アンシブル)とは、複数のサーバーやクラウドインフラを統一的に制御できる構成管理ツールの1つです。Chefなどの置き換えにも利用できます。Pythonで記述されていますが、標準出力さえできればプラグインの言語は何でも大丈夫という点が特徴的です。
 
※Ansibleを利用する際に押さえておきたい用語
モジュール:クライアント内の動きのこと。あらかじめ用意されていますが、自分で作成することも可能。
PlayBook:モジュール処理をまとめたものの名称。Chefで言うRecipeのこと。
 

自動構築の流れ



サーバー構築自動化にはツールが必要となってきますが、大まかな流れは従来のサーバー構築の方法と同じです。ただ、ツール特有のBookなどがかかわってくる際は異なる部分がありますので、それぞれの流れをご紹介します。わかりやすく自動化の流れについて記載してあるサイトをツール毎に2つずつご紹介していきます。
 

Chefの場合

さくらのナレッジ


構築の流れよりは、概要と基礎的な使い方をご紹介しています。クライアントのインストール・リポジトリ・CookBookの作成なども、参考コードがあるためわかりやすく解説されています。
 
Code Zine

 
開発者のための実装系のコンテンツが書かれているWEBマガジンで、実践で使える技術を、図を交えてわかりやすく解説しております。Chefのインストールと設定のサンプルファイルもダウンロードできるため、参考にしながら設定を行うことができます。
 

Dockerの場合

TECHSCORE BLOG

 
Dockerを使用したときに、最初に知っておきたかったことを中心にまとめられております。コンテナの説明、基本的な動作までコードを交えて解説されています。
 
ドットインストール

 
必要知識とインストールからイメージプッシュまでを動画で見ることができます。1動画3分前後ですので、空いた時間に見ることも可能で、わかりやすく解説しております。
 

Ansibleの場合

ThinkIT

 
インストールの方法とサンプルコードが図を交えて丁寧に解説されています。このサイトの別の記事では、Ansibleの基礎や導入方法、簡単な使い方についても解説されています。
 
Developers.IO

 
仮想マシン作成も画像でコードが貼られているため、言葉で説明よりわかりやすい内容になっています。また、基礎知識と環境構築方法も書かれております。
 
 

サーバー構築自動化の勉強におすすめの教材

サーバー構築自動化の書籍などの教材に関しては、まだ数が少ないですが3つほどご紹介いたします。
 
プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化
Amazonスター数:4.7/レビュー数:7
Dockerに特化した内容で、基本のコマンドから運用までを解説しています。Dockerの教科書として使用におすすめな内容です。
 
入門Chef Solo - Infrastructure as Code Kindle版
Amazonスター数:4.8/レビュー数:21
Chefに特化した1冊で、Chefとは何かから始まり、どこからどこまでをChefで行うべきなのかを、各章にわけて解説しています。また、著者の豊富な経験も内容に組み込まれているため、インターネット上で拾うよりも現場に近い内容になっています。
 
インフラ管理者のためのRun Book Automation実践ガイド~オープンソースによるシステム管理自動化入門 Kindle版
Amazonスター数:4.4/レビュー数:1
現代のシステムにあったシステム増強の省エネ化や運用管理の手法まで紹介されており、社内インフラなどに使用するにはもったいないテクニックが紹介されている内容になります。新しい技術や、スキルアップしたい勉強熱心な方にお勧めです。
 
サーバー構築自動化に関しては、直接セミナーや勉強会に参加した方がより詳しい話が聞けます。IT勉強会・セミナーの情報サイトdot’sで予定の合う勉強会を探してみるのも手です。
 
 

開発現場でありがちな業務効率化のポイント



今回は、メリットでご紹介した以外の業務効率化のポイントをご紹介します。まだ行っていない方法がありましたら、参考にしてみてください。
 

報・連・相をきちんと行う

作業を行う上で、わからないことやトラブルなどはすぐに報告・連絡・相談を行いましょう。相手が忙しそうだからと遠慮してしまうと、自分の作業が進まない上に、何か問題が起きる可能性もあります。そうなってしまえば、自分自身だけではなく、関わっているチームやプロジェクト全体の作業も遅れてしまう恐れがあります。そうならないためにも報告・連絡・相談を行い、スムーズな作業を心がけましょう。
 

無駄な時間をなくす

一番よく聞くことは、重複作業をなくすことです。一度聞いた指示を自分の中で落とし込まなかったゆえに、もう一度聞いてしまう。作業を行っていたが、手順のチェックを行わなかったゆえに、もう一度同じ作業を行わなくてはいけなくなったなど、何度も同じ作業を行う時間をなくしましょう。対策としては、メモを取る・チェックリストを作成するなど、自分自身で対策できます。
 
また、今日はやる気ないからといって、だらだらと仕事するのではなく、「1時間集中したら、休憩を入れる」、「集中力が切れたので、たばこやトイレに行くために離籍する」など、違う行動を起こし気持ちの切り替えを行ってください。もしくは、これだけは頑張ろうという最低ラインを定めるようにしましょう。
 

スケジュールを30分・1時間と細かく区切る

これは、気持ちの切り替えの部分にも関わりますが、なるべく短い時間に区切ってスケジュールを立てることにより、時間を意識して行動ができるため嫌でも集中しなくてはいけません。また、この作業は何時までと決めて、時間区切りで気持ちの切り替えをすることも、業務の効率化になります。
 
 

集中力を高めるため良質な睡眠をとる

睡眠時間が少ないと脳休憩する時間が取れず悲鳴を上げます。それでも、”寝るのがもったいない””仕事が気になる””自分の時間が取れない”などの理由で、睡眠を削る方が多いのが現代です。せめてもの対策で、良質な睡眠を心がけ、脳を休憩させ、日中の集中力を高めてください。行う行動は簡単です。
 
・寝る前にぬるま湯でお風呂に入るもしくは、ホットタオルで足の裏を温める
・電気を消してから、テレビやパソコン、スマートフォンのモニターを見ない。
・寝る前にごはんを食べない
・寝る前の過度な飲酒やカフェインを避ける
 
この4点に気を付けて、深く良質な睡眠をとるようにしてください。疲れもとれ、体が軽くなる上に日中の集中力が高まります。
 
 

まとめ

いかがでしたでしょうか。今回ご紹介した代表的なツールは、数あるツールの中の一部になります。とくに、ChefやDockerを使用する案件・仕事はエンジニアのための情報サイト”フリエン”でも数多く取り扱っております。大手企業や規模が大きくなればなるほど、業務効率化やコスト削減のために、サーバー構築自動化・運用自動化・テスト自動化を行っている現場が多いように感じられます。まだまだ、余分な部分を削ったり、簡略化したりなど業務効率化を目標に、新しいサーバー構築の自動化の研究がされていますので、今後も新しいツールが登場するのを期待したいです。
 
  • このエントリーをはてなブックマークに追加
10,000件以上の案件から希望の案件をご紹介!

未公開案件も多数ありますので「まずは相談したい。」という方もお気軽に登録ください。
 
Banner free wide 037b570405fddeb419957475d18a005501589cadc55bfe73d5000335887322fd

新着のコラム記事

人気のコラム記事

  • キーワードからコラムを探す