AWS Auroraに期待できる高可用性、耐久性について

AWS Auroraとは?
Aurora(アウローラ)とはAWSが提供するクラウド向けのRDB(リレーショナルデータベース)製品の事で、以下の3点に秀でています。 ①サーバーの設定が不要であり、コンソールから簡単にRDBを作成することが可能。 ②継続的なバックアップ機能とレプリケーション機能を有している為、耐障害性が高い。 ③フルマネージド型サービス(※1)である為、運用管理タスクが不必要。 ※1:ハードウェアのプロビジョニング、ソフトウェアのパッチ適用等のデータベース管理タスクをAWSが一手に担うサービスの事です。
クラウド環境を導入する背景
昨今、様々なシステムやサービスの導入・更新の際にクラウド型を優先して検討する「クラウドファースト」の考え方が浸透してきました。ではなぜ多くの企業でクラウドが採用されるのか、その理由について少し触れてみます。
<クラウド導入により期待できる効果>
①自社内でかかるインフラ(サーバー)管理・運用のコストやタスクを軽減できる。 →サービス提供会社にインフラ(サーバー)の管理・運用を任せる為、軽減した分のコストやタスクを事業等に回す事が可能です。 ②必要な機能や容量だけを拡張できる為、システムのスケーラビリティが高い。 →機能や容量を増やすのに機器を設置したりソフトをインストールする必要があったオンプレミス型のサーバと比べると、クラウド型はWeb上でスペックや機能の変更が可能な為、事業状況に合わせて最適化する事で無駄を省けます。 ③システムのアベイラビリティ(安全運用、可用性)の向上を期待できる。 →レプリケーション機能、バックアップ機能、最新のセキュリティソフト、耐震構造の建物等のデータロストやサービスの停止を防ぐ対策をプロに任せる事が可能な為、自社で高いコストをかけて保管するより安全性、高可用性を期待できます。 ④場所を問わずにシステムの利用が可能。 →インターネットがつながる環境であればどこでもサービスを利用が可能な為、在宅勤務を可能とする等の働き方改革にもつながるでしょう。 特に③については、例えば金融関係やECサイト等のサービス停止が甚大な被害を及ぼすシステムにおいて、非常に重要であると言えます。
安全性、高可用性を保つ為には
常に最新のセキュリティ対策を実施する他にも、BCP(業務継続計画)や、DR(ディザスタリカバリー)対策、アクセス集中によるシステム負荷対策が必要となります。BCP、DR対策、負荷分散対策に対して有用な手段として、レプリケーションが挙げられます。 レプリケーションの仕組みとしては、レプリケーションの文字通り、システムのレプリカ(複製品)を作成しておき、稼働系に問題が発生した場合に待機系であるレプリカを稼働させて業務を継続させる仕組みです。また、レプリケーションはDBの負荷分散としても有用です。例えば、参照と更新が頻繁に行われるDBがあるとして、1つのシステム上で参照処理、更新処理を全て処理させた場合、システムに大きな負荷がかかってしまいます。そこで、レプリカには参照処理を任せ、元のシステムでは更新処理のみを実施する、というような手法でシステムの負荷を分散させることが可能となります。
しかし一方で、レプリケーションにはデメリットも存在します。
<デメリット>
①同等の環境を2つ用意する為、少なくない投資が必要となります。 ②レプリカのデータもリアルタイムで更新されていく為、ある時点の状態にシステムを戻す事はできません。 ※例えば、ウイルスに感染してしまった場合も感染データで更新してしまいます。 その為、システムの安全性、高可用性を保つためには最新のセキュリティ対策だけでなく、レプリケーションによって可用性を高めつつ、バックアップも併用して、修復するデータを用意する事が理想的と言えるでしょう。
AWS Auroraの高可用性と耐久性について
冒頭でも少し紹介しましたが、AWS Auroraはコンソールから簡単にRDBを作成可能であり、耐障害性も高いフルマネージド型のサービスです。本記事ではAWS Auroraの高可用性と耐久性についてフォーカスします。 Auroraは以下の2点から可用性が99.99%を超えるように設計されています。 ①3つのAZ間でデータを6つレプリケーションしている。 ②AmazonS3(※1)に継続的にバックアップしている。
<高可用性について>
Auroraレプリカについては、DBクラスター内における独立したエンドポイントであり、最大15個のレプリカを1つのリージョン内でAZ(※2)全体に分散する事が可能です。例えば、データがDB(プライマリ)に書き込まれると、AZ全体でクラスターボリュームに関連付けられた6つのストレージノードにデータが同期的に複製される為、データの冗長性を確保出来ます。その為、I/Oによるフリーズの回避、バックアップ時のレイテンシーを抑える事が可能となります。
<耐久性について>
物理ストレージの障害については、データブロックやディスクが透過的にリペアされ、インスタンスのフェイルオーバーについては通常30秒未満で完了します。(※プライマリインスタンスのみの場合は10分未満でサービスの回復が可能です。) 以上より、AWS Auroraは高い可用性と耐久性を備えたクラウド環境に最適なRDB製品と言えます。 ※1:AWSのサービスの1つで、Simple Storage Serviceの事です。 ※2:複数のデータセンターによって構成された、大きなデータセンターの単位の事です。
まとめ
いかがだったでしょうか。本記事ではシステムの安全性、高可用性についてレプリケーション機能とAWS Aurora製品に焦点を充てて紹介させていただきました。もちろんAWS Aurora以外にも魅力的な性能の製品はありますので、事業目的に合致する製品を選択いただければと思います。 最後までお読みいただきありがとうございました。本記事がご検討の一助となれれば幸いです。