実際の運用とスケール
本連載もすでに3回目を迎えた。
「導入は本当に容易なのか?」においては、ビジネスシーンで戦っていくためにクラウドサービスが有効であることを紹介し、仮想サーバーを立ち上げるまでを実践した。その次の「Webサーバー/DNSを用意し、Webサイトを立ち上げる」では、実際にニフティクラウドを使ってWebサーバーやDNSサービスを提供するまでを紹介し、ニフティクラウドによるシステム構築作業が概ねイメージしていただけるようになったのではないだろうか。
さて、システム構築を終えると当然ながら運用が始まる。運用を進めていると、仮想サーバーのパワーが不足していたとか、キャンペーンにより発生した高負荷状況に耐えられそうにない、といった話がよく出てくる。そして、こうしたケースを簡単に乗り切れてこそ、本当に使えるクラウドサービスということになる。
そこで今回は、サーバーのスケールやセキュリティ設定などに注目しながら、実際に使えるサービスであるかどうかを検証していこう。
サーバータイプの変更によるスケール
クラウドサービスの魅力の1つにサーバーのプランを変更することでマシンパワーを自由に変更できることが挙げられる。負荷が高くない時期には安めのサーバーでサービスを提供し、負荷が高くなる期間だけ高性能のサーバーを使う、といった運用をすることで費用効率の高いサービス運用を実現できる。
問題はその切り替え作業の負荷だが、先に結果を言うと、ニフティクラウドではその作業がとても簡単だった。
以下、その手順を紹介しながら、UnixBenchで計測したパフォーマンスの変化を示していこう。
なお、UnixBenchはこういったケースで実行環境の性能を示すために使われることが多い手軽なソフトウェアだ。利用するには、まず、次のようにUnixBenchのソースコードをダウンロードしてきてビルドする。
ビルドが完了したらカレントディレクトリにRunという実行スクリプトがあるので、これを実行してベンチマークを実施する。
まずはもっとも廉価なサーバーであるminiで実行。インデックススコアの値は626.0と報告されている。
では、サーバーを変更する。ニフティクラウドのダッシュボードからサーバータイプを選択する。ここでは次のようにminiからsmallへと変更した。
作業はプルダウンメニューからサーバーのタイプを変更してOKボタンを押すだけ。ゲストOSの方はサーバータイプの変更に合わせて自動的に再起動が実行される。
サーバータイプを変更した状態でUnixBenchを実行すると次の結果が得られた。
UnixBenchのインデックススコアは1793.8だ。単純計算で3倍ほど高速ということになる。サーバーの種類はまだまだ豊富に用意されているので、サーバータイプを変更するだけで容易にスケールできる。多くの用途ではこの操作だけで必要になる性能がまかなえるのではないだろうか。
運用を考慮したセキュリティ/ファイアウォールの設定
試用段階ということで、第1回と第2回ではセキュリティに関してはほとんど言及しなかったが、本番環境での運用となればセキュリティ部分を固める必要がある。通常、ファイアウォールはOSごとに提供されているのでそれを使えばよいということになるが、クラウドプラットフォームではサービスとしてファイアウォール機能が提供されていることが多い。これは、ニフティクラウドでも同様だ。
クラウドサービスが提供しているファイアウォール機能を使うと、OSの差を意識する必要がなくなるという利点がある。ファイアウォールの実装にはいくつかある(ipfw、ipfilter、pf、iptablesなど)ため、使用するOSごとに別のシンタックスと別の概念のもとで設定を組む必要があるが、その部分をクラウドサービスで吸収することができると、複数のOSを管理する場合の実務が軽くなる。
ということで、早速ファイアウォールを設定してみよう。
初期設定では、ファイアウォールは何も設定されていない。
ダッシュボードからファイアウォールを選択して新規作成。
サーバーとファイアウォールを結びつけた段階ですべてのアクセスが遮断されるので、使いたい接続に関してのみ開通させるという作業を行う。
例えば、接続元種別にIPアドレスを指定し、IPアドレス・グループに会社のIPアドレスを指定すれば、会社からのアクセスに限定して開通することができる。
ユーザーとのセッションを維持して受け入れる通信を選定する"ステートフル"なファイアウォールを利用する場合などには、OSが提供しているファイアウォール機能を使う必要があるが、基本的な機能だけで十分ならこちらを活用するとよいだろう。
サーバーを複数台へスケールさせる
さて、ときには高性能のサーバーを使っても性能が間に合わない場合もあるだろう。その場合、複数のサーバーを作成して負荷処理を分散する必要が出てくる。
ニフティクラウドではその作業もとても簡単だった。メニューからサーバーのコピーを選択するだけで簡単に複製できる。
ロードバランサー機能で簡単スケール
ニフティクラウドは、ロードバランサーの機能(ラウンドロビン、接続数)も提供している。したがって、ロードバランサーをフロントエンドに挟むだけで対応できるケースでは、サーバー側のソフトウェアの変更すら必要なく、必要な性能が得られるまでサーバーをコピーして、それらをロードバランサーの対象に追加するだけでスケールが完了することになる。
手順は以下のとおりだ。
なお、Nginxなどを使っていればそちらの設定でも処理の分散ができる。いずれにせよ、サーバーそのものを簡単に複製することができるので、台数を使ったスケールも十分に活用できそうだ。
ここまでの作業を通じて、ニフティクラウドでは数分でサーバーを構築して運用をはじめることができ、そして大規模アクセスに対してスケールするシステムの構築も簡単にできるといったことがわかった。
質実剛健、実用的なニフティクラウド
本シリーズでは「現場で使える技術であるかどうか」という点に重きをおいて、マニュアルや検索などによる情報を得ることなく、いきなりシステムを使い出してどこまでシステムを構築できるかに取り組んできた。
これまで示してきたように、サーバーの作成からシステムのセットアップ、複数台のサーバー作成とロードバランサーを使った負荷分散まで、特に問題になることなく作業できた。直感的で扱いやすいサービスだ。
現在のビジネスシーンで求められる開発速度はますます速くなってきており、本来であれば基礎技術や基礎知識の習得、訓練、活用などをしながら、現場での経験値を重ねていきたいところだが、それほど悠長なことは言っていられない現実がある。落ちてくる要望に対して即座に対応して形にしなければならない。「仕事は道具にあり」という言葉があるように、現在のビジネスシーンで活躍していくには「道具」を選んで使う必要がある。
ニフティクラウドでは、そうした「使える道具」として活用できるという感覚を得た。道具は使い方次第でいくらでも効果が変わるものだが、ニフティクラウドをそういった便利な道具の1つとして認識してもらえればと思う。
エンジニアリングはまずは手を動かすところから始まる。ニフティクラウドでは新規申込特典など無料でお試しできるキャンペーンも用意されているので、そうした特典を利用して実際にニフティクラウドを体験してみてはいかがだろう。