自社でサーバーを導入して運用管理する必要がないメリットから、多くの企業がクラウドサービスを利用するようになりました。ただ、既存のクラウドサービスに対して不満を感じているユーザーも少なくありません。ここでは、改めてクラウドのメリットとデメリットを振り返り、特にパフォーマンスを要求される場面で活用できるクラウドサービスを紹介します。
ソーシャルゲームベンダーがクラウドに飛び付いた理由
サーバーアプリケーションの実行やサービス提供のためのプラットフォームとして、クラウドをまず検討する「クラウドファースト」が浸透しています。クラウドであれば申し込めばすぐに使える上、サーバールームやデータセンターの場所も不要です。さらに資産として持つ必要がなく、不要になればサービスを解約すればよいという点も大きなポイントでしょう。
ただクラウドサービスが登場した当初から、現在のように多くのユーザーが活用していたわけではありません。むしろどこで運用されているのかが分からない不安感、あるいはセキュリティ上の理由などから、クラウドの導入を見送っていた企業が目立ちました。そうした状況の中、クラウドにいち早く目を付けて積極的に活用し始めたのがソーシャルゲームベンダーです。
PCやスマートフォンといったクライアント端末からインターネット上のサーバーに接続して楽しむソーシャルゲームは、ユーザー数が増えれば増えるほど多くのサーバーリソースを必要とします。このようなソーシャルゲームを物理サーバーで運用する場合、事前に想定したユーザー数などに応じてサーバーを用意することになりますが、ユーザー数が想定を上回ればレスポンスの低下やゲームをプレイできないユーザーが発生することになり、一方で想定を下回れば無駄な投資を行ったことになってしまいます。このように物理サーバーでのソーシャルゲームの提供には、サーバーのサイジングの問題がつきまといます。
しかし、必要なときに必要なだけオンデマンドでサーバーを追加でき、また利用した分だけ料金を支払えばよいクラウドなら、ユーザー数の上限に応じて柔軟にサーバーリソースをコントロールすることが可能であり、サイジングの問題に頭を悩ませる必要がありません。ソーシャルゲームベンダーにとって、これらのメリットは極めて好都合であったことから、クラウドの利用が広がったのです。
多くのユーザーが感じるクラウドの不満を解消したベアメタルクラウド
ただ、その一方でクラウドに対して不満を感じているソーシャルゲームベンダーも少なくありません。不満の理由として挙げられることが多いのは、思ったようなパフォーマンスが得られない、あるいはコストパフォーマンスが悪いといったものです。
多くのクラウドサービスは、サーバー仮想化技術を利用し、物理サーバー上で実行している仮想サーバーを提供する形になっています。ただサーバー仮想化技術では、ハードウェアとOSの間に仮想化レイヤーが入るため、少なからずオーバーヘッドが生じます。また1台の物理サーバーのリソースを複数のユーザーで分け合うため、場合によっては自分以外のユーザーの影響を受けることも難点でしょう。
個々の仮想サーバーで想定したとおりのパフォーマンスが得られないといった場合、より性能の高い仮想サーバーを利用する、あるいは複数台の仮想サーバーを利用して負荷分散を行うといった対策が考えられます。ただ、いずれにしてもコスト負担の増大につながるのが頭の痛いところです。
このような課題を感じているユーザーが注目し始めているのが、クラウドのメリットを物理サーバーで実現した「ベアメタルクラウド」と呼ばれるサービスです。サーバー仮想化技術を利用しないため、物理サーバーが持つパフォーマンスを最大限に活かせるという大きな特長があるほか、従来のクラウドと同様に使った分だけ料金を支払えばよく、資産としてサーバーを持つ必要も当然ありません。
またクラウドの利点として、Webブラウザでアクセスするコントロールパネルやユーザーポータルを利用し、セルフサービスでサーバーの作成や削除(解約)などを行えることが挙げられます。これを実現しているのが、オーケストレーターなどと呼ばれるソフトウェアです。一般的なクラウドサービスでは、ユーザーからの指示に応じてオーケストレーターが仮想サーバーを追加したり、あるいはリソースの変更を行ったりします。同様に物理サーバーをオーケストレーターで制御すれば、物理サーバーでもセルフサービスを実現できます。
サーバー仮想化技術を使うクラウドサービスと物理サーバーを提供するサーバー占有型のホスティングサービス、そしてベアメタルクラウドを比較したのが表1です。ベアメタルクラウドは、一般的なクラウドやホスティングサービスのデメリットを解消し、性能と使い勝手を両立させていることが分かるでしょう。
表1 クラウドと専用サーバー(サーバー占有型のホスティングサービス)、ベアメタルクラウドを比較
| 仮想化オーバーヘッド | 他ユーザーの影響 | スケールアウト | クラウド機能 | 初期費用 | 構成の柔軟性 |
クラウド(laaS) | あり | あり | ○ | ○ | なし | △ |
専用サーバー | なし | なし | △ | × | あり | ○ |
ベアメタルクラウド | なし | なし | ○ | ○ | なし | △ |
クラウドと専用サーバーの弱点を解消し、性能と使い勝手を両立させているのがベアメタルクラウドだ
クラウドのメリットを物理サーバーで実現したサービスが登場
このようにクラウドの課題を解決したベアメタルクラウドには大きな魅力がありますが、一方で難点となるのがサービス提供者側での運用の難しさです。サーバー仮想化技術を使うことで運用作業の多くの部分を自動化できる一般的なクラウドサービスに比べ、物理サーバーを扱うベアメタルクラウドは運用の難易度が上がります。このため、世界的に見てもサービスとして提供されているベアメタルクラウドは決して多くありません。このような課題を克服し、リンクがサービス提供を開始したのが「ベアメタル型アプリプラットフォーム」です。
このサービスでは、ベアメタルクラウドの特長である、物理サーバーをセルフサービスでコントロール可能にするために、サーバーのプロビジョニングなどを行うオーケストレーター部分を独自に開発し、一般的なクラウドサービスと同じように物理サーバーをコントロールすることを可能にしています。
具体的には、サーバーの追加や削除はもちろん、電源のオン/オフやOSのインストールに利用するイメージファイルの管理、あるいはスケールアウト時に欠かせないロードバランサーの設定などをコントロールパネル上から行えます。
テンプレートを使った構築やスナップショットの作成にも対応
クラウドならではの便利な機能も実装されています。その1つとして挙げられるのが、サーバーの内容をスナップショットとしてバックアップできる機能です。たとえばOSやミドルウェアの設定を変えるといった場面で、スナップショットを作成しながら作業することで、仮にミスしてもすぐに元の状態に戻せるため、安心して作業を進められます。
多くのIaaS型クラウドサービスで提供されている、テンプレートを使ったサーバーの構築も可能です。ロードバランサー配下で実行する、複数のWebサーバーをまとめて構築するといった際、あらかじめWebサーバーの内容をテンプレートとして作成しておけば、セットアップの手間を大幅に軽減できるでしょう。
さらに注目したいのは、物理サーバー上にKVMを導入して仮想サーバーを動かすことも可能であるという点です。これまで解説してきたように、サーバー仮想化技術の利用にはパフォーマンス面への影響が発生する可能性がありますが、一方でコストを抑えて複数のサーバーを立ち上げられるなどのメリットもあります。
具体的な利用シーンとしては、実運用前の開発フェーズが考えられるでしょう。開発環境として利用するサーバーをエンジニア1人ずつに割り当てたいといった場合、すべて物理サーバーを使うと大きなコストが発生します。ただ、1台の物理サーバーをそのまま複数のエンジニアで共有するのでは開発効率に影響します。そこでサーバー仮想化技術を利用し、1台の物理サーバーを複数の仮想サーバーに分割、その仮想サーバーを各エンジニアに提供すれば、コスト負担を抑えて効率的に開発が進められるというわけです。
また用途によっては、丸々1台の物理サーバーのスペックを使い切れないこともあるでしょう。この際、KVMを使って複数の仮想サーバーにリソースを分割し、複数の用途で1台の物理サーバーを使うといったことが可能です。
問題が発生した際、物理サーバーであれば原因の特定や対応が容易であることもメリットです。仮想サーバーを使った大規模なクラウドサービスの場合、どうしてもインフラが複雑化するため、障害が発生したときにユーザーが手出しできないだけでなく、復旧までに時間がかかることが珍しくありません。
特にソーシャルゲームのように、外部に対してサービスを提供するためのインフラとして利用する場合、サーバー環境にトラブルが発生すれば機会損失に直結するため、その影響は甚大です。しかしベアメタル型アプリプラットフォームであれば、多くのサーバーを安定稼働させてきた信頼できるデータセンターで運用されているのはもちろん、エンジニアが24時間365日体制で運用監視を行い、トラブルがあれば迅速に対応するため、安心して利用することができます。
次回以降は、ベアメタル型アプリプラットフォームが提供している機能の具体的な使い方や活用例などを紹介していく予定です。