これまで数回にわたってニフティクラウドを使ってきた。ここまで使ってくるとだいたいニフティクラウドのUIがどういった設計思想で開発されているのかが見えてきて、勘に頼って作業するだけでもかなりのことがこなせるようになってくる。今回は、前回取り上げたニフティクラウドAutomationを使って、実際の運用レベルを構想したWebサイトの構築を行ってみる。複雑なシステム構築/運用においてかなり価値の高いサービスといえるので、本稿を参照のうえで是非使いこなしていただきたい。
なお、ここでは次のようなモデルのWebサイトを構築する。
- ロードバランサーを活用した分散処理を実施
- バックグラウンドサーバーを2台用意(Nginx on Ubuntu)
- コンテンツはHTML5/CSS3/JavaScriptをベースとし、GitHubでバージョン管理を実施
HTML5/CSS3/JavaScript(ここでは特にBootstrapを採用した)を使った、いわゆる最近流行っているUIをもったWebサイトをGitHubで管理する方法を想定した。エンタープライズユースであればGitHubの有償版サービスを利用してプライベートリポジトリを利用することになるだろう。
このリポジトリをアプリとして登録して、2台のWebサーバーへデプロイする。フロントエンドのアクセスはロードバランサーとし、アクセス負荷の分散を実施する。Webサイトの開発自体はGitHubを経由して複数名で同時に実施し、デプロイにはニフティクラウドAutomationの機能を利用する形だ。最近流行のDevOpsをベースとした開発運用スタイルを想定したモデルになっている。
環境をセットアップ
先に説明した構造をもったスタックを作成する。このあたりの作業は前回説明したものとほとんど同じなので、詳しい説明は前回の記事をご参考いただければと思う。前回取り上げた内容とちょっと異なっているのは、レイヤーでロードバランサーを作成しているところだろう。しかし、ここまで作業できているなら、特に困ることなく作成できるスキルが身についていると思う。
スタックという概念が必要なのかどうか最初は半信半疑だったが、いったんこの概念に慣れてしまうと、スタックのない状態、つまりサーバーやロードバランサーなどを個別に関与する状態の方が不便に感じてしまう。特に作成するサーバーの台数が増えてくるとその感覚が顕著になってきた。プロジェクトごと、または目的ごとに「スタック」というまとまりがあることで、システム全体がすっきりとわかりやすくなっている。このあたりは使い込まないと見えてこないポイントではあるものの、ニフティクラウドAutomationの大きな利点であるといえよう。
ここでロードバランサーを作成する。後で作成してもよいのだが、ロードバランサーはレイヤーで作成する仕組みになっているので、とりあえずこの段階で作成しておく。ただし、まだサーバーを作成していないので、ロードバランサーの対象になるサーバーに関しては後ほど設定することになる。
ロードバランサーを作成したところで、今度はサーバーページに移行してWebサーバーを2台作成しよう。
サーバー2台の作成が完了したら、次はアプリを作成する。ここではGitHubに仮のリポジトリを用意したので、それを利用する。Bootstrapのサンプルページをベースにした、簡単なWebサイトのトップページといった内容になっている。
ここまで来たら最後にデプロイを実施する。
サーバーも作成したので、ロードバランサーにサーバーを追加して仕上げを行おう。
すでにページが閲覧可能な状態に。ロードバランサーも動作中
この状態で、作成したサーバーとロードバランサーの双方のIPアドレスにアクセスすると、同じ内容のコンテンツが表示されることを確認できる。用意したリポジトリ直下にindex.htmlファイルを作成してそこにコンテンツを書いてあるので、デプロイしただけでページが表示されたわけだ。
リポジトリをクローンして内容を書き換え、これをマスタに反映させてみる。次はこの反映がサーバー側にも伝えられるかどうかを確認しよう。
このように、デプロイもアップデートもコマンド一発で完了することが確認できた。これはチームで開発する環境を整えるうえでとても便利だ。
これは癖になる ニフティクラウドAutomation!
ロードバランサーを採用した運用を実施しながら、Webデザイナー、コーダー、運用担当者、企画担当者らがチームを組んでWebサイトの開発を実施するとなると、一見とても面倒なことが起こりそうに思われる。しかしここまで見てきたように、プラットフォームそのものは画面をクリックしていくだけで簡単に用意できる。アクセス数が高い場合でもロードバランサーを活用すればスケールアップでき、さらにコンテンツの同期もデプロイページから簡単に実施できる。
同じことをすべて手動でやろうとすればなかなか手間のかかることになるが、ニフティクラウドAutomationはこれの大部分を自動化できるので、複雑なシステム構築/運用においてかなり価値の高いサービスといえる。しかも今回は、カスタム機能は使わないですべてデフォルトの機能だけを使っている。用意されている機能の一部を使うだけでここまでできるのだから、カスタム機能を使えば案件ごとのレアな要求にも対応できるだろう。すでにニフティクラウドのユーザーであれば、Automationの機能※は一度は使ってみてほしいところだ。まだニフティクラウドを使っていない方でも、現在は利用料が7万円分無料のキャンペーンも行っているようなので、この機会に試してみるのもよいかもしれない。