~ Amazon Web Services で Web アプリケーションを構築する
Vol. 394 2010/03/11
小松 大輔
IT 関係では流行語になって久しい「クラウド」ですが「クラウド」とはなんなのでしょうか。
|
|
「クラウド」とは「雲」を意味する単語で、ネットワーク図などでインターネットを表すのに雲の絵が使われていたことからインターネットをたとえた表現です。
「クラウドコンピューティング」は、インターネット上に存在するサービスをユーザが仕組みなどを意識せずに利用できる形態を指します。ユーザはインターネットに接続出来る PC を用意するだけで各種サービスの提供を受けることができるようになるわけです。
|
|
●「クラウド」が持ついくつかの形態
インターネット上で利用できるクラウドはいくつかの定義に分けられています。
●SaaS (Service as a Service)
ソフトウェアをサービスとして提供します。従来の ASP (Application Service Provider) と同義です。クラウドの中ではこの SaaS が多くの方々にとって身近な物だと思います。
●PaaS (Pratform as a Service)
システムの開発環境/実行環境を提供するサービスです。Web サービスを提供したい個人や企業に対して、Web サーバ/フレームワーク/データベースなど、システムを載せるだけの状態のものを提供します。Google App Engine など、負荷に応じて自動でスケールする物があります。
●IaaS (Infrastructure as a Service) / Haas (Hardware as a Service)
CPU やメモリ、ハードディスクなどコンピュータリソースを提供するサービスです。一般的に初期費用がなく「使用した時間だけ」「使用した容量だけ」従量課金されることが特徴です。
ハードウェアやデータセンタを持たずにスモールスタートしたいといったサービス提供者向けです。
今回紹介する Amazon Web Services もこの IaaS に属します。
● Amazon が提供するクラウド
書籍や DVD, 電化製品などの通販をインターネット上で行う巨大サイト Amazon は、自らを支えるリソースの仕組みをリソースレンタルという形で、AWS (Amazon Web Services) のサービスとして一般に解放しています。
AWS では仮想サーバのホスティング、オンラインストレージ、データベース、少額課金/決済の API など、amazon.com を支えている様々なサービスがありますが、ここでは仮想サーバのホスティングサービスである EC2 とオンラインストレージである S3 を詳解します。
● 仮想サーバとは?
一台のサーバコンピュータを仮想的に複数台のサーバコンピュータとして、それぞれの仮想コンピュータ上で OS を動かす技術。
Windows 7 に搭載されている XP モードも仮想化技術の一つで、Windows 7 上に仮想環境を作り Windows XP を動作させています。
●S3 (Simple Storage Service)
|
|
| ▲ 「S3Foxで操作」 |
Amazon S3 は高い信頼性と高トラフィックに耐えうるインターネット上のファイルストレージサービスです。画像や Zip ファイルなどファイルの種類にかかわらずに置くことができ、ACL(Access Control List) によるアクセス制限でプライベートなファイルストレージとしての活用はもちろん、Web に公開することも可能です。
Amazon S3 は 99.9% の稼働率を保証する SLA (Service Level Agreement) が定義されており、ハードウェア障害などが発生した場合においてもダウンタイム無しで稼働し続けられるように冗長化が施されています。具体的には地理的に 離れた2箇所以上のデータセンターをまたがって冗長化されていたりと、通常では構築するだけでも相当の費用がかかる構成になっています。
Amazon S3 の料金体系は、ストレージに保存しているデータ容量、データの転送量、発生したリクエスト量から計算されていて、使用量が多ければ多いほど容量あたりの単価が安くなる料金体系になっています。
| 使用容量 |
1GB あたりの費用 |
|---|---|
| 最初の 50TB まで | 0.15ドル |
| 次の 50TB まで | 0.14ドル |
| 次の 400TB まで | 0.13ドル |
| 次の 500TB まで | 0.105ドル |
| 次の 4000TB まで | 0.08ドル |
| 5000TB 以上 | 0.055ドル |
詳しくは Amazon S3 の料金表 をご参照下さい(英語)
●EC2 (Elastic Compute Cloud)
|
|
| ▲ 「管理画面で操作」 |
Amazon EC2 は仮想化技術である Xen をベースにした仮想サーバホスティングサービスです。一般のホスティングサービスなどと違う点は以下の二点です。
Amazon EC2 は AMI と呼ばれる仮想サーバ OS イメージを使用して、仮想サーバであるインスタンスを立ち上げることができます。この AMI は、稼働中の仮想サーバから作成することができ、保存先には S3 が使用されます。
EC2 は AWS に管理画面である Web コンソールが用意されていて、Web コンソール上からインスタンスの管理などを行うことができるようになっているほか、コマンドラインインターフェイスからも操作を行うことができ、開発者にとって扱いやすくなっています。
Web アプリケーションはアクセスの増加と共に、サーバを複数台立ち上げて負荷分散を行うのが一般的な対応ですが、Amazon EC2 だと負荷に応じてその場でサーバを増やせるのが魅力的です。
最近では負荷に応じて自動でサーバの増減を行ってくれるオプションもついています。また、Wakame という自動スケールするオープンソースソフトウェアもあります。http://wakame.axsh.jp/
EC2 の料金体系は1時間単位で仮想サーバの起動時間分だけ課金されます。仮想サーバはメモリや CPU などいくつかタイプがあります。また、別途転送料による課金もあります。
| インスタンスタイプ |
Linux / Unix |
Windows |
|---|---|---|
| small | 0.085 ドル | 0.12 ドル |
| Large | 0.34 ドル | 0.48 ドル |
| Extra Large | 0.68 ドル | 0.96 ドル |
詳しくは Amazon EC2 の料金表 をご参照下さい(英語)
● AWS の活用事例
先に記述したようにインフラのクラウドである Amazon Web Services は、Web サービスを提供する方、特に CGM などの「運用していると情報量が増えていくサービス」「ユーザの増加に伴ってアクセスが増えて負荷も増えていくサービス」と言ったスケールアウトが必要な Web アプリケーションに最適な環境であると言えるでしょう。
一般のホスティングサービスと違い、料金体系が従量課金となっているため、一ヶ月にかかる料金などはあるていど予測しておくなど注意が必要になるなど、コーポレートサイトなどは月額定額のホスティングサービスの方が向いていると言えるでしょう。