ネバダ州ラスベガスで先週開催された第1回のAWS(Amazon Web Service) re:Invent カンファレンスに,世界中から6,000人の参加者が集まった。InfoQではオピニオンリーダたちへのインタビューを通じて,カンファレンスの最も重要なメッセージを聞き出すべく,その現地へと赴いた。
2日間にわたるカンファレンスは,アーキテクチャやビッグデータ,データベース,企業IT,ゲーム,モバイル,セキュリティ,ツールなど15トのラックで構成されていた。製品紹介を目的とするようなセッションも多々あったが,各セッションはベストプラクティスの利用,スケーラブルでセキュアなアーキテクチャ構築,あるいはクラウドサービスのビジネス価値など,それぞれが明確なテーマを持っていた。日本から来た2人のAWSアーキテクトは,満員の聴衆を前にクラウドのデザインパターンについて講演した。彼らは可用性やバッチ処理,データレプリケーション,キャッシュ,ネットワーク,メンテナンスなどに関するさまざまなパターンをプロバイダ非依存な方法で解説した上で,これまで調査した多くのクラウドデザインパターンを公開する英語の Wikiについて紹介していた。今回のカンファレンスではAWSクラウドにある無数のコンポーネントを選択して,メンテナンス可能な分散システムを組み上げる手法をテーマとしたセッションが多く見られたが,これもその中のひとつだ。他のセッションでは,洞察力に富んだ高可用性のためのアーキテクチャ,ElastiCacheによるAmazon RDSの高速化,スケールの失敗とその克服方法,Amazon S3によるスケーラブルなアプリケーション構築といった,ベストプラクティスの適用をテーマとしたものが目に付いた。NetflixのAdrian Cockcroft氏はNetflixの高可用性アーキテクチャという講演で,会場に入りきれないほど満員の参加者による議論をリードしていた。
セッションにはビジネス価値の明確化や,戦略定義の方法を求める組織を対象としたものが少なくなかった。その中にはエンタープライズクラウド戦略提議,Amazon.comのAWS移行,クラウドの採用,AWSによって可能となるコスト削減額といった素晴らしいものも見られた。またいくつかの基調講演では,システムをより効率的に運用する方法として,あるいは問題取り組みの新たな手段として,AWSクラウドを利用したケーススタディを大きく取り上げていた。AWS VPのAndy Jassy氏による水曜日の基調講演では,着陸時のビデオをAWSプラットフォームを用いてイメージ処理することによって,さらにドラマティックになったMars Curiosityプロジェクトが紹介されていた。Netflix,Pinterest,Animotoなどの代表者たちも,AWSサービスの採用で自社システムがどれ程のスケーラビリティと世界規模の運用性を実現できたか,という点を訴えていた。また基調講演ではプラットフォーム関連の発表も多数あった。AWSからはS3ストレージの大幅価格ダウン,Redshiftという新たなデータウェアハウスサービス,Data Pipeline というデータ移行ツール,2種類の新たな大規模サーバインスタンス形式などがその場で発表された。
AWS CTOのWerner Vogels氏による講演では,アーキテクチャ設計に費用の概念を組み入れるという,氏の言う21世紀アーキテクチャ(21st century architecture)を話題の中心にしていた。講演で使ったこの言葉は,先日のブログ記事でも同じものが使用されている。
もっとも重要なのは,ビジネスが拡大している時には収益が上昇するのと同じように,費用も必ず上昇する,という認識です。Amazonではそれが注文数に当たります。受注の数が増えれば,コストも同様に増えることを容認しなければなりません。しかしアーキテクチャ設計が適当ならば,スケールメリットを活用することで,コストの上昇を収益の上昇以内に抑えることが可能になります。適切なコスト意識を持てば,規模があなたの味方をしてくれる,という訳です。
ユーザがいつでも望みのシステムを構築できるようになった,とVogels氏は主張する。ということは,これまで望み通りにできていなかった,ということなのだろう。予算や能力,地理的あるいは物理的条件,人員,規模といったものは,もはやセキュアでスケーラブル,フォールトトレラント,高パフォーマンス,高コストパフォーマンスなアプリケーションを構築する上で制約にはならないと氏は言う。その対象となるのは,データセンタやネットワーク,ストレージ,データベース,ロードバランサなど,プログラム可能なすべてのものだ。21世紀アーキテクチャでは,効率向上とコスト削減の手段としてオートメーションを採用する。その大きな特徴として,氏は次のような点をあげている。
- 制御性。新たなシステムは小さく,疎結合で,ステートレスなブロックで構築されなければならない。ソフトウェアは,コントロールの容易な独立したユニットで構成されるべきなのだ。各ユニットにはスケールやフォールトトレランスなど,それぞれ重要な役割を持たせる。Vogel氏はIMDBを例として説明した。IMDBの初期アーキテクチャは結合性が強く,Amazon.comが何かしようとする度に全体のスケールアップを余儀なくされた。それをする代わりに同社はシステムを分解して,S3を仲介とする疎結合なシステムに構築し直したのだ。これによって各レイヤが他とは独立してスケールアップ可能になった。
- 回復性。どのような種類のソフトウェアであれ,ユーザの保護こそが最優先事項だ,と氏は言う。保管されている機密データはすべて暗号化されるべきだ。Amazon.comでは保存時も転送時も,データはすべて暗号化されている。また実用的なシステムは,ひとつのデータセンタに障害が発生しても稼働を継続できるように,地理的に分散されてなければならない。氏は聴衆に対して,障害とはすぐ側にあるものだ,ということを思い出させると同時に,アーキテクトは障害を例外的事象とは考えず,運用形態のひとつであると考えるべきだという指摘をした。
- 適応性。 現代的なソフトウェアは,固有のリソースに依存してはならない。別の状況にも適応する必要がある。ただしその状況に拘束されてもいけない。例えばS3は,当初は200億オブジェクトの保持をスコープにしていたが,程なくして爆発的な増加に対処すべくリファクタされ,現在では1兆を越えるオブジェクトを提供することができる。これらすべてが,現行のユーザ基盤を中断することなく実施されたのだ。氏は聴衆に対して,前提条件を置かないこと,将来の変更を妨げるような制約条件を持ち込まないこと,の2つを提言した。
- データ駆動。必要なものはすべて装備すること。予測に頼らず,事実とデータを使って意思決定すること。データを集めなければそれに基づく行動はできない。AWS Elastic Load Balanserのようなネットワークサービスでは,単純な低レベルのシステム測定値を越えた,ビジネスレベルのデータポイントに基づく意思決定が可能である。Vogel氏はアーキテクトと運用スタッフに対して,躊躇せずにデータを収集し,Data Pipelineのような新しいツールを利用して解析用データを集積するように勧めた。
今回が最初の re:Invent カンファレンスではあったが,AWSは早くも,次回のカンファレンスを来年11月にラスベガスで開催する予定である,と発表した。詳細な情報はカンファレンスのサイトを参照してほしい。SlideShareリポジトリでは,カンファレンスのプレゼンテーションを閲覧することもできる。