ブロックのようにサービスを組み合わせて使うAmazon Web Services

2012年12月12日(水)
玉川 竜司

Amazon Web Servicesって何だろう

皆さん、はじめまして。これから4回にわたって、Amazon Web Servicesについて紹介していきます。どうぞよろしくお願いします!

始めに簡単に自己紹介をさせていただきましょう。私はSkyという会社でソフトウェア開発を担当する傍ら、兼業で技術書籍の翻訳をしています。昨年来、Amazon Web Servicesの面白さに魅せられて、その魅力を紹介したいと考えて、先日オライリージャパンから「Amazon Web Servicesプログラミング」という訳書を出させていただきました。Amazon Web Servicesは非常に多くのサービスの集合体であり、短い記事ではとても紹介しきれませんが、その勘所だけでもお伝えできればと思っています。どうぞよろしくお願いします。

近ごろは、クラウド、中でもAmazon Web Services(AWS)の名前を聞く機会がどんどん増えているのではないでしょうか?一方で、「AWSってよく聞くけど、一体何なの?」という疑問を抱いておられる方も多いのではないかと思います。まず第1回では、この疑問にお答えしていきます。

AWSというと、仮想マシンを提供するEC2(Elastic Compute Cloud)が話題に上ることが多いのですが、実際にはEC2はAWSのサービスの1つに過ぎず、EC2以外にも実に多彩なサービスが提供されています。

これらのサービスは、しばしばレゴ(そう、あのブロックのレゴです)に例えられます。AWSでは、何かを作るための部品が、ブロックのように数も種類もたくさん提供されているのです。しかもそれらを従量課金の下で事実上無制限に使うことができます。

それらの部品を使ってどんなものが生み出せるかは、使う側の想像力で決まります。いくつものブロックを、使う側が意図を持って組み合わせて初めて、それぞれのブロックに意味が与えられるようになります。

AWSのそれぞれのサービスもまた、意図される使い方があるとはいえ、単独ではそれぞれの価値は曖昧なものです。それぞれの特徴を理解し、作りたい全体のシステムの中での役割をうまく与えてやれば、きっとコスト以上の価値をそれぞれのサービスから引き出してやることができるでしょう。

図1:Amazon Web Servicesの各種サービス群(クリックで拡大)

AWSのサービス提供拠点となる“リージョン”と“アベイラビリティゾーン”

AWSは、2004年のSQS(Simple Queue Service)、2006年のS3(Simple Storage Service)、2007年のEC2のリリースを皮切りに、次々と多様なサービスを提供し、既存のサービスを拡張してきました。2012年9月現在では、これらのサービス群の数は33に及んでいます。

図2:pace of innovation
(左)2007年から2011年までに追加されたAWSの機能・サービス(右)2012年1月から5月までのアップデート内容(クリックで拡大)
出典:O'REILLY『Amazon Web Servicesプログラミング――APIの基礎からElastic Beanstalkの利用まで』より引用

これらのサービスについては次回以降に説明していきますが、その前にまず、これらのサービス提供の拠点である、“リージョン”と“アベイラビリティゾーン”について説明しましょう。図をご覧ください。

図3:リージョンとアベイラビリティゾーンの図(クリックで拡大)

“リージョン”はAWSのサービス提供拠点の大きなくくりであり、アメリカのバージニア州から始まり、2011年3月に開設された東京を含む、世界中の9カ所にまで増えました。それでは、AWSを使う上でどのリージョンを選択するのがよいのでしょうか?リージョンによって、提供されているサービスの種類やコストは微妙に異なりますが、最も大きな違いは利用時のネットワーク遅延(レイテンシ)です。例えば日本から利用する場合、東京リージョンとのやり取りで生じるレイテンシは数ミリ秒にすぎませんが、海外のリージョンとのやり取りでは数十から数百ミリ秒のレイテンシがどうしても生じます。そのためAWSでシステム構築する上では、基本的に利用者から近いリージョンを使うとよいでしょう(あえて海外にバックアップをしておきたい場合や、利用したいサービスが近いリージョンで提供されていない場合はその限りではありません)。また、コンプライアンス上の制約から、外国にあるリージョンを利用できないケースもあるでしょう。

AWSのそれぞれのリージョンは、複数の“アベイラビリティゾーン”を持っています。それぞれのアベイラビリティゾーンは、完全に独立したデータセンター群から構成されており、大きな障害(例えば大規模な停電やネットワーク断)があっても複数のアベイラビリティゾーンが同時にダウンすることがないよう配慮されています。同一リージョン内のアベイラビリティゾーン同士は非常に小さなレイテンシで通信ができるため、複数のアベイラビリティゾーンを利用することで、高い可用性と利便性を両立したシステムを構築することができます。

AWS東京リージョンについて

東京リージョンは、AWSのリージョンの中でも最も早い成長を遂げたリージョンです。
→ 東京リージョンがAWS史上最速の初年度成長を達成(Amazon Web Services ブログ)

東京リージョンは開設当初2つのアベイラビリティゾーンで構成されていましたが、2012年9月には第3のアベイラビリティゾーンが追加されました。これらのアベイラビリティゾーンは、電源の供給企業を別々にしたり、同一の断層を原因とする地震で複数のゾーンが影響されにくいように場所を選択したりといった配慮がなされています。

AWSの全体像と代表的なサービス

AWSが提供するサービスは、今では単純なインフラ層にとどまらず、非常に多岐にわたっています。本連載ではそのすべてを取り上げることはできませんが、代表的なものを中心に解説していきます。

AWSのトップページ(http://aws.amazon.com/jp)では、代表的なサービスが以下のように案内されています。

図4:AWSが提供する代表的なサービス(クリックで拡大)

ユーザーは、これらのサービスをブロックのように組み合わせてシステムを構築していくことになります。例えば一般的なWebアプリケーションのシステムなら、EC2をアプリケーションサーバーに、RDSかDynamoDBをバックエンドのデータベースに使い、コンテンツが大量にあるならストレージとしてS3を使い、CloudFrontで配信する、といった具合です。

AWSの大きな特徴の1つは、エラスティック性と呼ばれる柔軟さです。様々なサービスが提供するリソースを、時間や容量、処理能力などを単位とする従量課金の下で、負荷に応じて使用量をきめ細かく調整することができる上、その調達にはせいぜい数分しかかかりません。このエラスティック性のおかげで、ユーザーは新しいアイデアを素早く実現することができ、ビジネスが拡大したなら、ほとんど手間をかけずにそのままシステムを拡張していくことができます。

サービスの利用に際しては、グラフィカルなマネージメントコンソールが提供されており、基本的な操作はここから行えます(マネージメントコンソールについては次回詳しく解説します)が、AWSの神髄は、様々な言語で提供されているSDKや、シェルスクリプトから使えるWeb APIからこれらのサービスを操れるところにあります。システムを構築したり、運用したりするためのスクリプトやコードを書いてしまえば、必要に応じてほとんど無限のリソースを、自由自在に扱うことができるのです。

その名の通り、Webに関係するシステムに使われてきたことが多いAWSですが、さらに幅広い領域に対応するサービスが次々と登場してきています。中でも有名なものとしては、ビッグデータを扱うHadoopとその関連プロダクトをサービスとして提供するElastic MapReduceがあります。

AWSを企業内のプライベートクラウドとして使える“VPC”

ここで1つ、特に最近注目されているサービスを紹介しておきましょう。クラウドを利用するにあたっては、セキュリティが懸念事項とされることがよくあります。実際には、AWSは各種のセキュリティ規格の認定を受けており、極めて安全性が高いサービスです。
→ AWS セキュリティ&コンプライアンスセンター

とはいえ、企業内でAWSを利用したい場合には、EC2のインスタンスとインターネットとのアクセスポリシーを自社に合わせて運用したいといったこともあるでしょう。そういった場合に便利なサービスなのがVPC(Virtual Private Cloud)です。

VPCを使うと、AWSのデータセンターの中の一部を、IPSecによるVPNを通じて企業内のネットワークと接続し、企業内ネットワークの一部であるかのように利用できます。すなわち、AWSのデータセンターの一部を企業内のプライベートクラウドとして活用できるのです。

企業内のコンピューティングの負荷も、1日、1週間、1ヶ月、1年といった時間の中で大きく変動します。これまでの物理的なシステムのサイジングでは、ピーク時の負荷に合わせて計画せざるを得ませんでしたが、VPCを活用することではるかに柔軟なリソース調達と運用が可能になります(図5)。ビジネスのサイクルがどんどん短くなってきている現在、この柔軟性を十分に活かすことで得られる最も大きなメリットは、単なるコスト削減ではなく、ビジネスの方針や規模の変更に柔軟に対応できることでしょう。

図5:VPCを使うと変動する負荷にあわせた柔軟な運用が可能(クリックで拡大)

現時点では、VPC内で使えるサービスはAWSのすべてのサービスではなく、利用できない機能も多少あります。しかし、VPCで利用できるサービスはこの数か月間にも急速に充実してきており、遠からず不足を感じることはほぼなくなるでしょう。

AWSのユーザーグループ「JAWS-UG」に参加してみよう

ここで、AWSのユーザーズグループについても触れておきましょう。日本でのAWSのユーザーズグループは、Japan AWS Users Group = JAWS-UGという名称で、とても活発に活動が行われています。JAWS-UGの支部は、ほぼ日本全国に広がっており、毎週のようにどこかで勉強会が行われています。

Webではhttp://jaws-ug.jp、Twitterでは#JAWSUGのハッシュタグでやりとりが行われているので、読者の皆さんも近くの勉強会に参加してみてください。

次々に更新されるAWSの最新情報をキャッチするための参考サイト

AWSのもう1つの特徴、それはサービスの追加や機能強化のスピードです(加えて料金の値下げもかなりの頻度で行われています)。ほとんど毎週のように何らかのアナウンスが行われており、その頻度が落ちる気配もまったくありません。基本的に、AWSではそれまでのサービスが廃止されたりすることがなく、機能強化は後方互換性が保たれたまま行われてきています。

そのため、新しい情報にキャッチアップできるよう、情報源に目を配っておくことはとても重要です。新しいサービスがリリースされたり、機能強化が加えられたりすることで、それまでは自分たちで作り込まなければならなかった機能が、AWSが新たに提供するサービスを利用するだけで済んでしまうようになることも珍しくないので、先ほどの#JAWSUGに加えて、以下のサイトは見ておくようにしてください。

Amazon Web Servicesブログ

また、AWSに関する公式のホワイトペーパーや技術資料は、AWSの日本語公式ページにまとめられています。

AWS日本語公式サイト

特に、「AWS クラウドサービス活用資料集」のリンク先にあるセキュリティ関連の資料(「セキュリティプロセスの概要」など)は、非常に充実していますので、ぜひ一読されることをお勧めします。

1年間の無料枠を使ってEC2やDynamoDBを試してみよう

AWSでは、新しくアカウントを取得すると、一定の無料利用枠が1年にわたって利用できます。この無料利用枠の対象は、EC2のインスタンスやS3、RDS、DynamoDBなど、多岐にわたります。
→ AWSクラウドサービス無料 利用枠のご案内

従量課金制のサービスを使うのが不安、という方も多いと思いますが、無料利用枠を利用すると共に、ビリングアラート(請求通知)の機能を使えば、課金が無料利用枠を越え、一定額に達した時点でメールを受け取ることもできます。
→ 【AWS発表】 AWSクラウドの利用料金を監視・通知できるように(Amazon Web Services ブログ)

特にこの1年ほどで、無料利用枠で試せることがとても増えてきています。EC2のインスタンスとしてWindows Serverが使えるようになったり、リレーショナルデータベースサービスのRDSに無料枠で使えるマイクロインスタンスが追加されたり、NoSQL系データベースサービスのDynamoDBにも無料枠が設定されたりしたので、いろいろ試してみるのに不足はないでしょう。

AWSのアカウントの取得は公式ページから行えます。まだアカウントをお持ちでない方はぜひ取得していただいて、これから一緒に、新しい世界の探求に乗り出しましょう!

【参照リンク】

AWS日本語公式サイト

Sky株式会社

Sky株式会社にて自社商品の開発を担当する傍ら、新しい技術を日本の技術者に紹介することに情熱を傾けており、その手段として翻訳などに取り組んでいる。飼い猫6匹。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています