AWSレプリケーション

レプリケーション(replication)とは、その単語の意味のとおり『複製する』という意味です。データベースにおけるレプリケーションとは、データベースの内容を他の場所やシステムにコピーするプロセスのことを指します。

AWSにおけるレプリケーション

AWSが提供しているRDSにおいては、データベースのレプリケーションに関する設定が数クリックでできるようになっています。一方で、レプリケーションの形式には『マルチAZ』と『リードレプリカ』の2種類が存在しています。これらの使い分けを理解することで、アプリケーションのパフォーマンスや可用性を大幅に向上させることができます。

マルチAZ

「AZ」は「Availability Zone」の略で、AWSのデータセンターが存在する独立した物理的な場所を指します。各AZ同士は物理的に独立しており、それぞれ異なる電源、冷却装置、ネットワークを持つことで、障害が発生したとしても他のAZには影響が及びにくい設計となっています。


マルチAZとは、その言葉のとおり、データベースを異なる物理的な場所にある複数のデータセンター (AZ) に配置する仕組みのことを指します。具体的には、ユーザーが選択するプライマリDBインスタンスと、それとは異なるAZに自動的に作成されるスタンバイDBインスタンスといった、2つ以上のDBインスタンスが作られます。

これらのインスタンス間でデータは常に同期されています。この仕組みは、一つのAZがダウンした際にもデータベースが動作し続けることを保証します。

リードレプリカ

リードレプリカは、メイン(プライマリ)データベースから非同期でデータをコピーするセカンダリ(またはレプリカ)データベースを作成する機能です。このレプリカデータベースは、読み取り専用として使用されるため、「リードレプリカ」と呼ばれます。マルチAZと違って、レプリケーションを行っているデータベースを同一AZに置くことも可能です。

同期方法

マルチAZは同期でレプリケートされますが、リードレプリカは非同期でレプリケートされる仕様となっています。

データベースにおける同期レプリケーションは、一方のデータ更新がレプリケーション先に反映されるまで、データの読み取りや更新は行われないようになっています。非同期のレプリケーションは片方のレプリケーション処理が終わらなくても、読み取りの処理が行われます。したがって、極端な場合、プライマリデータベースとリードレプリカの間にわずかな期間の間、データの差分が生じる可能性があります。

目的の違い

マルチAZ

  • 高可用性を担保する目的…一つのAZやハードウェアに問題が発生しても、自動的に別のAZのスタンバイDBインスタンスに切り替わるため、サービスの中断時間を大幅に短縮することができます。
  • データ保護…マルチAZはデータベースのデータを自動的にバックアップし、それを異なるAZに保持するため、データの損失リスクを大幅に低減します

リードレプリカ

  • パフォーマンスの向上…アプリケーションが大量の読み取りクエリを発行する場合、プライマリデータベースだけに頼ると、パフォーマンスに影響を及ぼす可能性があります。リードレプリカを使用することで、全体の読み取り性能を向上させることができます。
  • 負荷分散…レポートやデータ分析を行う際に、プライマリデータベースに負荷をかけたくない場合、リードレプリカを使用してこれらのクエリを実行することができます。

この記事は役に立ちましたか?

もし参考になりましたら、下記のボタンで教えてください。

関連記事

コメント

この記事へのコメントはありません。