前回までに述べたように、「Amazon Aurora」はクラウドの特性を存分に生かして性能や可用性を高めている。ただ実際にAuroraがどのようなシステム構成で運用されているのか、利用者には見えにくい。今回は、AWS(アマゾン・ウェブ・サービス)が公開する資料や、筆者のAurora運用経験を基に、Auroraの特徴である「共有分散ストレージ」と「キャッシュの分離」について分かったことを解説する。

共有分散ストレージでデータの整合を確保

 まず、共有分散ストレージについて見ていこう。Auroraは、複数のデータベースノードで分散ストレージを共有している。書き込み可能なノード(インスタンス)は1台に限られるものの、その他のノードは「リードレプリカ」として読み込み用に利用できる。障害時には、リードレプリカのうちの一つをマスターノードにすぐに切り替えられる。ノード間のデータ同期の遅延もほとんどない(図1)。

図1●共有分散ストレージを採用するAuroraは、データ同期の遅延を抑えられる
(出所:Socket)
[画像のクリックで拡大表示]

 「Amazon RDS for MySQL」でもリードレプリカは利用できるが、マスターとリードレプリカは別々のストレージを持つ。書き込みが発生したらノード間でデータを送って同期するが、数百ミリ秒から多い時では数十秒の遅延が発生する。またマスターに障害が起こっても自動的にリードレプリカがマスターに変更されることはなく、手動での切り替えが発生する。瞬時に切り替えたければ、「アベイラビリティゾーン(AZ)」と呼ぶ地理的に独立したデータセンターを使ってウォームスタンバイの構成を採る必要がある。

この先は会員の登録が必要です。有料会員(月額プラン)は申し込み初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら