AmazonクラウドのCTO「クラウドネイティブなアーキテクチャには4つの戒律がある」。AWS re:Invent基調講演(Day2 AM)
クラウド時代のアーキテクチャは、それ以前の時代のアーキテクチャとは異なる。Amazon.com CTOのWerner Vogels氏は、Amazon Web Servicesが先週ラスベガスで開催したイベント「AWS re:Invent」2日目午前中の基調講演で、新しい時代のアーキテクチャとはどういうものなのか、聴衆に向けてたっぷりと解説しました。
クラウドによってリソースの制約から解放され、サーバやネットワークを含む冗長性までプログラミング可能になった新しい世界では、どのような考えによってソフトウェアを構築すべきなのか。
Vogles氏の話を紹介しましょう(本記事と、後編の「Amazonは1時間に最大1000回もデプロイする。クラウドネイティブなデプロイとはどういうものか? AWS re:Invent基調講演(Day2 AM)」に分かれています)。
新しい世界にはリソースの制限がない
Amazon.com CTO Werner Vogels氏。
次世代のアプリケーションはどう構築されるのか、21世紀のアーキテクチャについて話そう。
古い世界では、あらゆるリソースに制約があった。初期投資、キャパシティ、場所など。例えば2007年当時、Amazon.comのリテールビジネスでは、11月のピークに合わせてシステムが構築されていたが、そのハードウェアリソースの76%が使われていない。つまりインフラへの投資の76%が使われていないということで、ビジネスにとって悪いことだ。
ハードウェアという物理的な制約があるためにこうしたことが起こる。
2010年11月10日、Amazon.comの最後の物理サーバがシステムから取り除かれた。そして2011年10月31日には、欧州ダブリンに置かれた欧州ビジネス向けの物理サーバもなくなった。すべてクラウド上のWebサーバに置き換えられた。
そしてグラフはこうなった。
Amazon.comはサーバ1台単位でスケールを管理できるようになり、どんなプロモーションをかけてトラフィックが集中したとしても、リソースの制限はなくなった。
この新しい世界では、リソースの制限がない。
これまでできなかったことが、いまでは可能だ。最も大きな違いは、あらゆるものがプログラマブルなリソースになった、ということだ。サーバを起動したかったら、ノートPCからすぐ起動できる。
古い世界では、あらゆるリソースに制限があったため、そのリソースにフォーカスせざるを得なかった。しかし新しい世界では制限がないため、ビジネスにフォーカスできる。ルールが変わったのだ。
クラウドは、新しい世界でソフトウェアを開発するためのパワーを与えてくれた。
21世紀のアーキテクチャには4つの戒律がある
21世紀のアーキテクチャには4つの戒律がある。これは石碑ならぬタブレットに刻まれている。
ビジネスがアーキテクチャをコントロールする「コントローラブル」、カスタマのビジネスを守る「リジリエント」、固定されたリソースに依存せず柔軟な「アダプティブ」、実際のデータに基づく「データドリブン」だ。
「汝、新しいアプリケーションの構築には新しいコンセプトを用いるべし」
クラウドネイティブに考えよう。
戒律その1「コントローラブル」
21世紀のアーキテクチャの戒律、1つ目は「コントローラブル」だ。
これを実現するためには、疎結合された小さな、ステートレスなブロックに分解するのだ。これがこれから話すことすべての基本である。
どれだけ小さいブロック化というと、コントロールしたい単位の大きさだ。Node.jsのインスタンかもしれないし、Apacheかもしれない。数十のマイクロインスタンスかもしれない。いずれにせよ、ソフトウェアを小さなブロックに分けてコントロールする。
ステートレスはスケーラビリティにおいて重要だ。できるだけステートレスにすることで、よりスケーラブルになる。
疎結合についてはAmazon.comでの例を紹介しよう。
Amazon.comは疎結合で問題を解決した
Amazon.comの関連会社にIMDb(Internet Movie Database)がある。Amazon.comのWebべージでIMDbの情報を表示している。
以前はAmazon.comのサイトとIMDbは密結合されておりAmazon.comへのアクセスが増えると、すぐにIMDbのスケールが上限に達してしまっていた。
そこでAmazon.comとIMDbを分解することにした。IMDbでHTMLをあらかじめ生成しておきAmazon S3に保存しておく。それをAmazon.comが取り出して使うのだ。
これで疎結合が実現され、いろんな問題を解決してくれた。
アーキテクトはコスト意識を持つべきだ
「コントローラブル」を実現する要素、次はアプリケーションとプロセスの自動化だ。
ビジネスルールでアーキテクチャをコントロールするとすれば、そこに人は存在しない。ChefやPuppetのようにAPIを経由して行うのだ。Webページの表示が遅くなってシステムを拡大する、という背後にはビジネスルールが存在する。エンジニアがそれを判断して拡大するのではなく、ビジネスサイドが提供したいものによってアーキテクチャが操作され、拡大、縮小できるべきだ。
つまり、ビジネスがシステムを操作するようにするのである。
そして、アーキテクトはコスト意識を持つべきである。
可用性を実現する4つのアルゴリズムから1つを選ぶ、という判断はエンジニアとしてはできるだろう。しかし、ビジネス面で、アルゴリズム1とアルゴリズム2ではどれだけコストが違うのか?
アーキテクトとして、技術と売り上げやコストを同じ次元で考えるべきだ。
≫続き「Amazonは1時間に最大1000回もデプロイする。クラウドネイティブなデプロイとはどういうものか? AWS re:Invent基調講演(Day2 AM)」へ
AWS re:Inventレポート
- [速報]Amazonクラウド、新サービス「Redshift」発表。データウェアハウスの価格破壊へ
- エンタープライズがクラウドへ移行する6つの理由。AWS re:Invent基調講演(Day1)
- Amazonはハイマージンをむさぼる既存の「偽装クラウド屋」とは違う。AWS re:Invent基調講演(Day1)
- [速報]Amazonクラウド、インメモリデータベースと大規模データ分析に適した2つの大型インスタンス「ハイメモリ」と「ハイストレージ」を発表。AWS re:Invent基調講演(Day2)
- [速報]Amazonクラウド、データ統合サービスの「AWS Data Pipeline」を発表。データのバッチ処理、スケジューリングなどの自動化を実現。AWS re:Invent基調講演(Day2)
- 「KindleとAWSは似ている」 Amazon CEOジェフ・ベゾス氏、自社のクラウドビジネスを語る。AWS re:Invent基調講演(Day2)
- AmazonクラウドのCTO「クラウドネイティブなアーキテクチャには4つの戒律がある」。AWS re:Invent基調講演(Day2 AM)
- Amazonは1時間に最大1000回もデプロイする。クラウドネイティブなデプロイとはどういうものか? AWS re:Invent基調講演(Day2 AM)
あわせて読みたい
Amazonは1時間に最大1000回もデプロイする。クラウドネイティブなデプロイとはどういうものか? AWS re:Invent基調講演(Day2 AM)
≪前の記事
2012年11月の人気記事「オバマ大統領選挙を勝ち取ったITチームとは」「Amazon、データウェアハウスの価格破壊へ」「JavaScriptにおける、MVCフレームワーク以外の選択肢」