これまで数回にわたってニフティクラウドについて取り上げてきた。ニフティクラウドはVMwareで仮想化されたサーバーを利用できるというタイプのクラウドコンピューティングサービス。Webサーバーの構築やネームサーバーの利用などが数回のクリックで実現でき、しかも実用的であることをこれまで紹介してきた。今回は、6月に提供が開始されたニフティクラウドの「Automation」をご紹介する。

Automationとは、これまでコントロールパネル上でリソース単位で行っていた管理作業を、用途や環境ごとにまとめて行える機能だ。これを利用することにより、「構築」と「運用」が格段に効率化できるという。ではこれより、果たしてそのAutomationがどの程度まで効率化を実現することができるのかをご覧いただこう。

なお、このシリーズでは、「実際に現場で利用できること」をモットーに、まだなにも使ったことがないという貴重な状態を活かすべく、ほとんどマニュアルも読まず、検索もせず、目の前のダッシュボードをいじり倒すことでサービスを使ってみるという取り組みを進めている。時間に追われた現場のエンジニアは使ったことのないサービスをいきなり利用しなければならない状況に追い込まれることは多々あることだ。これと同じ状況を作り出し、そのサービスが実際に実用的に扱えるものなのかを試していく。

まずはAutomationの機能を有効にしてみる

ニフティクラウドのAutomationに関しては「クラウド 機能・サービス(Automation) | ニフティクラウド」の説明にざっと目を通したところで作業を開始した。スタック、レイヤー、サーバー、アプリ、デプロイという単語がそれ相応の概念として用意された機能であるらしいということ、これら概念を組み合わせて便利なことができるらしい、というぼんやりした知識のままで作業をおこなってみた。結論から先に言うと、この機能はデフォルトでも「使いやすい環境づくり」に役立ち、またカスタマイズする事で様々なことを実現することができると言える。詳細はここからの本文を参照いただきたい。まずはAutomation機能の有効化だ。

ダッシュボードの左上のアイコンをクリック。メニューに表示されるAutomationをクリック(左図)。「新規登録」のボタンが見えるので、これをクリック(右図)

1回作成に失敗したが、2回目の作成で成功。それぞれセットアップが完了するまで10分ほどかかる

最初に作成に失敗した理由はよくわからないが、2回目は成功したのでよしとしよう。結構時間がかかる(10分ほど)ので、作成をはじめたらコーヒーを飲むなり別の作業をしておくとよいと思う。

試行錯誤で探るニフティクラウドAutomation!

Automationを有効にするとまずは「スタック」というものを作成するらしいということがわかる。「スタック」というくらいなのだから、これが一番大きな入れ物になっているんだろう、ということがなんとなく推測される。

「スタック追加」のボタンがあるのでこれをクリックすると、作成するスタックの基本設定画面に推移する。名前、オペレーティングシステム、リージョン、ゾーン、SSHキーなどを設定可能だ

Chefの設定もできる模様(左図)だが、まずはスタックを作成すべく 「作成する」ボタンをクリック(右図)

TRYという名前でスタックを作成したところ。「レイヤー」「サーバー」「アプリ」「デプロイ」のタブが現れた

レイヤーページ(左図)とサーバーページ(右図)

同じく、アプリページ(左図)とデプロイページ(右図)

スタックを作成したあとに、アクセスできるすべてのページを行ったり来たりしたところ、レイヤーかアプリしか作業できないことがわかった。マニュアルを読まなくてもある程度はいじり倒すことで使える仕組みになっているようだ。レイヤーとアプリだが、サーバーもない状態でアプリを開発するのはちょっと考えにくいので、まずはレイヤーというものの作成に着手する。

レイヤーの新規作成画面(左図)。選択できるレイヤー(右図)をみてみると、どうやら用途ごとにレイヤーという枠を作成するようだ

ここでもChefが利用できる

追加のパッケージ(左図)および、追加のディスク設定(右図)。必要があればここから各種の追加を行う事が可能だ

内容の確認を行う(左図)と、右図のようにレイヤーが作成される

今回は検証用として、他にもいくつかレイヤーを作成した

いくつかレイヤーを作成したのち、サーバーページに移動すると、作成したレイヤーが表示されていた。それぞれのレイヤーに「サーバー新規作成」の文字が見える。これまでの操作やUIの並び順などを考えると、どうやらニフティクラウドAutomationでは

「スタックの作成」
→「レイヤーの作成」
→「レイヤーにサーバーを追加」
→「アプリを作成」
→「アプリをサーバーにデプロイ」

というセットアップの流れを取るのだろうということが見えてきた。大きい枠から作っていって、最後にアプリを開発してデプロイして完了、というわけだ。

ご覧のとおり、サーバーページにレイヤーが登場した(図左)。ここで、サーバーを新規作成する(図右)

確認画面(図左)を経て、作成したサーバーの起動画面に推移しよう(図右)

サーバーの作成はこれまで何度も扱っているので、今更説明はいらないだろう。聞かれるままに選択するとサクッとサーバーが起動したのでssh経由でログインして中身を確認してみる。すでにこの状態でWebサーバーとして利用できるようになってきた。これは結構便利だ。

起動時に確認メッセージが表示される。その後、スタックの作成時にダウンロードしてきた秘密鍵を使って作成されたサーバーへログイン(図左)。システムが動作するために基本的なストレージ領域は用意されているようだ。ディスクを追加するとここにさらにディスクが生えてくる(右図)

この状態でNginx、NTPd、DHCPクライアント、sshd、cron、atd、BINDなどWebサーバーとして動作するための基本的なサービスが動作している

ほかにもサーバーを追加していく

サーバーのセットアップまで終わったので、次にアプリの追加作業に着手しよう。

まずはアプリ名などを入力(左図)し、その後アプリのタイプを入力していく(図右)

次が今回もっともはまった部分だったが、アプリの作成にはかならずリポジトリが必要になるようだ。実際に作成してログインするまでは、なぜこの段階でリポジトリを指定する必要があるのか理由がよくわからなかったが、実際に使ってみると便利さが見えてくるので良い仕様だといえよう。とりあえず適当なGitのURLを入力して処理を継続する。

リポジトリの設定画面。選択できるリポジトリから、適合するものを選択する(右図)

SSL証明書があるなら設定し、ドメインがあるならドメインも次の段階で紐付けられる(左図)。その後はアプリの確認画面へ推移(右図)

するとアプリのページに、作成したアプリが登場する

アプリを追加したあとにデプロイページを表示すると、対象のアプリとして作成したアプリが選択できるようになっていた。作成したアプリを指定してさっそくデプロイを実行。裏で何が起こっているのか調べるために、サーバーにログインした状態で動作しているソフトウェアを監視していたところ、どうやら指定したリポジトリからデータをダウンロードしてきてサーバー内に配置していることがわかった。名前の通りデプロイ作業を代替して行ってくれる機能のようだ。

アプリのデプロイを実施(左図)。すると右図のように自動的にファイルがデプロイされる

自動生成されたNginxの設定ファイル(左図)。なお、アプリの種類としてStaticを設定した場合、右図のようにアプリのルートディレクトリにリポジトリの内容を展開する仕組みになっているようだ

デプロイ時にはautomation_agent、git、dpkg、chef-soloなどのプロセスの負荷が高くなっていたので、まさに人間が手動でやるようなソフトウェアのインストール作業やコンテンツのデプロイ作業をAutomation側で自動的に処理してくれたようだ。

GitやSubversionで提供されているソフトウェアであれば、数回のクリックでそうしたアプリケーションがインストールされたサーバーを作成できることになる。これは馴れてくればかなり使い勝手の良いプラットフォームといえる。

自分だけのサーバー・テンプレート機能!

今回の作業を通じて、ニフティクラウドAutomationは、自分だけのサーバーのテンプレートを作れる機能になるのではないか、という感触を得た。同じようなセットアップを繰り返すタイプのサーバーを構築する場合、それぞれの種類ごとにスタックを用意すればよいことになる。カスタマイズすればいろんなことができそうだが、デフォルトのレイヤーだけでも十分使いやすい環境が作れそうだし、工数の削減に大きく役立つだろう。

実際にどのようにサービスが連動するのかは、Chefにあまり詳しくないエンジニアは面食らうかもしれないが、サーバーにログインして内部で何が起こったのか調べればすぐに把握できることなので、よくわからなくなったらssh経由でログインして中を見てみれば良い。

この機能は特に、繰り返し同じようなサーバーのセットアップを求められるようなチームでの開発作業やその運用などにおいて、役立つのではないかと思った。まったく同じではないものの、利用の目的としてはVagrantに結構近いのではないだろうか。Vagrant的な機能を実際に本番環境として運用できる状態で利用できるのはなかなかに利便性が高い。ニフティクラウドを使っているならぜひ一度使ってみて欲しい機能といえる。

今回で、ニフティクラウドAutomationの特徴やその有用性についてはチェックできた。次回は実際の運用レベルでの検証として、Webサイトの構築をテーマにこのニフティクラウドAutomationを用いて行ってみる。実用の面において、ニフティクラウドAutomationがどこまで有用に働くのか、チェックしていきたい。