はじめに~クラウド・コンピューティングとは?~
近頃、“クラウドコンピューティング”と呼ばれる、インターネット(クラウド)の向こう側でアプリケーションサービスや、サーバなどのハードウェアリソースを提供するサービスが急増しています。
ユーザーはインターネットにさえ接続できれば各種サービスを利用でき、そのサービスがどこで動いているかなど、サービスインフラを意識する必要がありません(図1)。そして、それらのサービスは無料、もしくは利用した分だけ課金される形態となっており、利用にあたり多くの初期投資を必要としません。
このクラウドコンピューティング・サービスを牽引する企業の1つが、米国のAmazon.com Inc.です。Amazonはクラウドコンピューティング・サービスを「Amazon Web Services(AWS)」という名称で展開しています。
本連載では、この「Amazon Web Services」で展開されているサービスのうち「Amazon Elastic Compute Cloud(Amazon EC2)」と「Amazon Simple Storage Service(Amazon S3)」の2つのサービスを取り上げて、概要から具体的な使い方まで紹介していきたいと思います。
「Amazon EC2」と「Amazon S3」の特徴~安い、早い、便利~
「Amazon EC2」はシンプルに書くと、インターネット上のサーバ(仮想マシン)をレンタルできるサービスです。そして、「Amazon S3」は同じくインターネット上のストレージをレンタルできるサービスです。これらのサービスは最近ではHaaS(Hardware as a Service)などと呼ばれることもあります。
これだけを聞くと、従来からあるサーバやストレージのホスティングサービスと変わらないのではないか、と感じる読者の方も多いと思います。しかし、これらは従来のサービスとは、異なる多くの特徴があります。
初期費用無しの従量課金制
従来のレンタルサーバなどでは、使い始める際に初期費用が必要でかつ、使えるようになるまで申込みから数日かかることが多々あります。課金体系も多くは1ヶ月単位であったり、数ヶ月単位だったりします。
その点、「Amazon EC2」ではユーザーが使いたくなったら、わずか数十秒のうちに自分だけの専用サーバがインターネット上で利用可能となります。
しかも初期費用も必要なく、完全従量制の課金体系です。仮に、デフォルトスペックのサーバを起動させ1時間だけ使って停止させた場合、かかる費用はわずか$0.1です。
「Amazon S3」についても同様で、ストレージの使用・容量制限などは無く、使用している容量と転送量に基づいて課金されるサービスとなっています。
サーバ仮想化技術
また、この「Amazon EC2」のバックエンドではサーバ仮想化技術が使われているため、その恩恵を受けることができます。
例えば、自分で作った環境のOSイメージをまるごとバックアップすることができたり、さらにその環境のイメージを複製して同一の環境を持つサーバを複数稼動させたりすることも可能です。
また、このOSイメージは他のユーザーに対して公開することができます。現在も、多くのユーザーが作り上げたAmazon EC2用のOSイメージが公開されており、ユーザーはそれらを自由に使うことができるのです。
ディスク内容をイメージ化することで、まったく同じ環境を別のサーバで動かすことができるので、テストや検証なども容易になります。
ハイスケーラビリティ/ファシリティ
上記のメリットを活かす事で、動かしているサービスのリソースが足りなくなったらすぐに1ランク上のリソースを積んだサーバを使い始めることもできるので、拡張性も高いと言えます。スケールアップさせる以外にも、同一の環境を複製し、複数のサーバを稼動させてスケールアウトさせることも可能です。
また、データを保存するストレージの場所やサーバを稼動させる場所を、複数ヶ所から指定することができるため、災害対策などについても工夫次第で対応可能となります。
APIによる操作性
そして、これら「Amazon EC2」で稼動させているサーバの起動/停止といったハードウェアに対して行う操作や、「Amazon S3」ストレージへのデータのアップロードやダウンロード、権限の設定など、一連の操作はすべてHTTP経由によるAPIを実行することで完結します。
つまり、Amazon Web Servicesが用意するAPIの実行や、それに準拠したツールを使うことで、すべてのオペレーションを行うことが可能です。
インフラの管理/運用に割くリソースの削減
自前でそれなりに堅牢なインフラを構築/運用するとすると、電源・ネットワーク回線・スイッチ・サーバなどの冗長化をどうするか考えたり、設置スペースや地震対策などといったファシリティについて考えたり、といった構築や運用、システム管理を真面目に検討する必要があり、これにはそれ相応のスキルが必要となります。
しかし、これらは「Amazon EC2」と「Amazon S3」を使うことで、Amazon.comが実際に使っている大規模かつスケーラブルなインフラを使えるようになるため、ユーザーはいわゆるインフラと呼ばれるレイヤのことをほとんど考える必要がなくなり、OSより上のレイヤに集中して開発や構築/運用ができるようになるのです。