AWS Amazon Auroraの概要とフェイルオーバーについて

はじめに

システムの写真

AWSが提供するデータベースエンジンであるAmazon Auroraですが、よくAuroraとRDSについて比較されております。実はAuroraはRDSの一部であり、RDSでデータベースを作成する際に選択できるDBエンジンのひとつです。今回はそんなAmazon Auroraについての概要と、Amazon Auroraの特徴であるフェイルオーバーについてご紹介いたします。

AWS Amazon Auroraとは

AWSが提供するリレーショナルデータベースのマネージドサービス(アウトソーシング)に、RDS(Amazon Relational Database Service)があります。RDSは可用性を強化、耐久性の向上、または読み込み負荷の軽減を実現するために、レプリケーション機能を持つサービスです。メジャーなデータベースエンジンである、MySQL / MariaDB / Oracle /SQLServer / PostgresSQLが使用できることに加え、AWSが提供するAmazon Aurora(以下、Aurora)も使用することができます。MySQLとPostgresSQLのデータベースエンジンとも互換性があるリレーショナルデータベースです。

Auroraの特徴

AuroraはAWSがクラウド向けに構築したリレーショナルデータベースです。AuroraはほかのRDS(例えばRDS for MySQLなど)と比べ、高度なMultiAZ構成/自動復旧による高可用性/大容量ストレージのサポートを提供しています。また、ほかのRDSと比べて、高いスループットを持っており、MySQLの最大5倍、PostgresSQLの最大3倍高速であると謳われています。具体的には以下の相違があります。

特徴AuroraRDS for MySQL
Multi-AZ構成3つのAZに2つずつのレプリケーションをデフォルトで構成2つのAZを使用
データベースストレージサイズ最大64TiB最大32TiB
最大リードレプリカ数最大15最大5
レプリケーションタイプ非同期的(ミリ秒単位)MultiAZ構成:同期 リードレプリカ:非同期
リードレプリカのフェイルオーバーターゲットとして機能はい(データ損失なし)はい(数分間データ損失の可能性)
自動フェイルオーバーはいいいえ

Auroraのストレージ構成

Auroraのデータは、SSDドライブ内の仮想ボリュームであるクラスターボリュームに保存されます。クラスターボリュームのデータは1つのリージョン内の3つのアベイラビリティーゾーンのそれぞれに2つのデータを自動的に複製するため、データ損失の可能性は低く耐久性を高く保つことができます。

フェイルオーバーとは

フェイルオーバーとは、「予備も一緒に動かしている(ホットスタンバイ)システムにおいて、メインサーバーに障害が発生したときに自動的に予備サーバーに切り替えてくれる機能」を指します。フェイルオーバーの目的は「サービスの継続稼働のための最小ダウンタイムの実現」にあります。アプリケーションやサービスが停止すると困る場面において、障害発生時に稼働可能なサーバーに切り替えることで、サービスを停止することなく最小限のダウンタイムで安定稼働させることができます。

Auroraのフェイルオーバーの仕組み

Auroraにおいては、DBクラスターのプライマリDBインスタンスに障害が発生すると、自動的にフェイルオーバーします。管理者が手動で管理する手間がなく、迅速にフェイルオーバーを行う点は大きなメリットでしょう。

Auroraのリードレプリカが使用可能な場合は、リードレプリカを新たなプライマリDBインスタンスに昇格できます。リードレプリカとは、プライマリDBインスタンスを複製したもので、通常は読み取り時のみ使用されており、プライマリDBに更新があった場合、レプリケーションされるインスタンスです。他のリレーショナルデータベースがこのリードレプリカの数が最大5個であるのに対し、Auroraは最大15個まで設置することが可能です。このようにリードレプリカが複数設置されている場合は、あらかじめ定義された優先順位に従って昇格するリードレプリカを決定します。リードレプリカが使用可能でない場合は、新しいプライマリDBインスタンスを作成する必要があります。フェイルオーバーが発生しても、AuroraにアクセスしているアプリケーションのDBアクセス先は、クラスターエンドポイント(書き込みに使用するエンドポイントで、プライマリDBに接続)となっているため、変更の手間がないことも大きな特徴です。

おわりに

今回はAmazon Auroraについての概要と、Amazon Auroraの特徴であるフェイルオーバーの仕組みついてご紹介させていただきました。AuroraはRDSの一部であり、自動で迅速にフェイルオーバーを行う便利なサービスとなっています。管理者の手間を大幅に省くことができますので、ぜひこの機会に導入を検討してみてはいかがでしょうか?

参考文献:
https://lab.taf-jp.com/rdsのフェイルオーバー時の挙動を理解してみる/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です