Amazon RDSの新機能:リードレプリカをマスターに昇格させる!

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Amazon RDSの新機能は、リードレプリカの昇格機能!

RDBの面倒な管理をよろしくやってくれるAmazon RDSは、アプリケーションのインフラに関わる構築や運用に時間を使いたくない顧客やエンジニアにとって無くてはならないサービスです。そんなRDSに新機能が追加されました。リードレプリカの昇格機能です。この機能によって得られるメリットは以下の3つです。</p

  • インデックスの作成・再作成等のDDL操作の高速化
  • 大きなデータベースを複数のマスターに分けるシャーディング
  • MultiAZとバックアップ時へのリカバリ以外の方法を提供

リードレプリカ

リードレプリカは、その名の通り読み込み専用として利用するマスターの複製データベースです。特徴は、マスターのデータを非同期にレプリケーションします。非同期ですので常にマスターと完全に内容が一致しているわけではありませんから、マスターの負荷分散用として使って下さい。

同期と非同期

データベースの同期と非同期については以前のブログでご紹介しましたのでそちらをご覧ください。

Amazon RDSによるレプリケーションについて理解する

データベースのセットアップ

ここでは一連の作業を順番にご紹介したいと思います。まずは、RDSでデータベースの作成からです。ここではMySQLを選びました。

インスタンスサイズを指定します。RDSでマイクロインスタンスが指定できるようになったのは嬉しいですね。同期レプリケーションをする場合は、ここでMultiAZを指定してください。今回は省略します。

データベースを置くデータセンターの場所をAZで指定します。MultiAZやリードレプリカを置く場所は別のAZのほうがいいですね。

自動バックアップの世代や時間帯を指定できます。これで基本的なデータベースの作成作業は終わりです。最初に作ったのがマスターとなります。

リードレプリカの作成

続きまして、マスターのデータベースからリードレプリカを作成します。

ソースとなるマスターを指定して、データセンターの場所やインスタンスタイプを指定します。

リードレプリカの作成が開始されると、マスターのバックアップが始まり、レプリカの作成が始まります。

何分か待つと作業が完了します。

マスターの詳細情報を見てみると、リードレプリカの名前が表示されています。

リードレプリカの詳細情報を見てみると、ソースとなるマスターの名前が表示されています。

リードレプリカを昇格させる

今回の本題です。作成されたリードレプリカをマスターへと昇格させます。メニューから選びます。

データベースのバックアップのタイミングを指定しています。

リードレプリカの昇格前に注意画面が表示されます。ここでは、「ソースとなっているマスター側のトランザクションを全て終了させてね♪」と言っています。リードレプリカは、マスターから非同期レプリケーションしていますので、マスターのメモリ上にあるデータやトランザクションを完了させないとレプリカへの反映が完了しません。できるだけ最新状態にしてから昇格させるべきですので従いましょう。

リードレプリカの昇格作業が始まりました。

イベントログを見ると作業進捗が分かりますね。

リブートしています。

バックアップしています。

全ての作業が完了しました!!

元々リードレプリカだった新マスターの詳細を見ると、リードレプリカの確認欄に何も記述が無いですね。独立したデータベースであることが確認できました。

まとめ

今回は、Amazon RDSの新機能であるリードレプリカの昇格機能についてご紹介しました。管理コンソールからクリック1つでデータベースの運用操作ができるのは素晴らしいですね。今後の機能追加にさらに期待です!!

参考資料

Amazon RDS for MySQL Now Supports Read Replica Promotion