AWSにおける可用性の柱「アベイラビリティゾーン」、この10年の進化とは? Azureも可用性ゾーンを正式サービスとして開始

2018年4月2日

AWSが高可用性システムのための仕組みとして提供している「アベイラビリティゾーン」は、当初の物理的なシステムの冗長性を実現するという目的から進化してきた。Microsoft Azureも「可用性セット」を正式サービスとして開始したことで、同様の仕組みがクラウドにおける冗長性実現の事実上の標準アーキテクチャになったと言えそうだ。


サーバはいつか必ず故障し、ネットワークもいつか必ず障害を起こします。これはクラウドでも同じことです。そこで、そうした故障が起きたとしてもできるだけ落ちないシステムを構築するための手段としてAWSが提供しているのが「Availability Zones」(アベイラビリティゾーン)です。

アベイラビリティゾーンは、いまから10年前の2008年3月26日にAWSが開始したサービス。Amazon.com CTOのWerner Vogels氏は、自身のブログにポストした記事「Looking back at 10 years of compartmentalization at AWS - All Things Distributed」で、この10年のアベイラビリティゾーンの進化を振り返っています。

Looking back at 10 years of compartmentalization at AWS

設備だけでなくソフトウェア的にも自律したアベイラビリティゾーン

現在のAWSは地域ごとにリージョンがあり、そのリージョンは複数のアベイラビリティゾーンから構成されています。例えばAWS東京リージョンには3つのアベイラビリティゾーンがあります。

AWSにとって最初のアベイラビリティゾーンは、前述の通り2008年3月に米東リージョン(バージニア)に3つ設定されたものです。

もともとアベイラビリティゾーンは、電源やネットワーク、サーバなどのデータセンターを構成する設備やハードウェアの冗長化が目的だったとVogels氏。しかしそれはやがて、クラウドにおけるソフトウェアの開発や運用にも影響を与えてきたと振り返っています。

Availability Zones were originally designed for physical redundancy, but over time they have become re-used for more and more purposes. Zones impact how we build, deploy, and operate software, as well as how we enforce security controls between our largest systems.

もともとアベイラビリティゾーンは物理的な設備の冗長性のために設計されたものだ。しかしやがてこれはさまざまな目的のために使われるようになってきた。そして大規模なシステムにおけるセキュリティコントロールだけなく、私たちがソフトウェアの構築、展開、運用においても影響を与えるようになったのだ。

電源、ネットワーク、冷房、ハードウェアなどを別々に備え、物理的な面で独立した存在であるアベイラビリティゾーンは、やがてAWSのサービスもできるだけアベイラビリティゾーンごとに自律するものとして実装されるようになったとのこと。

これによって物理的な故障だけでなくソフトウェアによるエラーもアベイラビリティゾーン内へ封じ込めることができるようになったとVogels氏。

AWSのなかでは、ソフトウェアのデプロイやコンフィグレーションを変更する場合、同時に複数のアベイラビリティゾーンに影響するような操作をしないようにしているとのことです。

AWS内部ではアベイラビリティゾーンをさらに分割している

そして現在ではさらに障害範囲を細分化して封じ込められるように、アベイラビリティゾーン内で分割されたサービスも登場していると。

With the phenomenal growth of AWS, it can be humbling how many customers are being served even by our smallest Availability Zones. For some time now, many of our services have been operating service stacks that are compartmentalized even within zones.

AWSの驚異的な成長に伴って、もっとも小さなアベイラビリティゾーンでも多くのお客様へのサービスを提供するようになっています。そこで現在では、多くのサービスがアベイラビリティゾーン内でさらに分割された区画としてオペレーティングサービススタックを持つようになってきました。

Vogels氏はその例としてAWS内部のサービス向けに独自開発したNATやロードバランスサービスの「AWS HyperPlane」を挙げています。

HyperPlaneでは、アベイラビリティゾーンをさらに「Cell」(セル)に分割し、セルごとに何組かの顧客用サービスを収容することで、セル内で何らかの障害が起きたとしても別のセルに影響が及ばないように障害を封じ込めていると説明しています。

AWSにおいてアベイラビリティゾーンは現在でも可用性実現の柱であり、それを活用した可用性向上の技術はつねに進化していることが分かります。

Microsoft Azureが「可用性ゾーン」の正式サービス開始

一方のマイクロソフトは、このAWSのアベイラビリティゾーンとほぼ同じ仕組みで同じ名称を持つ「Availability Zone」(可用性ゾーン)を3月30日付けで正式サービスとして開始しました

現在では一部のリージョンのみ対応していますが、今後グローバルに展開していくとのこと。

マイクロソフトはこれまで、可用性を高めるおもな仕組みとして「可用性セット」を提供していました。

可用性セットとは、データセンター内で異なるラックやストレージ、スイッチに仮想サーバを分散配置することで、物理的に冗長化したシステムを構成できるもの。

これまで、この可用性セットよりも広域な分散はマルチリージョン構成でした。可用性セットは、この可用性セットとマルチリージョンのあいだを埋める存在となります。

下記は同社が公開している冗長化に関するインフォグラフィックの一部を抜き出したものです。単一サーバのSLAは99.9%、可用性セットにすることでこれが99.95%になり、可用性ゾーンを利用すると99.99%になると説明されています。

What is resiliency in Azure?

ゾーンがクラウド共通の可用性アーキテクチャに

AWSのアベイラビリティゾーンと同様な仕組みは、Googleも「ゾーン」としてすでに提供していますし、OracleもOracle Cloudで「Availability Domain」と呼ぶ同様の仕組みを提供していますちなみにセールスフォース・ドットコムも似たような仕組みを「Pod」として提供しています)。

Microsoft Azureが可用性ゾーンを正式サービスにしたことで、こうした仕組みがクラウドにおける可用性向上を実現する事実上の標準的なアーキテクチャになったのではないでしょうか。

あわせて読みたい

AWS Microsoft Azure クラウド




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本