3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

18
これまでに見てきたようなクラウド・システムを実現するために、いくつかの技術が活用されています。 ここでは、主要な3つの技術、マルチテナンシー、MapReduce技術、分散データベース技術の概要を見てみましょう。

Upload: enpel

Post on 31-May-2015

272 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

これまでに見てきたようなクラウド・システムを実現するために、いくつかの技術が活用されています。ここでは、主要な3つの技術、マルチテナンシー、MapReduce技術、分散データベース技術の概要を見てみましょう。

Page 2: 3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

クラウドでは、共通のサービス提供基盤に対し複数の利用者がネットワーク経由でアクセスして該当するサービスを利用することになります。「マルチテナンシー」とは、このように複数利用者が共通の基盤を利用する際、それぞれが利用するサービス・インスタンスが、共通基盤上で論理的に区切られて提供されることをいいます。(従来のように、利用者ごとに環境が用意されることをシングルテナントといいます)マルチテナンシーを実現するためには、サーバーによるプロセス実行部分と、データ部分とに分けて実現方法を検討する必要があります。

Page 3: 3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

マルチテナンシー実現の際、プロセスの実行部分については、図の①~④の実装方法が考えられます。①から④に行くにつれ、共通に利用する部分が減り、より安全な運用が可能となります。一方でコスト面では、なるべく共通に使える部分を増やしている①のほうがメリットがあります。マルチテナンシーを実現するにはこのように複数の実装形態が考えられ、サービス提供基盤として満たすべきセキュリティーレベルや環境構築・運用に費やせるコストに応じ、実装形態を選択していくことになります。

Page 4: 3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

マルチテナンシー実現のためのデータ部分の実現方法も、複数のパターンがあります。共通部分が多い①がコスト面では有利となります。一方セキュリティー面では、アクセスしてくる利用者毎にDBサーバーをたてる④が一番安全な実装ということになります。このように、プロセス実行部分、データ部分とも実装方法に複数のパターンが存在し、サービス提供基盤として満たすべきセキュリティー・レベルや利用可能な構築・運用コストに合わせ、最適な組み合わせを選んでいく必要があります。

Page 5: 3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

Google社ではこの技術を用いて、世界中から集めてきたWebページの解析を行い、ページ検索に必要なインデックスの作成やページのアクセスログの解析などに応用しています。 MapReduce <http://labs.google.com/papers/mapreduce.html >MapReduceではプログラムの実行基盤が提供され、その実行基盤でプロセスの並列化やデータの分散化、フォールトトレランス、入出力のスケジューリング、処理ステータスの監視等を自動的に行ってくれます。そのため、ユーザー側ではそれらの動作についての準備をする必要はなく、分散データ処理に必要なMap関数とReduce関数とを定義するだけで、簡単に大規模データの分散処理が行えるようになります。

Page 6: 3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

まずは入力される値がMap関数により複数の(Key, Value)の値のリストに変換(Map)されます。ここでMがMap関数で、k1, k2, k3, k4...がKey、それぞれのKeyの値がvで示されています。点線で囲まれた各Mapタスクが実行されている部分がそれぞれ別のノード(サーバー)に分散されて行われている処理になります。(Key, Value)に変換されたリストは、Keyの値に基づきシャッフルされ、同じKeyを持つ値が集められます。集められた同一Keyの値は、Reduce関数で各値の集約を行い、新たな(Key, Value)のペアを出力します。これら一連のMapとReduceの処理を繰り返すことにより必要な結果を得ます。

Page 7: 3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

MapReduceのフレームワークを図示したものです。ユーザーが定義するものはMap関数とReduce関数であることは述べましたが、そのMapReduceのプログラムをMasterノードに投入します。Masterノードでは必要な処理を複数のタスクに分割し、分散されたノード上でそれぞれの処理(Map処理とReduce処理)を行います。

Page 8: 3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

ここでは入力された文書中に出てくる各単語の出現回数をMapReduceを用いて解析する例をご紹介します。

(Key, Value)として、(”ファイル名”, “This is a pen. That is a book.”)という値を入力すると、一連のMapReduce処理により、単語ごとの出現回数を表した(“単語”, “出現回数”)のリストが出力されます。

Page 9: 3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

最後に「分散データベース」技術について見てみます。従来のWebアプリケーション・システムは、分散して受け付けたリクエストが1つのデータベースに集中してアクセスしてくる形になるため、データベースのパフォーマンスがボトルネックとなってしまいます。そのため、アプリケーション・サーバーだけでなく、データベースも分散して処理を行うことが考えられます。ところが、この場合、アプリケーション・サーバーはリクエストを受け付けた際、分散して配置されているどのデータ・ベースサーバーに対して問い合わせを行えばよいかがわからなくなってしまいます。

Page 10: 3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

このような場合のひとつの解決策として、データベースの表をキー毎(行毎)に分割して各サーバーに配置する方式があります。このページの例では、5台のデータベース・サーバーが用意されており、データは顧客IDの値に応じて5台のデータベース・サーバー上に分散して配置されます。これにより、アプリケーション・サーバーは、顧客IDをもとにどのデータベース・サーバーに該当するデータがあるかを特定できるようになります。

Page 11: 3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

ところで、このようにデータを配置する場合、分散データベースの台数を変更すると何が起きるでしょうか?

図中の赤いセルは、前ページの時からデータが変わっている箇所を表しています。このままではデータベース台数を変更する毎に、ほとんどのデータを再配置する必要が出てきてしまいます。

Page 12: 3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

このような状況を回避する方法として、コンシステント・ハッシングという考え方があります。これは、キー(前出までの例では顧客ID)とデータベース・サーバーの番号のハッシュ値をそれぞれ計算し、そのハッシュ値をリング状に配置、各キーのデータをそのリング状にマップし、そこから時計回りに移動して最初に行き当たるデータベース・サーバー上にそのキーのデータを配置します。これにより、サーバーの増減があっても限定的なデータベース・サーバー上だけでデータの再配備を行えば済むようになります。

Page 13: 3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

クラウド・コンピューティングでは、今後複数のクラウド環境が連携してひとつのサービスを提供していく、ハイブリッド型でのサービス提供に向かっていくことが考えられます。その際、重要になるのは各クラウド・サービスを連携して稼動させていくための仕様の標準化です。ここではいくつかのクラウドの標準化に向けた動きについて紹介します。

Page 14: 3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

Open Virtualization Format (OVF)は、仮想マシンの可搬性を高めるための統一化された仕様です。Dell、IBM等が中心となり2007年秋より策定を進めており、2009年3月に第1版がリリースされました。この仕様に基づき仮想マシンのイメージファイルをパッケージングすると、異なる仮想プラットフォーム間でも同一のイメージファイルを動かすことが可能となります。Open Virtualization Format Specification < http://www.dmtf.org/standards/published_documents/DSP0243_1.0.0.pdf >

Page 15: 3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

Open Cloud Manifestoは、クラウド・コンピューティングのオープン性を確立するための原則としてまとめられたマニフェストです。 オープンなクラウド環境を実現するための4つのゴールと6つの基本原則がまとめられています。2009年3月に発表され、IBMなどをはじめとする多くのICT企業がこの方針に賛同しています。

Open Cloud Manifesto < http://www.opencloudmanifesto.org >

Page 16: 3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

Cloud Computing Incubatorは、クラウド・コンピューティング環境の管理や相互運用性の仕様を策定することを目的として創設された組織です。OVFの仕様策定を進めているDistributed Management Task Force (DMTF)のリードのもと2009年4月より活動しています。クラウド・コンピューティングのユースケースやリファレンス・アーキテクチャ、サービスのライフサイクルについてまとめた文書、"A White Paper from the Open Cloud Standards Incubator v1.0"を2009年11月に発表しました。DMTF Cloud Management< http://www.dmtf.org/standards/cloud >

Page 17: 3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

Cloud Security Alliance (CSA)は、2009年3月に設立されたNPO団体で、クラウド・コンピューティングのセキュリティについて理解を深めるための共通の基準を策定しています。

現在、リスク管理や相互運用性等、セキュリティに関する13の分野を対象に検討を進めています。Cloud Security Alliance (CSA) < http://www.cloudsecurityalliance.org/ >

Page 18: 3 クラウド・コンピューティング特論 第3章 クラウドの技術と動向

以上で学習は終了です。