Web開発とクラウド/仮想化技術
クラウド・コンピューティングとWebシステム
第4回では、クラウド・コンピューティングとWebシステムの仮想化について解説します。
クラウド・コンピューティングは、いまIT業界で最もホットな話題であると言えます。ITにかかるコストを下げる手段として、またITシステム構築のスピードを高めてビジネスを加速する手段として大きく注目されています。
IT業界の新しい用語の多くがそうであるように、「クラウド・コンピューティング」という言葉もまたさまざまな定義を持ち、人ごとに異なる使われ方がされています。
最初に「クラウド・コンピューティング」という用語が登場したときには、「インターネットを介してコンピュータをサービスとして利用すること」を指す言葉として使われました。従来は利用者のローカルの環境に置かれていたデータやプログラムをサーバー上に置き、ブラウザを介してインターネット経由で利用するのです。これは「ネットワーク・コンピューティング」や「SaaS(Software as a Service)」を言い換えたものとも言えます。
エンタープライズ環境における「クラウド・コンピューティング」という用語は、もう少し広い意味を持って使われます。利用者が直接使用するクライアント側のデータやプログラムをクラウドに移すだけではなく、サーバー環境もクラウド上に置くというものです。クラウドからは、標準化されたサーバー環境を、必要なときに、短時間で入手することにより、サーバーの構築コストや運用コストを削減できます。
企業のIT部門から見た「クラウド・コンピューティング」が従来のITシステムと最も異なる点は、サーバーの利用方法の変化です。それは「事前に設計/サイジングして、用途ごとにハードウエアを調達して構築する」という利用スタイルから、「必要になった時に、必要なだけ、サーバーを資源(リソース)として利用する」という利用スタイルへの変化です。これにより、ビジネスのスピードにITシステムを迅速に追随させることができるようになります。
もちろん企業のすべてのITシステムを直ちにクラウド環境に移行するのは現実的ではありません。クラウド環境には、スケール・アウトによる性能向上は得意でもスケール・アップによる性能向上はほとんど望めないなどの特性があるからです。そのなかでWebシステムはクラウド環境での実行に適したシステムと言えます。分散実行が容易でスケール・アウトに適していること、システムの変化が早いこと、利用負荷が短期間に増減しやすいことなどの特徴が、クラウドとの親和性の高さにつながっています。
「クラウド・コンピューティングを始めるなら、まずWebシステムから」というのは、どの企業にも共通する大原則と言えるでしょう。
パブリック・クラウドとプライベート・クラウド
クラウド・コンピューティングには、クラウド・プロバイダが提供する環境を使う「パブリック・クラウド」と、自社内に構築した環境を使う「プライベート・クラウド」があります。
パブリック・クラウドには、米IBM(および日本アイ・ビー・エム)(以下、IBM)が提供する「マネージド・クラウド・コンピューティング・サービス(MCCS)」や米Amazon Web Servicesが提供する「Amazon EC2/S3」、米Googleが提供する「Google App Engine」などのサービスがあります。パブリック・クラウドには、ハードウエアを企業で所有する必要がない、ハードウエアのメンテナンスや障害時の対応を自社で行う必要がない、などのメリットがあります。
一方、セキュリティやプライバシの観点から社外にITシステムを置くことが好ましくないケースがしばしばあります。また、パブリック・クラウドでは社外ネットワークを経由することによるパフォーマンスの劣化や、可能なカスタマイズの制限などもあり得ます。そのため自社内にクラウド環境を構築するプライベート・クラウドの利用も、多くの企業で検討/実施されています。また既存環境を活用できるケースなどでは、プライベート・クラウドの方がコストが安くつくこともあります。
IBMのクラウド・コンピューティング
IBMでは、クラウド・コンピューティングを実現するための要素として「仮想化」「標準化」「自動化」の3つをあげています。
「仮想化」は、ディスクやCPUなどの物理リソースを、下位レイヤー内に分離して管理します。これにより、システムの自由度が増します。従来のシステムでは、ある用途で使用していたサーバーを別の用途に転用するためには、大きな工数が必要でした。これに対し、仮想マシンが使用していたハードウエア・リソースを別の仮想マシンに転用するのは容易です。
「標準化」は、サーバー構築などにおけるITサービスのプロセスを標準化し、サービス・カタログ化します。構築するシステムごとにOSやミドルウエアを別個に選定したり、その設計を行ったりする必要性を取り除きます。
「自動化」は、サーバー環境の利用申請から提供までを自動化し、スピード・アップします。従来は手動で行われていたインストール作業などを解消し、IT部門の省力化を図ります。また、サーバー環境の構築にかかる期間も、数日から数週間かかっていたものを、仮想化技術との組み合わせにより数分から数時間に短縮します。
IBMでは、これらの機能を実現するための製品やサービスを幅広く提供しています。コラボレーションや開発/テストなどの用途ごと、パブリック/プライベート・クラウドなどの種類ごとに製品/サービス群を公開していますので、ぜひご覧ください。
次ページからは、アプリケーション・サーバーに仮想化技術を適用することで実現できるWebシステムの例として、パブリック・クラウド・サービスやプライベート・クラウド製品、アプリケーション・サーバー環境の自律運用について解説します。