AWS Auroraのストレージ耐性について考える

AWS
この記事は約3分で読めます。
スポンサーリンク

通常案件であれば、AuroraでマルチAZ構成を組めば大抵の要件は満たすことができます。
ただ、お客様から「本当に?」と聞かれる場面もあるのでキチンと説明できるように仕様は理解しておきましょう。

Auroraの基本構造

Auroraのストレージを考える場合は、「現在使用しているストレージ」と「バックアップストレージ」を分けて考える必要があります。
現在使用しているストレージは3AZに6つのコピーが作成されます。
2つのコピーが使用不可能になっても読み込み/書き込みは可能です。
そのため、Aurora の現行ストレージが使用不可能になる場面はほとんど無いと考えても良いと思います。

Auroraの日時バックアップ及びポイントインタイムリカバリで使用されるデータはS3に保存されます。
Auroraを東京リージョンで運用している場合は、東京リージョンのS3ですね。

ポイントインタイムリカバリ用のデータは5分間隔でS3に保存されます。
このデータは、通常のデータベースだとロールフォワード用のアーカイブログと考えるとわかりやすいかと思います。
ポイントインタイムリカバリは、日時バックアップと、このアーカイブログを使用して任意の時間でのデータベースリストアを実現します。

こう考えると、東京リージョンのS3が使用できる状態であればポイントインタイムリカバリでデータベースを復旧できる状態となっています。
AuroraのストレージもマルチAZでのRAID5と考えると、そうそう破損することは無いでしょう。
ということで、通常の案件であればマルチAZ構成であれば問題が発生しないと考えることができます。

スポンサーリンク

マルチリージョンの検討

マルチリージョン構成にする場合は2つの方法があります。
・クロスリージョンリードレプリカを作成する
  AWS リージョン間での Amazon Aurora MySQL DB クラスターのレプリケート
・Aurora Global Databaseを使用する
  Amazon Aurora グローバルデータベースの使用

運用面を考慮すると「Aurora Global Database」が優位性があると考えています。

クロスリージョンリードレプリカは以下の問題があります。
・リードレプリカとの同期に時間がかかる
・レプリケーションはMySQLのバイナリログを使用するので時間がかかる
・リードレプリカをマスターに昇格させる場合、バイナリログを使用したリストアを行うので時間がかかる可能性がある。

「Aurora Global Database」はデータの同期をAWSのインフラで行います(ディスクでのデータ同期)
そのため、データ同期、マスター昇格がとても速いです。

コメント

タイトルとURLをコピーしました