レプリケーションはシステムデザインにおいてもっとも大事な要素です。多くのシステムデザインのお題では非機能要件にてデータベースがボトルネックになるパターンが数多く見られます。レプリケーションを用いることで耐障害性(特にデータロスト)や可用性の向上が期待できます。ここではレプリケーションを用いる理由と、複数のレプリケーション手法について解説していきます。
レプリケーションとは?
特にデータベースはシステムの中でもステートを持つ重要なコンポーネントであり、単一障害点になりやすい部分です。そのため、データベースのレプリケーションを用いた冗長構成は、可用性と耐障害性の確保に欠かせない仕組みです。