1337ミリ秒が5ミリ秒に! そのアーキテクチャとは

米Amazon.comが9月28日(米国時間)にKindle新製品を発表した際に、同社はプレスリリースを2枚用意した。世間の注目はAndoidプラットフォームを採用したKindle Fireに集まっていたが、Fireを含むKindleの4つの新製品を1枚にまとめ、もう1枚でFireに搭載した新モバイルブラウザ「Silk」をアピールした。モバイルデバイスの新製品の話題はすぐに過去のものになってしまう。しかし、SilkはAmazonのモバイルデバイスを長期的に支えるテクノロジになるいうことなのだろう。

Amazon曰く、Silkは「クラウドでアクセラレートする"スプリット(分割)ブラウザ"」(Cloud-Accelerated "Split Browser")である。Amazonが提供するクラウド・コンピューティング環境「Elastic Compute Cloud (EC2)」とFire側のブラウザが連係しながら、WebページのレンダリングやWebアプリケーションの実行を高速化する。

今日のWebページは、いくつものサイトから取得したデータで構成されている。例えばCNN.comのメインページを開く場合、CNNからデータを取得するだけではなく、25の固有ドメインから161ものファイルを取得しなければならない。Amazonによると、一般的なWebページでも13の異なるドメインから約80ファイルを取得する必要がある。

モバイルデバイスのワイアレス接続はレイテンシが大きく、1往復におよそ100ミリ秒を要する。加えて、デバイスのプロセッサやメモリーの制約を受けるモバイルデバイスでは同時に処理できる能力に限りがある。通常のモバイルブラウザは下左の図のように、100ミリ秒の往復の繰り返しを複数のドメインに対して行うため、Webリクエストに1337ミリ秒を要し、パソコン用のブラウザに比べるともっさりとした反応になってしまう。

数多くのサイトと直接やり取りする一般的なモバイルブラウザ(左)と、EC2がWebリクエストをサポートするAmazon Silk(右)

Silkでは、上右の図のようにEC2がWebページの構成を把握し、複数のドメインとやり取りする。EC2にはインスタンスあたりの8コア、68GB RAMが割り当てられており、接続はオプティカルネットワーク。レイテンシは多くのケースで5ミリ秒以下である。十数のドメインから数多くのファイルを取得する必要がある場合でも、EC2は全てに対して同時にリクエストを行い、それらを集約してデバイスのモバイルブラウザに送るため、上の例のようにわずか5ミリ秒でWebリクエストを完了できる。ブラウジングが速くなるだけではない。端末のブラウザの作業が減れば、Fireのプロセッサの負担が軽減され、より長いバッテリー駆動が可能になる。

もう少し掘り下げると、通常Webリクエストは、ドメインネームを解決し、httpリクエストを発行するためにTCP接続を確立する。リクエストごとにTCP接続の確立を繰り返すと時間とリソースを費やすことになるが、Silkでは端末のブラウザがEC2が常に接続する形になる。加えてAWSはメジャーなインターネットサービスプロバイダーとピアリングの関係にあり、Silkのバックエンドサーバは主要なサイトと接続し続けているため、Silkユーザーは多くのケースで再接続の手間なく次のページのロードを始められる。またSilkのスプリット構造は多重パイプライン型のプロトコルで接続されており、1つの接続であらゆるコンテンツを転送できる。

>> 著作権侵害やプライバシー問題の指摘も……