AWSのデータセンターの中身を、設計総責任者が話した:「ここまで話していいの?」(2/2 ページ)
Amazon Web Services(AWS)のバイスプレジデント兼ディスティングイッシュド・エンジニア、ジェームズ・ハミルトン氏は、AWSが11月11〜14日に開催した「AWS re:Invent 2014」で、データセンターの構成、サーバーやスイッチの自社設計、SR-IOVなどについて語った。
どんなアプリケーション運用担当者も、データセンター運用者も、可用性を高めるべく最大限の努力をする。しかし、単一のデータセンターだけでは、大まかにいえば99.9%の可用性しか達成できない。そこで高信頼性アプリケーションを運用する人たちは、もう1カ所のデータセンターを使い、冗長性を確保しようとする。2つのデータセンターが隣接していては意味がないので、地理的に離れたところを使う。
しかし、地理的に離れていると、ラウンドトリップタイムは長くなる。ニューヨークとロサンゼルスの間は74ミリ秒だ。一方、SSDにトランザクションをコミットする際の遅延は1、2ミリ秒であり、74ミリ秒も待つことができない。従ってこの距離では、同期レプリケーションは不可能だ。このため(メインサイトで)データをコミットし、その結果をできるだけ早く他方に送ることを考える。こうした仕組みで、(メインサイトにおいて)実際に障害が発生すると、一部のデータが失われる。そこでログなどから、例えば1週間かけて復旧作業が行われる。
こうした仕組みは、データセンターが破壊されるような、非常にまれに起こる重大な障害に対してはうまく機能する。われわれも同じ目的で利用する。しかし、書き込みエラーやアプリケーションの障害、負荷分散の障害など、もっと頻繁に起こる問題には対応できない。このような、年に8回くらい発生する問題に対応するのがAZだ。
複数AZ間の遅延は1、2ミリ秒であるため、(アプリケーションは)2つのAZに対して同時にコミットができる。一方のデータセンターで何らかの問題が起こっても、顧客には全く影響がない。だから2000年にこれについて説明を受けたとき、「驚異的だ、アプリケーション運用を一変させる仕組みだ」と思った。
全ての顧客には複数のAZを活用する選択肢がある。このモデルを活用するアプリを書くのは、活用しない場合に比べて簡単ではない。だから「全てのアプリでやるべきだ」とは言わない。また、2つのAZ双方が破壊されるケースが怖いなら、リージョン間のレプリケーションをすればいい。リージョン間のレプリケーションは誰でもやっているが、AZは他の事業者と根本的に異なる機能だ。
データセンターの内部はどうなっているか
データセンター2、3カ所については、自前で変電所を配備しているという、「節約できるコストはたかが知れている。それよりも、早いことが理由だ」。
データセンター内のサーバーおよびネットワーク機器は独自設計だ。ストレージについても、ストレージを超高密度でラックに収めたものを作るなどしている。
ハミルトン氏は、特にネットワークについて不満を持っているようだ。
「ネットワークのコストは、ムーアの法則と反比例して上昇を続けている」。理由は、ネットワーク機器の価格がサーバーと比べて高止まりしていることと、データ分析などで、データセンター内のサーバー間のトラフィック(いわゆるEast―Westトラフィック)が増加を続けていることにあるとする。
「ネットワーク機器の世界では、エンタープライズ顧客が複雑な機能を要求し、機器ベンダーはこれに応えなければならない(これが価格を押し上げる一因になっている)。だが、われわれにはそうした機能は必要ない」。独自設計のネットワーク機器で、サポート料金だけを考えても大きな節約につながった他、毎週のようにコードを改善することで、パフォーマンスがますます良くなっているという。
サーバーに関しては、ネットワーク機器に比べて課題は少ないが、それでも「商用ベンダーのサーバーは、流通チャネルやサポート体制でコストが30%跳ね上がる」とハミルトン氏は言う。AWSでは、「サーバーのメンテナンスを専門に行うチームがいるため、障害のコストは非常に小さい」。ポート数や環境への配慮など、やりたいことをやれる設計になっている。社内にサーバー設計の技術を蓄積することで、AWS re:Invent 2014で発表したように、インテルとの提携により、CPUのクロックアップによる性能改善なども実現している、という。
データセンター内のネットワークトラフィックをどうする
データセンター内部では、サーバー間の遅延の最小化が、大きな課題となる。
しかし、ネットワークアダプターの経由による遅延はマイクロ秒レベルで、ケーブル伝送遅延はナノ秒レベル。これに対し、「アプリケーションからゲストOS、ハイパーバイザー、ネットワークアダプターに至るソフトウェアスタックにおける過程では、ミリ秒レベルの遅延が発生している」。そのため、ネットワークアダプターを論理的に特定仮想マシンに割り当てるSR-IOVの採用を広げているという。
SR-IOVは以前からある技術なのに、なぜ今なのか。理由は、メータリングや各仮想インスタンスへの転送速度の上限設定、DDoS対策などの機能を実装しなければならず、これに時間が掛かったからだという。
Copyright © ITmedia, Inc. All Rights Reserved.