第13回:クラウドを使ったシステム構築事例
第12回までのユーカリプタス入門では、Eucalyptusの構築から利用方法までを説明してきましたが、今回からはEucalyptusを活用したシステムの構築について紹介していきます。
まずはじめに、Eucalyptusではなく、クラウドがどのように利用されているかを簡単に紹介します。
■パブリッククラウドでの利用事例
パブリッククラウドとプライベートクラウドを比較した場合、クラウドとして多くの事例があるのは、やはり先発であるパブリッククラウドとなります。パブリッククラウドの多くは、「大量の計算機リソースを必要とするが社内にそのようなリソースがない」「一定期間だけシステムを必要とするがすぐに撤廃する」などの状況で利用されています。
そして、クラウドの利点でもある「計算機リソースをシームレスに変更できる」という特性を活かし、スモールスタートでサービスを開始し、利用規模に合わせてシステム構成を拡大していくという利用形態が一般的に採られています。
また、クラウド上の計算機リソースを利用してシステムを構築するため、システムのためのハードウェア設備を持たなくともクラウド上でシステムを開発し公開することができるようになりました。
これはクラウドのいくつかの特徴のなかでも最大の特徴である「システムの所有からシステムの利用へ」の転換を端的にあらわした事例です。
その結果、システムを所有しないことにより、システム公開のための初期コストを大幅に抑えることができるようになりました。そのため今迄は大規模のシステムを構築する場合はそれなりの資本が必要でしたが、現在では資本が少なくとも大規模システムを構築することが可能となりました。
■事例その1:データ処理のためのクラウド
クラウドを利用することで、一度に大量の計算機を準備して並列処理を行うことが、従来に比べ容易に実現できるようになりました。
有名な事例としては、ニューヨークタイムズ社の画像変換があります。ニューヨークタイムズ社では130年分の記事をスキャンした1100万枚の画像データに対して、クラウドを利用することで、24時間以内というとても短い時間でPDFへの変換を完了させました。
これは社内のサーバーを使った場合は、変換のための計算に4年もかかるところを、この事例ではクラウド上に用意した100台の仮想マシンを利用して並列実行させることにより、期間の大幅な短縮化を実現した例になります。
また、他には3D Stdio MaxやMayaなど3Dモデリングソフトウェアを提供しているAutodesk社も膨大な3D CADデータの検索を行うサービスをクラウド上で提供しています。国内の例としては、大量のレシピデータを提供するクックパッドがログの日次解析業務でパブリッククラウドを利用しています。
クックパッド開発者ブログの2010年3月4日のエントリ「Hive on AWS @ COOKPAD」でログ解析環境構築についてのプレゼンテーション資料が公開されていますので、合わせて参照されるとよいでしょう。
■事例その2:一時的な高負荷のためのクラウド
アクセス数に流動性があるシステムにもクラウドは良く利用されています。たとえば、企業がキャンペーンを行なうためのサイトなどはキャンペーン期間中はアクセス数が増加し終了後は激減する、またはサイト自体が不要になることがあります。クラウドを利用することで、アクセス数の急激な増減に対して対応可能なシステムを提供することができます。
この利用方法での有名な事例としてグリーン家電エコポイントの申請承認サイトがあります。セールスフォース社が1ヵ月でシステム運用まで持って行ったという話でも有名ですが、これもエコポイント制度の開始から終了までの間に発生するアクセス数の急激な増減が発生するサイトのひとつです。
また、このような事例のなかでも際立つ事例として、オンライン年賀状作成サービスであるウェブポがあります。たしかに年賀状は年末年始でアクセスが見込めますが、その他の時期であれば必要がありません。このため、クラウドを利用して年末年始のみサービスを提供し、他の時期は完全に休止状態になります。
■プライベートクラウドとしての利用
これらの事例のいくつかは、そのままプライベートクラウドに持ってくることは困難です。プライベートクラウドでは、企業や団体などの限られたリソースによってクラウドを構築するため、大規模データ処理やスモールスタートなどの概念をそのまま組み込んでも得られるメリットは比較的少ないといえます。
このため、現時点でのプライベートクラウドの利用は大きく3つに分けられます。1つは将来的にパブリッククラウドへ移行するための準備環境としてのプライベートクラウド、もう1つは社内などの閉じたネットワーク──つまりイントラネットでの企業内システムの提供基盤としてのプライベートクラウド、そしてもう1つはシステム開発の迅速化を図るために開発環境をクラウド上で構築し利用するプライベートクラウドがあります。
Eucalyptusを利用することにより、これらのプライベートクラウドを容易に実現することができます。
■移行のためのプライベートクラウド
パブリッククラウドを使ってシステムを構築する場合、前述したようにスモールスタートが実現できるため、開発コストにおけるハードウェアコストを低くすることが可能となりますが、一方で開発期間や規模によっては、パブリッククラウドを利用することが逆にコスト増になる場合もあります。
そのため、企業内に既に存在するハードウェア資源をプライベートクラウドとして活用することにより、パブリッククラウドが必須ではない部分の開発などをプライベートクラウド上で行ない、その後段階的にパブリッククラウドへ移行するという手法をとることによって、開発コストを抑えることもできます。
また、将来的にパブリッククラウドに現行のシステムを移行したいが、移行のためのフィージビリティを取りたい(実現可能性を検証したい)などの場合にプライベートクラウドを活用することもできます。
EucalyptusはAmazon EC2と同様にXenを使って仮想マシンをホストすることができ、APIも互換性がありますので、クラウドならではのオートスケールアップおよびオートスケールダウンの仕組みを備えたシステムをEucalyptus上で開発および検証し、その後Amazon EC2へ移行することで開発コストをさらに削減することが可能です。
また、システムの一部だけパブリッククラウドに移行し、残りをプライベートクラウドに配置するシステム構成を行なうといったハイブリッドクラウドの構成をとることもできます。
移行のためのプライベートクラウド |
■社内サービス提供のためのプライベートクラウド
社内など閉じたネットワーク上に存在する様々なサービスやサーバを統合する用途にもプライベートクラウドは利用されます。
業務効率化のための社内サービスを提供するために、企業内では様々なサーバが分散して構築されているところが多いですが、そのような場合、新しい社内サービスを立ち上げる際にはハードウェアの調達から既存システムとの統合、またはサービスのリプレイスなどを検討する必要があります。
プライベートクラウドを社内システムの基盤として利用することで社内に存在する雑多なサービスを単一のクラウドで一元管理することができます。
たとえば、社員の給与を管理する人事・給与サービス、スケジュールやWebメール、設備予約などを統合したグループウェアサーバー、遠隔地での打ち合わせなどを行うビデオチャットサーバー、SIPを用いたテレフォニーサーバー、案件管理や顧客管理を行う営業支援サービス、それらの統計情報をまとめるデータマイニングサーバー、そして各種社内サービスの窓口となるポータルサービスなどが社内システムとして企業内に存在していますが、これらをプライベートクラウド上に構築することで管理コストの低減とシステムの入れ替えコストの低減を図ることができます。
社内サーバ統合 |
■システム開発のためのプライベートクラウド
システム開発の現場にとってもプライベートクラウドは非常に有用です。
多くのSIerは社内で開発するための標準やノウハウを持っており、クラウドを利用することで仮想マシンイメージのテンプレートという形で標準やノウハウを具現化した状態で保持することができます。
また、新しくプロジェクトを立ち上げる際にも開発環境の整備にかける時間を大幅に短縮することができます。開発で利用するプロジェクト管理サーバやタスク管理サーバを仮想マシンイメージとして保存しておくことで、インスタンスの起動のみで環境整備を完了することができます。
プロジェクトごとにセキュリティグループを分けることにより、他のプロジェクトの開発に影響されず分離されたネットワークで開発を行うことができます。
システム開発時の試験環境としても、プライベートクラウドは利用可能です。様々なOSやミドルウェアの組み合わせを用意することで、環境の入れ替えが必要なポータビリティの試験が容易に実施できますし、大量のアクセスを発生させる負荷試験においても、クラウドを利用することで負荷環境の実現が容易になります。
開発したシステムを公開する環境もクラウドにすることで、プロジェクトをまたがった社内共通サービスなどを提供することが容易になります。たとえばアクセスログ解析のサービスやシステムの運用監視サービスなどの共通化があります。
開発クラウド |
■Open Source Systemへ
現在、パブリッククラウドでは新しいソフトウェアの提供方法としてソフトウェアがインストール済みの仮想マシンイメージをパブリッククラウドに配置し、提供するといった手法がとられています。
今後、プライベートクラウドが普及するとともに、パブリッククラウドでの提供方法と同様にソフトウェアをダウンロードする手法からソフトウェアがすでにインストール、構築された仮想マシンイメージをダウンロードする手法が主流になってくる可能性があります。これを筆者はOpen Source Softwareのようにサービスやシステムをオープンに展開するOpen Source Systemと呼んでいます。
次回からEucalyptusを使ってプライベートクラウドの有効的な活用方法のご紹介とあわせて、Open Source Systemの一環として記事で利用した仮想マシンイメージを配布したいと思っております。
■マシンイメージ工房
筆者の唱えるOpen Source Systemの1つの実現場所として、マシンイメージ工房<http://eucalyptus.machine-image.com>というサイトを本日オープンしました。
前述したように、次回からEucalyptusを使ってプライベートクラウドの有効的な使用方法の紹介をしますが、その際に1つ1つのマシンイメージの作り方を説明するのではなく、このマシンイメージ工房で提供および公開されているマシンイメージを使用します。それにより、今後の連載のテーマである「プライベートクラウドの活用例の紹介」になるべく重点を置いて、マシンイメージの使用方法や利用事例などを示していきたいと考えています。
羽深 修 | Eucalyptus歴はまだ1年ですが、周囲からはEucalyptus中毒と勘違いされているようです。Japan Eucalyptus User Groupの活動に参加し、オープンソースカンファレンスでネタなどを披露しています。度々Eucalyptusへのパッチも書いてます。ちなみに仕事ではCentOS + Xenという環境でEucalyptusを利用していますが、自宅のEucalyptus環境はGentoo Linux + KVMで動かしています。 |
志田 隆弘 | 主にEucalyptusやクラウドとはあまり関係のない分野でちょこちょこと活動していました。Eucalyptusはバージョン 1.3の頃からいじり始め、かれこれ2年近くEucalyptusに浸かった生活をしています。Eucalyptus 1.4が出たタイミングで、Tanacasinoという名前のGUIクライアントを作ったりしていました。最新のEucalyptusで動作するので、ぜひ使ってみてください。 |
田中 智文 | 志田さんとともに初期の頃からEucalyptusの調査・検証・使用してきました。志田さんの作成したTanacasinoのメンテナンスと機能拡張を行っています。新婚ほやほやなので家でのハック活動時間が少ないですが、Walrus Clientを作ってみたりbotoを使ってEucalyptusを操作して遊んでいます。 |