クラウドコンピューティングをリードするAmazon Web Services
Amazon Web Services(以下AWS)は、クラウドコンピューティングというマーケットを切り開いた企業といえる。AWSは、IaaSやHaaSといったキーワードを超えた、コンピューティング インフラを提供するサービスになっている。
当初、欧米を中心にデータセンターが構築されていたが、2011年3月に東京にデータセンターが設立された。これにより、米国のデータセンターとのネットワークレイテンシーを気にする利用者や日本語でのサポートが行われていないことに難色を示していた企業にとっては、利用しやすい環境になった。
2011年の3月に東京にもデータセンターが開設された。現在AWSのデータセンターは、欧米、アジアなど全世界をカバーする(AWSのカタログより) |
■AWSのサービスは?
AWSが提供しているクラウドサービスは、ユーザーのニーズに合わせて、どんどんと拡大している。このため、AWSは単なるIaaSといったレイヤ-ではなく、クラウドコンピューティングのプラットフォームといえるだろう。
AWSで中心になるのが、Amazon Elastic Computer Cloud(Amazon EC2)だ。Amazon EC2は、クラウドのCPUやメモリ、ネットワークなどの仮想リソースを提供する。ハイパーバイザーとしてはXenが使用されている。
Amazon EC2では、いくつかのインスタンスから、仮想マシンのリソースを選択することが可能になっている。スタンダードインスタンスのデフォルトとなっているスモールインスタンスは、1仮想CPU(1コア)、160GBのストレージ、1.7GBの仮想メモリ、IO性能は標準、32ビットプラットフォームとなっている。スタンダードインスタンスには、スモール以外に、ラージ、エクストララージなどのインスタンスが用意されている。
Amazon EC2では、スタンダードインスタンス以外に、非常に小さなCPUリソースを用意したマイクロインスタンス(小さなトラフィックが多いWebサイトなどに最適)、データベースやメモリを多量に消費するアプリケーションに向けたハイメモリインスタンス(最大68.4GBの仮想メモリが選択できる)が用意されている。
さらに、メモリよりも、CPUリソースの割り当てに比重を置いたハイCPUインスタンス(最大20仮想CPU)、クラスターコンピューティング(HPC)に向けたクラスタコンピュートインスタンス(33.5仮想CPU、23GB仮想メモリ、10Gigabit Ethernet相当のI/O、1690GBのストレージ)が用意されている。
Amazon EC2で注目されるのは、最近HPCで多く利用されているGPGPU(GPUを利用した演算ユニット)をインスタンスとして貸し出していることだろう。クラスタGPUインスタンスでは、クラスタコンピュートインスタンスにNVIDIAのFermi M2050 GPUを追加している。
Amazon EC2では、Red Hat Enterprise Linux(RHEL)、Windows Server 2003/2008、Oracle Enterprise Linux、Open Solaris、Amazon Linux AMI、Ubuntu Linux、Fedora、Gentoo Linux、Debian、 SUSE Linux Enterpriseなどがイメージとして用意されている。もちろん、これらのOS以外にも、ユーザーが構築した独自環境をAmazon EC2上にアップして動かすことも可能だ(商用OSは、別にオプションコストが必要)。
さらに、アプリケーションとして、IBM DB2、Microsoft SQL Server、My SQL、Oracle Database 11g、Apache、IIS(WindowsのWebサーバー)、IBM WebSphere Portal Sever、JBoss Enterprise Application Platform、Java Application Server、Ruby on Rails、Oracle WebLogic Serverなど、システム構築に必要なミドルウェアやデータベースなどが用意されている。
ここで紹介したアプリケーションは、ほんの一部で、Amazon Machine Images(AMIs)には、数百ものアプリケーションのイメージが用意されている。ユーザーは、自分が必要とするイメージを選択すれば、OSからミドルウェア、データベースなどの環境がすぐに用意できる。ユーザーは、システム構築に時間をかけるのではなく、アプリケーションの開発に力を注げばいい。
Amazon EC2は、サーバーを停止させると、動作しているデータがすべて消えてしまう。このため、サーバーを停止させた時に、データを保存するAmazon Elastic Block Store(以下、Amazon EBS)というサービスが用意されている。Amazon EBSを利用すれば、サーバーが停止しても、Amazon EBSにデータが保存される。さらに、動作環境のスナップショットを保存することも可能だ。
Amazon EC2のコストは、使用するインスタンスやOS(有償/無償)、データセンターのロケーションなどによって異なる。例えば、スモールインスタンスでLinuxを動かした場合、米国スタンダードのデータセンターを利用する時は0.085ドル/時間だが、東京のデータセンターを利用すると0.10ドル/時間と少し高くなる。
Amazon EC2のコストは、インスタンスの料金以外に、転送量としてIn(アップロード)に関しては無料(すべてのデータセンターが対象)、Out(ダウンロード)は月間1GBまでは無料(すべてのデータセンターが対象)、月間1GB以上10TBまでは東京のデータセンターにおいては1GBあたり、0.201ドル(米国スタンダードのデータセンターでは、GBあたり0.12ドル)となっている。さらに、Amazon EBSの使用量、グローバルIPアドレスを付与するElastic IP Address(頻繁にグローバルIPアドレスを変更したり、全く使用していない場合)のコストもかかる。
このため、Amazon EC2のコストに関しては、一概にこのくらいとは言いがたい。使用する環境やOS、データセンター、トラフィックなどによってかかるコストも変わってくる。さらに、長期のコミットなしに利用できるオンデマンドインスタンス、長期利用を前提にして一括で前払いを行うリザーブドインスタンス、ユーザーがAmazon EC2の時間あたりのコストを入札によって決めるスポットインスタンスなどによってコストが異なってくる。
Amazon EC2に付属するサービスとして、ロードバランシング機能を提供するElastic Load Balancing、Amazon EC2のCPU使用状況やディスクの読み書き、ネットワークのトラフィックなどを監視するAmazon CloudWatch、あらかじめユーザーが設定した条件でAmazon ECのリソースをダイナミックにスケールするAuto Scaling機能(Amazon CloudWatchで設定)などのオプションサービスも用意されている。
AWSが提供しているクラウドサービス(AWSのカタログより) |
AWSの利用イメージ(セミナー資料より) | Elastic Load Balancingを使って、負荷分散が簡単に行える(セミナー資料より) |
■大規模なストレージを提供するAmazon Simple Storage Service
Amazon S3の特徴(AWSセミナー資料より) |
Amazon EBSは、仮想マシンの動作状態を保存したり、スナップショットをとったりするブロック型のストレージだ。このため、Amazon EC2の外部ストレージとして使用することが中心だ。しかし、クラウドコンピューティングを使用していると、大規模なデータを保存する必要がある。例えば、動画や高精細度の写真などのストレージ、Business Intelligence(BI)のマスターデータなどは、膨大な量のストレージが必要になる。Amazon Simple Storage Service(Amazon S3)は、1ファイル5TBまでのデータを扱えるようになっている。
Amazon S3は、Amazon EBSのようにディスクドライブとして認識され、データが保存されるのではなく、RESTやSOAPインターフェイスで、クラウド上にある大規模なストレージにデータを保存する。
Amazon S3からデータを取り出すには、あらかじめ用意された独自のキーや認証機能が用意されているため、複数のユーザーが共用しているストレージでも、高いセキュリティ性を持っている。
Amazon S3の最大の特徴は、コストが安いことだろう。東京のデータセンターを使用した場合でも、月間1TBなら0.15ドル/GBあたりとなっている。さらに、長期保存が必要なかったり、スタンダードなAmazon S3よりも冗長性を低くした低冗長性ストレージ(RRS)オプションでは、月間1TBまでなら、0.1ドル/GBあたりと低価格になっている(そのぶん、冗長性が少なく、もしかすると失われる可能性がある)。
このほか、Amazon S3のContents Delivery Network(CDN)として動作するAmazon CloudFrontサービスも用意されている。Amazon CloudFrontを使用すれば、欧米のデータセンターのAmazon S3においたデータをキャッシュできるため、高速にデータ配信が行える。
■AWSのその他のサービス
・Amazon Relational Database Service(Amazon RDS)
Amazon RDSは、クラウド上でリレーショナルデータベースを提供する。複雑なデータベース システムを構築しなくても、ボタン一つでデータベース環境がセットアップ、運用、拡張することができる。このサービスの登場により、ユーザーは、実際の開発に力を注ぐことができるようになった。
現在、Amazon RDSは、MySQLをベースにしているが、今年の第2四半期には、Oracle Database 11gが利用できるようになる。
Amazon RDSでは、5月からOracle Database 11gが利用できる(セミナー資料より) |
・Amazon SimpleDB
簡単なWebサービスのリクエストで、データ項目の保存とクエリを行う。残りの複雑な部分は、すべてAmazon SimpleDBが作業してくれる。Amazon SimpleDBは、リレーショナル データベースのAmazon RDSとは異なり、NoSQLのデータベースだ。
・Amazon Elastic MapReduce
Amazon Elastic MapReduceは、Hadoopなどのペタバイトの超大規模なデータを扱うためのプラットフォームだ。
・Amazon Simple Queue Service(Amazon SQS)
Amazon SQSは、AWSの中でメッセージ キューイングの機能を提供する。このサービスにより、複数のWebサービスを使用しても、メッセージを失うことがなくなる。
・Amazon Simple Email Service(Amazon SES)
Amazon SESは、拡張性が高く、コスト効率のいいトランザクション バルクメール送信を行うサービスだ。
・Amazon Simple Notification Service(Amazon SNS)
Amazon SNSは、クラウドからの通知をHTTPやEmailなどで通知する機能。
・Amazon Route S3
Amazon Route S3は、高い信頼性を持つDNSサービス。
・Amazon Virtual Private Cloud
Amazon Virtual Private Cloud(以下Amazon VPC)は、企業内に置かれたオンプレミスのサーバーとAWS上のクラウドをVPNで接続するサービスだ。これにより、企業は、クラウド上にコンピュータリソースをあたかもオンプレミスのサーバーであるかのように利用することができる。
Amazon VPCのサービスイメージ(セミナー資料より) |
AWSのサービスを見ていると、Amazon EC2をベースにして、さまざまな利用者が構築して使っている機能を汎用のサービスとして提供しているように思える。多くのシステムで必要になるAmazon RDSなどのいデータベースサービスなどは、そのいい例だろう。
AWSを利用する上で注意が必要なのは、最初はクレジットカードでの課金となる。ある程度の与信ができれば、請求書払いも可能になるが、一番初めはクレジットカードが必要になる。AWSのシステムが大規模になれば、毎月クレジットカードに高額のチャージが行われることになるため、このあたりは注意が必要だ。
AWSを見ていると、クラウドコンピューティングのエコシステムができあがっているように感じる。AWSは、プラットフォームだけを提供している。このため、AWSベースでシステムインテグレートするインテグレータなども出てきている。また、Amazon EC2ベースで動作するアプリケーションやサービスなどを各社がリリースしている。これにより、AWSのコンピューティング環境のバリエーションや使いやすさも広がっている。
もう一つ重要なのは、AWSか各種サービスのAPIを提供していることだ。これにより、AWS上にユーザーのAmazon EC2を監視するサービスを展開するサードパーティも登場している。
実際、日本国内でも社内システムとしリクルートの住宅情報サイトのsuumoのデータ解析にAmazon Elastic MapReduceが利用されていたり、マピオンが提供している「ケータイ国盗り合戦」などのプラットフォームとしても利用されている。