2022/09/1

AWSにおける可用性の基礎知識とは? 可用性を高める方法3点を解説!

 
  

AWSとは?

AWSとは、Amazonから提供されているクラウドコンピューティングサービスの事です。正式には、Amazon Web Servicesと言います。 クラウドコンピューティングとは、ユーザーが自前のハードウェアやソフトウェアを持っていなくても、インターネットを介して、コンピューターによるサービスを必要な時に必要な分だけ利用できるサービスです。 それに対し、全てのシステムをユーザーが管理する設備内へと設置して運用する形態を「オンプレミス」と言います。

AWSにおける可用性

近年、社内の様々な領域でデジタル化が進むにつれて、システムの可用性への要求が高まっていく傾向が見られます。 特に基幹システムなど、システム停止が事業の運営に大きな影響を与える場合、システムの可用性を持続させる事が非常に重要となります。 AWSを始めとするクラウド事業からは、クラウド上にて構築されるシステムの可用性を高めるための情報や、実践をサポートするサービスが提供されています。 この記事では、可用性に関する基本的な情報を解説すると共に、クラウド上にて構築されるシステムの可用性を高める方法について説明していきます。

可用性とは?

可用性とは「システムの利用が可能である状態を維持する力」を意味する言葉として使われます。 ユーザーから見れば、利用したい時にシステムを利用する事の出来る度合いと考えることも出来ます。システムを利用する事の出来る時間が長いほどに「システムの可用性」は高くなるという訳です。 それとは逆に、トラブルやアクシデントによってシステムが停止に陥った場合、システムが復旧されるまではシステムが利用出来ないため「システムの可用性」は低くなります。 可用性の評価をするための基準としては「稼動率」という言葉がよく使われます。

稼働率とは?

稼動率とは、対象となる期間内でシステムが稼動していた時間の割合を示す言葉として使われる言葉です。「システムが稼動していた時間」÷「対象となる期間の長さ」という式で計算されます。 また、対象となる期間の長さはシステムが稼動していた時間と停止していた時間の和と同等なため「システムが稼動していた時間」÷「システムが稼動していた時間 + システムが停止していた時間」という式でも計算することが出来ます。 稼動率の単位には「%」が使われ、システムが稼動していた時間が長ければながいほど、100%に近くなります。なお、稼動率から停止していた時間を割り出したい時には、「対象となる期間の長さ」×「1から稼動率を引いた数字」によって求める事が出来ます。

AWSとSLAについて

稼動率は過去の実績に基づいた指標で、システムおよびサービスを評価する上で重要な要素ですが、未来の稼動率を過去の稼働率をもとに推測する事は極めて困難です。 そこで重要となるのがSLAとなります。昨今、AWSからWebサイトなどによってSLAが頻繁にアナウンスされています。

SLAとは?

SLAとは「service level agreement」の略称で、サービスの利用者と提供者との間にて図られる「サービスの水準に関する合意」を意味する言葉として用いられます。 先ほど説明した稼動率は、クラウドサービスにおけるサービスの水準として用いられる指標であり、クラウド事業者は目標となる稼動率を超えられるよう出来る限りの努力を尽くしています。 SLAには、目標となるサービス水準を期間内に達成する事が出来なかった場合に、サービス利用料の返金や減額などといった、ペナルティに関する規定が含まれる事もあります。 クラウドサービスの利用者は、システムの計画や設計をするにあたり、クラウド事業者がSLAとして提示するサービス水準を、基準の1つとして用いることが出来ます。

SLAが引き上げられる背景

前述にもある通り、昨今AWSからWebサイトなどによって、頻繁にSLAがアナウンスされています。 AWSがサービスの水準を引き上げている背景として、オンプレミスによって稼働している既存のシステムをクラウドへ移行していきたいという思惑が各企業にあることが仮説として考えられます。 技術のライフサイクルとしてクラウドコンピューティングは既に成熟期であり、これまでオンプレミスで構築や運用をされていたシステムのクラウドへの移行が国内で今後増加していく未来が予想されます。 移行する先のクラウドを選ぶにあたり、クラウド事業者の提示するサービス水準は非常に重要な判断材料となるので、移行先として選定される確率を上げるためにクラウド事業者は、サービス水準を引き上げていく事が考えられます。

可用性を高める方法3点

クラウド事業者は、クラウド上で構築や運用されるシステムの可用性を高めるための情報や実践をサポートするサービスの提供をしています。 ここからは、可用性を高める方法や、可用性を高めるのに役立つAWSサービスを紹介していきます。

方法1:負荷の分散

可用性を高める手段として第一に挙げられるのが「冗長化」です。例えば、システムの構成をするための仮想マシンを複数台起動させる事で冗長化を図る事が出来ます。 しかし、バックアップを目的に複数台の仮想マシンを作成した場合、冗長化した仮想マシンはコスト節減の対象となりやすいため、削除されてしまう可能性があります。 よって、いつ仮想マシンが削除されたとしても稼動を正常に続けられるシステムの設計をする必要があります。 直接のアクセスを避けるため、単一のエンドポイントを設けるためロードバランサーを配置し、エンドポイントを経由して冗長化された仮想マシンにアクセスをします。 AWSは、負荷を分散させるELB (Elastic Load Balancing)というサービスを提供しており、ELBの使用により提供されるロードバランサーにおけるドメイン名を、単一のエンドポイントで利用することが出来ます。

方法2:死活監視

単一のエンドポイントの設置だけでなく、仮想マシンの稼動状態を常に監視し、異常の生じた仮想マシンを自動で取り除くの仕組みを整える事が望まれます。AWSから提供されている死活監視サービス「Amazon CloudWatch」を利用すると良いでしょう。 ELBの健康チェック機能や、自動スケーリングサービスのAuto Scalingと組み合わせる事によって、異常の確認された仮想マシンを自動で取り除くと共に、正常なインスタンス数を維持する事が出来ます。

方法3:マルチAZ構成

クラウド事業者は「リージョン」や「アベイラビリティーゾーン」という単位で分けてデータセンターの管理をしています。 AZやリージョンはそれぞれ、他のAZやリージョンから互いに独立しているため、複数のAZやリージョンを使用する事で、システムの構築や運用をする事により、可用性の向上を実現することが出来ます。 例として、複数の仮想マシンを起動させる場合、複数のAZに渡って仮想マシンを均等に起動させることにより、1つのAZに障害が生じても、他のAZによってカバーすることが出来るため、システム停止を避けることが出来るのです。

AWSの可用性を高めよう

この記事では、AWSにおける可用性に関する説明をしてきました。AWSを始めとするクラウドサービスの可用性は、スケーラビリティーなどといった他の特徴並ぶ大きな魅力の一つと言えます。 基本的な知識を身に付けることで、可用性の高いシステムを設計が出来るようになり、クラウドサービスのメリットをより一層引き出すことが可能となります。 AWSにおける可用性に興味を持たれた方は、是非ともこの記事の情報を参考にしてみて下さい。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】