Milkのメモ帳

日々の思いつきを忘れないようにのメモ用です。

Milkのメモ帳

クラウドって何のことだろう?


f:id:maxminkun:20160822095907j:plain

最近では一般的な用語になってきた”クラウド”

では、クラウドって一体何なんでしょう?

実はさほど難しい話ではありませんし、近年突然に現れた技術というわけではありません。

では、クラウドについて少し解説をいたしましょう。

クラウドとは雲のこと

何言ってんだ?と思いますよね。

はい。すみません・・・

しかしながら、この”クラウド”という概念は、本当に雲のように遠い存在という意味で使用されています。

コンピュータは接続する時代へ

以前、インターネットについて解説をしました。

www.milkmemo.com

今や、コンピュータは互いにインターネットを通して通信を行うことが当たり前になりましたね。

さて、こうやってコンピュータが接続できるようになると、ちょっとずつ今までとは違う使い方を模索し始めるようになったのです。

シンクライアント

一昔前までは、個人のコンピュータのマシンパワーは限られていました。

膨大な計算をさせるには少々非力だったり、あるいはセキュリティーの問題上、個人のパソコンにデータを残したくないなどといった要望が出てきたのです。

この時に考えられた仕組みが「シンクライアント」という方式でした。

これは、サーバと呼ばれるハイパワーなコンピュータを用意し、それに対し簡易パソコンが接続をします。

つまり、手元の画面で操作しているのは、実際にはサーバにログインをしていて作業を行うということです。

そうですね。想像しやすく言うと、貴方のパソコンにはログインユーザを作ることが出来ますよね?

それと似たような仕組みです。サーバに複数のログインユーザを作成します。そして、使う人はモニターと簡易PC(サーバに接続するための機能を持っている)のセットになった端末でサーバにログインして仕事を行うのです。

こうすれば、サーバさえ守っておけばデータが漏洩するリスクは低くなりますし、人が増えてもハイパワーなパソコンを用意する必要がありません。処理は全てサーバが受け持ちますから。

これがシンクライアントシステムと呼ばれるもので、一時期は流行りました。

データ容量を貸し出す時代に

個々のパソコンの処理能力が向上したこともあり、一般家庭においてシンクライアントシステムが導入されることはあまりありませんでした。

その代わり、違う問題が出てき始めたのです。

それは、容量の問題とデータの管理の問題。

パソコンにはHDDと呼ばれるデータの記憶媒体がありますが、一昔前だと20GBとか普通でした。(これは入社した時に、古いシステムの検証機のノートパソコンをいじった時に衝撃でした。え?マジで?ゼロの数間違ってない?って・・・)

今では、500GBや、倍の1TBなんて容量もありますよね。

でも、いつか容量は食い潰してしまうし、それにHDDが壊れたらデータはおじゃんです。

ここで出てきたのが”クラウド”と呼ばれる概念です。

実は、シンクライアントの進化系と捉えてもらえれば良いですし、まぁぶっちゃけた話、もっと専門的な用語で言うと、今までのサーバクライアントシステムと何も変わりはありません。

「ユーザはインターネットを通して外部のデータ記憶媒体を利用できるよ。そして、その預け先が何処にあるかなんて気にしなくていいよ。」

これが、雲の上にある存在。何も意識しなくてもいい。という意味からクラウドと呼ばれるようになったのです。

仕組みはシンクライアントと同様です。

大規模な容量を持ったサーバを幾つも用意します。そして、登録してくれたユーザそれぞれに、容量を切り分けて貸し出すのです。

そうですね。コンテナ倉庫を想像して下さい。それのコンピュータ版です。

ただし、一般的にこれらのサーバ群の場所は公開されていません。これはデータの秘密保持のためです。

また、あくまでデータですから、知らず知らずのうちに移動されていることもありえます。

例えば、日本のクラウドセンターから米国のクラウドセンターに移動とかね。

でも、ユーザから見たらそんなの分かりませんし、気にする必要がありません。

自分がログインしてデータが取り出せれば良いのですから。

これが初期に言われていた、”クラウド”です。

クラウドが進化を始める

一般的に言ってクラウドとは、容量貸出サービスのことを言っていたのですが、仮想化技術の進歩によって更に進んだ”クラウド”が誕生することになりました。

その前に仮想化技術についてお話しましょう。

仮想化技術

仮想化技術とは、簡単に言うとエミュレータを同時に起動できる技術です。

エミュレータってなんだよ!!って話ですよね。

エミュって省略されたりしますが、動作模倣を行うシミュレーションシステムのことをエミュレータと呼んだりします。

例えばAndroidのアプリ開発を行う際には、パソコン上でAndroid端末のエミュレータを起動してパソコン上でアプリを実行させます。

そして、擬似操作を行いプログラムバグを失くしていくのです。

さて、仮想化技術はもっと踏み込んだ技術になります。

それは、一つのハードウェア上で幾つものOSを同時に立ち上げることが可能になる技術です。

もう何言ってるか分かんないですよね。

ちょっと寄り道ですが、過去のこちらの記事を見ていただけると想像しやすいかと。

www.milkmemo.com

実は、これ全部Windows上で動いています。厳密に言いますと、WindowsをホストOSと呼び、これにVirtual Box と呼ばれるフリーの仮想マシンソフトをインストールします。

そして、Virtual BoxにLinuxと呼ばれるOSを幾つもインストールし(ゲストOSと呼びます)、Windowsを立ち上げながら、Linuxという種類のOSを複数起動して操作している状態です。

これらが凄いところは、OSとはコンピュータの根幹をなすソフトウェアであるため、HDDの特別な箇所にデータをインストールする作業が必要でした。ましてや、複数同時起動などといったことは不可能だったわけです。しかし、Virtual Boxが間に割り込むことで、OSの複数起動が可能になりました。

また、今までは各OSによってハードウェアを制御するドライバと呼ばれるソフトウェア(ミドルウェアと呼ばれたりします。)を個別に用意する必要がありました。例えば、ネットワークアダプタ(インターネットに接続するのに必要な箇所です。)のドライバを、Windows用とLinux用に用意するとかね。

しかしながら、Virtual Boxと言った仮想化技術は、ホストOSにあるドライバを利用し他のOS用に擬似的にエミュレートすることで、その差分を吸収するということをしています。つまり、Virtual Box上にOSをインストールすると、直ぐにパソコンが使えるようになるということです。

仮想化技術には、幾つか有名なところがあります。

フリーで使えるのは、Virtual Box や VMware playerと言ったソフトです。

もし、ちょっと興味があるという方はコメント下さい。一緒にOSを入れて遊びましょう(笑)

因みに、Linux OS も基本的に無料ですよ。

クラウドは仮想マシンを貸し出すように

さて、ここまで来れば次の一手が予想できますね。

そうです。サーバに対し、仮想マシンを幾つも用意し、この仮想マシンを貸し出すというクラウドサービスが出てきました。

厳密には、Virtual Box や VMware playerとは少し毛色が違う、vSphereなどと言った技術が使用されています。

これはホストOSというものはなく、サーバのリソース(CPUやHDDといったもの)を完全に分離して配分し、更にOSを複数起動するという技術です。(そう言いながら、私も専門ではないので少々知識が曖昧です。すみません;)

まぁ・・・これはVirtual Box や VMware playerのもっと凄いバージョンと思って下さい。

流石にこれは有料ですから(笑)

さて、クラウドサービス業者は、クラウドセンターに沢山のサーバを用意し、そして1つのサーバに対し複数のOSを起動させることで、1つのサーバを1つのユーザ固有の為に使用する必要はなくなりました。

つまりは、1つのサーバで、複数のユーザがログインし、しかも別々の好きなOSを利用したり、アプリの環境を構築出来るようになったのです。

これが現在のクラウドサービスになります。

AWS(アマゾン・ウェブ・サービス)やAzure(マイクロソフト)と言った名前で、今一生懸命に足場を固めているクラウドサービスはこの種類になります。

これは、様々なところで力を発揮しています。

例えば、マシンスペックを用意に変更できる点。

今までは自前でサーバを用意し、しかもそれはハイスペックになればなるほど高価でした。

しかし、仮想マシンであれば、CPUの能力からHDDの容量にいたるまで、自由に変更が出来るのです。

しかもその操作は直ぐに反映可能です。

そして、仮想マシンの状態をそのまま保管することも可能になりました。

つまり、ある時点の状態を保存しておき、仮想マシンの環境を変更して仮に破壊したとしても、保管していた状態に戻すことが可能です。

また、物理的なコンピュータの破損というリスクからも解放されました。

これは、クラウドサービスを提供する会社の方でバックアップをとっておき、仮にサーバが破損しても(機械なので必ず発生します。)他の動いているサーバに環境を瞬時に移動して、ユーザが稼働させている環境を止めないということが可能になったのです。

最後に

このように今までは自前でハイスペックなコンピュータを購入するということをしていましたが、クラウドサービスとは外部のハイスペックなコンピュータを間借りするということなのです。

このクラウドサービスは、ネットワーク技術の進歩(ネットワークの安定や速度の問題)や、仮想化技術の確立、またデータを外部に保管するという意識の浸透によって、徐々に受け入れられ始めました。

itpro.nikkeibp.co.jp

これまでは、大手SIerはサーバも含めてシステムを構築することで利益を上げていました。

しかし、クラウドサービスの進化により、サーバの部分はいらないと言われたり、クラウドサービス上で実験的にシステムを作り上げて、上手く行けば本稼働しちゃうなんてことが出来るようになったため、技術者を集めればSIerの力を借りずともIT戦略を自分たちで描くことが可能になったのです。

これは、SIerにとっては大問題です。今頃になってようやく自前のクラウドセンターなどを立ち上げたりしていますが、時既に遅し。

アマゾンやマイクロソフトは、もう遥か彼方先にいます。

そして、ソフトウェア開発の仕方も大きく変わるでしょう。

この変化に対応できるSIerは、果たしてどれだけあるのでしょうか。