高可用性の解説(AWS認定クラウドプラクティショナーシラバス用語)

高可用性の解説(AWS認定クラウドプラクティショナーシラバス用語)
目次

高可用性とは


高可用性(High Availability:HA)とは、システムやサービスが障害や異常事態に直面しても、停止することなく長期間にわたって継続して正常に稼働し続ける能力のことです。 ITインフラにおいて「可用性(Availability)」とはシステムが利用可能な状態を維持している度合いを指し、これを極めて高い水準(例えば年間稼働率99.99%や99.999%など)で維持する設計や状態を「高可用性」と呼びます。 ハードウェアの故障、ネットワークの切断、自然災害など、システムに障害が発生することは「避けられないもの(Everything fails, all the time)」として前提に置き、単一障害点(Single Point of Failure:SPOF、そこが壊れるとシステム全体が停止してしまう箇所)を排除するアーキテクチャを設計することが高可用性の基本です。

具体例

高可用性は「飛行機のエンジン」や「病院の予備電源」に例えることができます。

  • 飛行機の双発エンジン:旅客機は通常、左右に2つのエンジンを搭載しています。もし飛行中に片方のエンジンが鳥を吸い込んで故障(システム障害)したとしても、もう片方のエンジンが動き続けているため、安全に飛行を継続し最寄りの空港に着陸することができます。
  • 病院の無停電電源装置:病院の手術室では、地域の落雷で停電が起きたとしても、瞬時に自家発電機やバッテリー(バックアップシステム)が起動し、医療機器の電力が途切れることはありません。
このように、一部が壊れても全体としてはサービスを提供し続けられる仕組みが高可用性です。

もう少し詳しく

AWSにおける高可用性アーキテクチャの基本は「マルチAZ(マルチアベイラビリティーゾーン)配置」です。 AWSのリージョン内には、物理的に離れ、独立した電源とネットワークを持つ複数の「アベイラビリティーゾーン(AZ)」が存在します。もし1つのAZ内にあるデータセンターが火災や停電で完全にダウンしたとしても、別のAZに同じ役割を持つサーバー(レプリカやスタンバイ)を配置しておけば、システム全体としては停止することなく処理を継続できます。

高可用性を実現するためには、サーバーを冗長化(複数台用意)するだけでなく、それらのサーバーにトラフィックを適切に振り分ける仕組みが必要です。ここで活躍するのが「Elastic Load Balancing (ELB)」です。ELBは背後にある複数のサーバーの健康状態(ヘルスチェック)を常に監視し、障害が起きたサーバーにはアクセスを振り分けず、正常なサーバーのみにユーザーを誘導します。 さらに、Amazon RDS(リレーショナルデータベース)のマルチAZデプロイメント機能を利用すると、メインのデータベースに障害が発生した際、自動的に別AZのスタンバイデータベースに切り替わる(フェイルオーバー)ため、データベース層の高可用性も容易に実現できます。

試験でのポイント

CLF-C02試験では、高可用性の実現方法として「マルチAZ(マルチアベイラビリティーゾーン)アーキテクチャ」が非常に頻繁に出題されます。「可用性を高めるためにはどう設計すべきか」という問題の正解は、ほぼ必ず「リソースを複数のアベイラビリティーゾーンに分散して配置する」という選択肢になります。 また、「単一障害点(SPOF)の排除」というキーワードも重要です。「フォールトトレランス(耐障害性:一部が故障しても無停止で動作し続ける能力)」と似ていますが、高可用性は「多少の性能低下や短い切り替え時間はあっても、サービス全体としては稼働し続けること」を目指す概念として区別されることもあります。

関連する用語

高可用性を物理的なインフラレベルで支える「アベイラビリティーゾーン(AZ)」、トラフィックを正常なリソースに分散する「ELB(Elastic Load Balancing)」、およびシステム障害の前提を説く「AWS Well-Architected framework(信頼性の柱)」が重要な関連用語です。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ