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

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

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

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

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

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。