クラウドとは何か?

はじめに

クラウドと聞いて何を想像しますか?
IT系でも違う分野の専門の方や、仕事でなんとなく使っている方などは、もしかしたら「インターネット上にあるストレージサービスかなあ?」とか、「メールでGmailなんてよく使うなあ」なんて想像する方もいらっしゃるのではないでしょうか?
もちろんストレージサービスやGmailは立派なクラウドサービスと言えるでしょう。
ただインターネット上ではあまりにたくさんのサービスがありすぎて、なんとなくクラウドのもつイメージがボンヤリとしてしまうというのは、初学者の方の誰もが思うことでしょう。
本記事では「クラウドコンピューティング」というものを特徴と技術の側面から見ていき、クラウドに関するボンヤリとしたイメージを払拭して、理解を深めて頂くことを目的としています。
ではさっそく見ていきましょう。
※クラウドとはクラウドコンピューティングの略称と考えて頂いて構いません。

クラウドコンピューティングとは?

クラウドコンピューティングとは言ってしまえば、インターネットを通じて外部の巨大サーバーに情報処理を行わせる方法です。
クラウドを語る上でインターネットの存在は欠かせません。
どうして「クラウド」と言われるのでしょうか?
みなさんも普段なにも気にせず、Gmailなどを利用するかと思います。
私達はインターネットに接続して、アカウントにログインし、メールを確認し、メールを送信します。
しかし、その1連の動作の背後ではたくさんのプログラムが走っておりますし、たくさんのデータがデータベースから参照されていますが、我々には全く意識する必要がありません。
さらに、サーバが何台あって、どういったセキュリティで、などということは全くのブラックボックス状態です。
このようにインターネットの向こう側で実際何が起きているか利用者側からはわからない、まるで雲のような存在だったため、「クラウド」と呼ばれるようになりました。

クラウドコンピューティングの特徴

クラウドサービスの特徴は従量課金制ということです。
基本的には利用した分のお金だけ払えばいいということになります。
普段Gmailなど個人利用のサービスを利用しているだけだと見えにくいところですが、
会社を経営する視点から見ると、従量課金制は大変有益なことになります。
何故なら、業務の効率性を上げたいと考えた会社があるとします。
「よし、わが社も業務をIT化しよう!!」と決意します。
そしたらまず何が必要でしょうか?
まず、サーバを揃えなくてはいけません。「どれくらいのスペックで何台で~」などと結構大変なことです。
次にIT化したい業務のシステムを開発しなければなりません。業務定義、システム設計、プログラミングなど専門的な知識が必要になります。
誰でも勝手に入って利用できるとなると困りますからセキュリティも必要になりますね。
そして時間をかけて、やっとシステムが完成したら終わりということにはなりません。
残念なことにシステムに障害はつきものです。
システムを正常に動かし続けるために、運用してくれる人が必要になります。
それも半永久的にです。
このように業務をIT化するというのは、
システム導入の初期費用や、開発や保守の人件費、電気代など膨大なコストがかかるのです。
クラウドサービスを利用したら、サービス提供者側がシステムを開発し、定期的にアップデートをかけ、サーバの運用してくれますので、諸々の費用を削減できるようになるのです。
このように従量課金制というのはクラウド最大の魅力です。

クラウドコンピューティングを支える技術

さて、次にクラウドサービスを支える技術を見ていきたいと思います。
想像してみてください。
この記事を見ている方も、Googleのサービスを利用する方が多いのではないでしょうか?
Googleの利用者は6000万人を超えています。
仮に6000万人が同時にググったとします。
普通に考えてリクエスト(我々からの要求)の量を処理し切れず、サーバがダウンしてしまいそうです。
この例は極端ですが、クラウドコンピューティングにはこうした大量のリクエストを処理できるカラクリがあるのです。
まず、クラウドコンピューティングを支える技術その1は「仮想化」です。
仮想化とは何かというと、1つの物理コンピューターに複数の仮想コンピューターを作ることです。
従来では、一つのリクエストに対して一つの物理的なコンピューターで処理していました。
例えば二人の人がGoogleで検索をしようとしたとします。
二人同時にやった場合、一人は前の人が終わるまで待たなければなりません。
二人ではなく、100人いたらどうでしょう?
かなりの時間待つことになります。
ですが、この仮想化によって一つのパソコンに10個の仮想的なコンピュータを作るとします。
そうすると1つのコンピュータが10人分の仕事をしてくれますので、処理速度も10倍になるのです。
さらに物理コンピューターのスペックにもよりますが、任意に仮想サーバの個数を増やすことができ、また最適に処理量を分散させることができます。これをスケーラビリティー(拡張性)があると言い、大量のリクエストを処理するためには大変重要な概念です。
もう一つは分散処理と言われる技術です。
これは、一つのリクエストを何千もの小さな処理に分解して、個々のコンピュータにばらまくのです。
そして、それぞれのコンピュータで処理し、出た結果を一つにに統合して、ユーザーに返します。
この2つの技術を組み合わせることで、大量のリクエストや巨大データの計算を要求されても、リクエストは細かく分断されて、個々のコンピュータに振り分けられ、さらに個々のコンピュータ内のそれぞれの仮想サーバがに処理を分散するので、瞬時に計算し結果を返すことができるのです。
分散処理で有名な技術は「Hadoop」があります。
Face Bookの解析ツール上でサイトへの来訪数やいいね!の数を集計する際に利用されます。
なんと135TBを超えるデータを処理できるのです。
さらにデータセンターで膨大な量のコンピュータを纏めて運用しています。
推定によりますとGoogleの総サーバ数は3000万くらいと言われています。
3000万個のコンピュータにそれぞれ複数の仮想サーバがあるかと想像するとかなり大規模です。
この技術と大規模なデータセンターがあるおかげで大量のリクエストが来ても、
サーバダウンせず、高速にリクエストを処理することが可能になるのです。
これがクラウドコンピューティングを支える技術です。

まとめ

いかがでしたでしょうか?
クラウドというとボンヤリとしたイメージがありましたが、結局のところインターネットを通じて外部の巨大サーバーに情報処理を行わせる方法なのです。
Amazon、Google、SalesForceなどインターネットで利用できる大規模なサービスは、前項で述べた技術に支えられているのです。
今まであいまいだったクラウドも特徴を理解し、その仕組みを理解することで把握しやすくなるのではないでしょうか?
本記事を読んで頂きありがとうございました。
少しでもクラウドに関して理解を深めて頂けたら幸いです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です