クラウドエンジニアブログ

Azure 可用性ゾーンを使うならこんな構成

椎熊 裕一

椎熊 裕一

1. はじめに

みなさん、こんにちは。クラウドアーキテクトの椎熊です。
先日、東日本リージョンでも Azure 可用性ゾーン(以下、可用性ゾーン)の一般提供が開始されましたね。
従来の可用性セットよりも、さらに高い可用性が提供されるということで、日本での一般提供開始を待ちわびていた方も少なくはないのではないでしょうか?
Azure における可用性設計の選択肢が一つ増えました。本ブログでは可用性ゾーンについての概要と使うならこんな構成をご紹介したいと思います。


2. 可用性ゾーンとは

まずは、可用性ゾーンについて簡単にご紹介します。
可用性ゾーンは、Azure リージョン内でのデータセンターレベルの障害に対して高可用性を提供するサービスです。
1リージョンに可用性ゾーンは3つ以上存在し、1つの可用性ゾーンには、独立した電源、冷却手段、ネットワークを備えたデータセンターが1つ以上存在します。可用性ゾーンに渡ってサービスを展開することによって、冗長構成とすることができます。 イメージは以下のような感じです。データセンターをまるごと冗長化することが可能となります。


可用性ゾーン

以下のような特徴があります。


  • 冗長化方式
    • サービスによって冗長方式が違うため、利用したいサービスがどちらの冗長化方式に対応しているかを確認する必要があります。
      • ゾーンサービス
        リソースを配置するゾーンを任意で指定します。たとえば、仮想マシンの場合は、作成時に任意の可用性ゾーンを1つ選択します。利用者側でどの可用性ゾーンに配置するかあらかじめ決めておく必要があります。
        ゾーンサービス
      • ゾーン冗長サービス
        リソースが複数のゾーンにわたって自動的にレプリケートされます。
        たとえば、SQL Database の場合は、以下のように「このデータベースゾーンに冗長性を持たせますか?」の項目で「はい」を選択すると、可用性ゾーンを構成することができます
        「はい」を選択
  • SLA
    • 仮想マシンの場合は、99.99%の SLA が実現されます。
    • Azure Storage の場合は、ゾーン冗長をしても SLA に変わりはありませんが、耐久性(データを損失しない保証)に違いがあります。下記 URL を参照ください。
      「Azure Storage の価格の概要」
      https://azure.microsoft.com/ja-jp/pricing/details/storage/
      データ冗長オプション
  • 可用性ゾーンが使えるリージョン
  • 料金
    • 可用性ゾーン自体は無料で利用可能です。
    • ただし、仮想マシンの場合、2つの可用性ゾーンに2台の仮想マシンを展開した場合は、その2台分の仮想マシンの料金が課金されます。
    • Azure Storage の場合は、ローカル冗長ストレージ(LRS)と比較し、倍ほどの違いはございませんが、ゾーン冗長ストレージ(ZRS)の方が高いです。

最新情報は以下の URL からご確認ください。
「可用性ゾーンとは」
https://docs.microsoft.com/ja-jp/azure/availability-zones/az-overview

「ブロック BLOB の料金」
https://azure.microsoft.com/ja-jp/pricing/details/storage/blobs/


3. 可用性ゾーン使うならこんな構成

本ブログ執筆時点において、可用性ゾーンをフルに活用するのであれば以下のような構成が考えられます。

可用性ゾーンをフル活用

複数仮想マシンへトラフィックを振り分けるため、ゾーン冗長のロードバランサーを配置します。ゾーン冗長のロードバランサーですので、全ゾーンに渡って構成されます。

Web 層は、Web Apps ではなく、仮想マシンにしました。本記事の執筆時点では Web Apps は可用性ゾーンに対応していないためです。仮想マシンで可用性ゾーンを構成することにより、99.99% の SLA が保証されます。
また、仮想マシンスケールセットと合わせて利用することにより、各ゾーンの仮想マシン数を自動で均一にしてくれますので、仮想マシンが同じゾーンに配置されるといったことを防ぐことができます。
また、3台構成にすることによって、すべてのゾーンに仮想マシンを配置することができます。これはロードバランサーと仮想マシン間の距離を小さくすることでレイテンシーを低くすることができ、パフォーマンス向上が見込めるため、このような構成としました。ただし、3台以上にしても SLA がさらに向上するということはありません。ですので、コストを優先するのであれば2台構成とするのがよいでしょう。

DB 層は、SQL Database にしました。ゾーン冗長を利用するためには、DTU ベースの購入モデルにおいては Premium、仮想コアベースの購入モデルにおいては Business Critical かつ第5世代を選択する必要があります。

本構成においての月間の可用性は、ロードバランサー99.99% x 仮想マシン99.99% x SQL Database 99.995% = 約99.975% となります。従いまして、月間(24時間x30日で計算)のダウンタイムは、(1-0.99975)x 720時間 = 0.18時間となりますので、分に変換すると、0.18時間 x 60分 = 10.8分です。

仮想マシンを可用性セットとした場合の月間の可用性は、ロードバランサー99.99% x 仮想マシン99.95% x SQL Database 99.995% = 約99.935% となります。従いまして、月間(24時間 x 30日で計算)のダウンタイムは、(1-0.99935)x 720時間 = 0.46時間となりますので、分に変換すると、0.46時間 x 60分 = 28分です。
可用性セットでは、約30分となっていた月間のダウンタイムが、可用性ゾーンでは約10分に短縮されました。とても高可用性と言えるのではないでしょうか。


4. さいごに

可用性ゾーンによって、ダウンタイムを大幅に短縮することができるようになりました。可用性ゾーンも可用性セットも仮想マシンでの利用においては無料ですので、より高可用性となる可用性ゾーンを選択することがよいかと思います。
ミッションクリティカルなシステムがクラウドで稼動することが当たり前になるのもそう遠くないのかもしれません。今回の構成では、可用性を最大限に考えて構成しましたが、逆に特定のゾーンのみにリソースを配置してシステム間のレイテンシーを低減されるなどと言った使い方もできそうですね。
ぜひ利用してみてください。

【総合】お問い合わせ

ソリューションに関する全般的なお問い合わせはお気軽にご相談ください。

ピックアップ

セミナー情報
クラウドエンジニアブログ
clouXion
メールマガジン登録