編集部注:ニフティクラウド Automationは、2017年11月30日をもって、サービスを終了いたします。詳細につきましては、以下のページをご確認ください。
ニフティクラウド Automationのサービス終了につきまして
はじめまして。ニフティの新米クラウドエンジニア大川です。
みなさんは普段、インフラの構築を行っているなかで、以下のような経験をお持ちではありませんか?
「サービスの開発を早く始めたい!」
「より早くブログを開設して情報を届けたい!」
そんな思いがあるのにも関わらず、上に書いたようなジレンマを抱えているのではないでしょうか?
そんな中、ニフティクラウドでは6月4日にインフラ構築を自動化するCloud Automation(β)をリリースしました。
このCloud Automation(β)を利用すれば、上で述べたインフラ構築のジレンマを解決することができます!
本記事では、Cloud Automation(β)の概要と、基本的な使い方について説明していきます!
Cloud Automation(β)でインフラ構築が変わる!
Cloud Automation(β)では、ニフティクラウドのコントロールパネル上から、インフラの構成が書かれたテンプレートを実行するだけでインフラ構築が可能です。 サーバ作成、ネットワークの設定など実際の作業は、Cloud Automation(β)が自動で実行してくれます。 有名なオープンソースのブログ/CMSプラットフォームであるWordPressを、Webサーバとデータベースサーバを分けた形で構築する場合、 これまでのインフラ構築とCloud Automation(β)でどのくらい変わるのかを比較してみました。
手作業だと手順が多い上に、ApacheやMySQLの設定はコマンド入力で進めていくので、時間がかかるものです。 それがCloud Automation(β)だと、たったの3ステップ!!(※WordPressのインストールは共通の作業なのでカウントしていません) しかも、すべての作業はニフティクラウドのコントロールパネル上で行われる、全体で10分もかからない簡単な作業ばかりです。 インフラ構築の時間を大きく短縮することができれば、より早くブログやホームページの開設が可能になります。
また、一度実行したテンプレートは、使い回すことが可能です。 別のテーマでブログやホームページを開設することになったとしても、実行したものと同じテンプレートですぐにインフラ構築が可能なので 作業が増えることはありません。
Cloud Automation(β)で、インフラ構築の自動化による時間短縮と作業のテンプレート化が可能になると、Webサービスの開発はどう変わるのでしょうか。 時間を短縮できれば、サービスのコア機能の開発期間を増やして価値を高められますし、 作業をテンプレート化しているので、別のWebサービス開発プロジェクトでも、似たような構成はすぐに構築が可能となります。
このように、Cloud Automation(β)による構築の「自動化」と「テンプレート化」が、これまでのインフラ構築をスマートに変えていくのです!
Cloud Automation(β)の基本的な使い方
ここからは、Cloud Automation(β)の使い方を説明していきます。 前の章でも、全てが簡単な作業と述べましたが、ニフティクラウドのコントロールパネルから、インフラの構築が可能となっています。
テンプレートを選ぶ
Cloud Automation(β)が実行するテンプレートは、JSON形式で記述されています。 JSON形式の記述ができる方がヘルプを読めば、テンプレートを一から書いていくことも不可能ではありませんが、Cloud Automation(β)ではよく利用されている基本構成やデータベースの冗長構成、 WordPressなどのアプリケーションを、テンプレートを選択するだけで構築ができるデフォルトテンプレートを用意しています。
以下はその一覧です。
- 基本構成
- 複数台構成1:サーバー2台を作成し、ファイアウォールの設定を行う
- 複数台構成2:ロードバランサーとサーバ2台を作成し、振り分け設定とファイアウォールの設定を行う
- ディスク追加:サーバー1台とディスクを追加した構成を構築し、ファイアウォールの設定を行う
- データベース
- MySQL冗長構成:MySQL5.5で、耐障害性などを考慮した冗長構成の構築と設定を行う
- MySQLシングル構成:MySQL5.5のサーバー1台作成し、設定を行う
- PostgreSQL冗長構成:PostgreSQL9.1で、耐障害性などを考慮した冗長構成の構築と設定を行う
- PostgreSQLシングル構成:PostgreSQL9.1のサーバーを1台作成し、設定を行う
- アプリケーション
- WordPress冗長構成:WebサーバーとMySQLサーバーを分けた構成で、WordPressのインストール準備を行う
- WordPressシングル構成:1台のサーバーを作成して、WordPressのインストール準備を行う
- MODX冗長構成:WebサーバーとMySQLサーバーを分けた構成で、MODXのインストール準備を行う
- MODXシングル構成:1台のサーバーを作成して、MODXのインストール準備を行う
ここからは、WordPressのWebサーバー1台+MySQLサーバー1台構成を構築する例をもとに説明していきます。
(デフォルトテンプレートを選択)
パラメーター入力
テンプレートを選択したら、作成するサーバやMySQLの設定を入力します。 WordPressの冗長構成を構築する場合は、WebサーバーとMySQLサーバーで同一のファイアウォール名を指定できないので注意してください。 また、この時に既存のSSHキーの名前を指定するので、あらかじめSSHキーを作成する必要があります。 あとは、料金や設定を確認してテンプレートを実行するだけです。
テンプレート実行
テンプレート実行後は、メイン画面に戻って実行経過や結果を見ることができます。
テンプレート実行中にエラーが発生した場合にも、このメイン画面で確認することが可能です。
下の画像のようにエラーが発生した場合には、テンプレートを再実行することで、前回実行しなかった部分だけの構築がリスタートします。
つまり、サーバー作成後の設定部分でエラーが発生した場合、テンプレートを再実行した時にはサーバー作成がスキップされるということです。
(パラメーターに英数字以外が入力されてエラーになっていることが確認できます)
テンプレートのステータスが「実行成功」になると、サーバが2台構築され、ファイアウォールも設定されます。
(テンプレート実行後)
WebサーバーにアクセスするとWordPressのインストールをすぐに始められます。
(WordPressのインストール画面が開きました!)
実際にサーバーにログインしてみても、WebサーバーとMySQLが動作していることが分かります。
[root@localhost ~]# ps ax | grep 'httpd'
3158 ? Ss 0:00 /usr/sbin/httpd
3162 ? S 0:00 /usr/sbin/httpd
3163 ? S 0:00 /usr/sbin/httpd
3164 ? S 0:00 /usr/sbin/httpd
3165 ? S 0:00 /usr/sbin/httpd
3166 ? S 0:00 /usr/sbin/httpd
3167 ? S 0:00 /usr/sbin/httpd
3168 ? S 0:00 /usr/sbin/httpd
3169 ? S 0:00 /usr/sbin/httpd
3170 ? S 0:00 /usr/sbin/httpd
3171 ? S 0:00 /usr/sbin/httpd
3172 ? S 0:00 /usr/sbin/httpd
3173 ? S 0:00 /usr/sbin/httpd
3174 ? S 0:00 /usr/sbin/httpd
3175 ? S 0:00 /usr/sbin/httpd
3176 ? S 0:00 /usr/sbin/httpd
3177 ? S 0:00 /usr/sbin/httpd
3239 ? S 0:00 /usr/sbin/httpd
3240 ? S 0:00 /usr/sbin/httpd
3241 ? S 0:00 /usr/sbin/httpd
3242 ? S 0:00 /usr/sbin/httpd
3243 ? S 0:00 /usr/sbin/httpd
3244 ? S 0:00 /usr/sbin/httpd
3245 ? S 0:00 /usr/sbin/httpd
3366 pts/0 S+ 0:00 grep httpd
[root@localhost ~]# ps ax | grep 'mysqld'
2821 ? S 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
3708 ? Sl 0:01 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/localhost.localdomain.err --open-files-limit=1024 --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock --port=3306
4306 pts/0 S+ 0:00 grep mysqld
WordPressのデフォルトテンプレートを利用してCloudAutomation(β)の基本的な使い方を説明しました。
デフォルトテンプレートを選択する以外にも、コントロールパネルからテンプレートを直接編集することもできます。
例えば、Webサーバーの数を増やした構成も、デフォルトテンプレートをカスタマイズして実行するだけです。
ぜひ、ご自身のサービス用途に合わせたインフラ構成をCloudAutomation(β)で自動化してみてください!
(JSONを表示する画面で、テンプレートの直接編集が可能です)
さいごに
今回は、CloudAutomation(β)の基本的な使い方を解説しました。第2弾の解説では、インフラの構築と運用を 自動化するためのフレームワークであるChef-soloを利用した仕組みと、それを活用したCloudAutomation(β)の 一歩進んだ利用方法を、開発者であり社内屈指のChefマスターでもある弊社竹内がご紹介する予定です。
CloudAutomation(β)はインフラ構築自動化ツールとして提供しております。現在、Chefの仕組みを利用した 運用自動化ツールを提供すべく、鋭意開発を進めているところです。お客様の貴重なご意見、ご要望をサービスに 活かし、お役に立てるようなツールを提供していきたいと考えています。
今後ともニフティクラウドをよろしくお願いします!