Amazon RDS~リードレプリカ編パート①~


こんにちは!Rookieです。

今回はリードレプリカについてということで2回にわたってお話していきたいと思いますが、その前にAmazon RDSに関する情報をご紹介します!

先日、AWSの方でAmazon RDSのエンドポイント名が変更可能になったと発表されました。
これにより、既存のDBインスタンスが何らかの理由で使えなくなった場合でも、新しく作成したDBインスタンスの名前とエンドポイントを既存のそれに変更することができますので、アプリケーション内でエンドポイントを更新する必要がなくなります。
より細かな部分まで設定ができるようになり、便利な点が増えることは嬉しいことですね!

さて、ここから本題に入りまして、今回はリードレプリカの概要および利用目的と作成方法について記述したいと思います。

そもそもリードレプリカというのは、読み込み専用として利用することができるマスターの複製データベースになります。
Amazon RDSでは、マスターのDBインスタンスのデータを非同期にレプリケーションする機能としてこのリードレプリカを提供しています。

SnapCrab_NoName_2013-7-5_10-35-34_No-00

Multi-AZ構成の際にはスレーブのDBインスタンスに対して利用者が直接アクセスすることはできませんでしたが、リードレプリカの場合は直接アクセスすることが可能です。
読み込みが多いアプリケーション等に有効ですが、非同期のため常にマスターと完全に内容が一致しているわけではなく常に最新のデータが取得できるということではありませんので、マスターの負荷分散用として利用するのがよいかと思います。
更新系はマスターで、参照系はレプリカでという使い方が想定されます。なお、Multi-AZ機能との併用も、もちろん可能です。

リードレプリカについて、以下にまとめておきます。

○Read Replica

■利用目的

データベースでは書き込みよりも読み込み比率の方が高いため、データベースへのアクセス頻度が高くDBサーバのリソースが逼迫している場合などの際に、読み込みを複数の「リードレプリカ(読み込み用のレプリカ)」に分散して処理をさせることで、全体のパフォーマンス向上させることを目的としています。
リードレプリカは、マスターに対する書き込みに追随するかたちで、自分自身のデータを反映させます。
読み込みは主にリードレプリカを利用することで、データ解析用途などの際もマスターの負荷を減らすことが可能になります。

■利点

・データベースからの読み込み負荷が高い場合、負荷を分散できる
・データ解析用途などでマスターに負荷をかけずに処理したいときにも有効

そんなリードレプリカの作成方法を記述しておきましょう!

1. AWS管理コンソールにログインしてサービスで「RDS」を選択、下記画面を開き左メニューの「DB Instances」をクリックします。
20130705_01_01

 

2. DBインスタンス一覧から対象のDBインスタンスを右クリックし、「Create Read Replica」を選択します。
20130705_01_02
3. 表示されたウィンドウの「DB Instance Identifier」に名前を入力し、「Yes, Create Read Replica」をクリックします。
20130705_01_03
各項目を簡単に説明しますと、

Read Replca Source リードレプリカの作成元となるDBインスタンス
DB Instance Identifier DBインスタンスの名前
DB Instance Class 作成するリードレプリカのインスタンスタイプ
Auto Minor Version Upgrade 作成するリードレプリカのMySQLにおける自動マイナーバージョンアップの有無 (※任意)
Availabirity Zone ゾーンの設定

となります。

これで、リードレプリカの作成は完了です!

いかがでしたでしょうか?
このようにリードレプリカの作成は簡単にできますので、是非おこなってみてください!

次回も引き続き、「Amazon RDS~リードレプリカ編パート②~」ということで、
作成したリードレプリカをマスターに昇格させてみたいと思いますのでお楽しみに!