外部サーバーからのレプリケーションについて

このページでは、ソース データベース サーバーから MySQL レプリカにデータを複製する構成について説明します。この構成は、外部マスター構成とも呼ばれます。

ソース データベース サーバーには任意の MySQL サーバーを指定できます。要件を満たしているのであれば、他の Google Cloud サービス(Compute Engine など)や他のクラウド プロバイダ(AWS RDS など)で実行されているサーバーも指定できます。

この構成を行う詳細な手順については、外部サーバーからのレプリケーションをご覧ください。

使用例

この構成は、次の目標を達成する手段となります。

  1. 最小限のダウンタイムでセルフマネージド MySQL サーバーから Google Cloud にデータを移行する。

  2. サーバーのコロケーションと制御を維持しつつ、レプリカの管理を Cloud SQL にオフロードする。

    このユースケースは、ハイブリッド クラウドとも呼ばれます。セルフマネージド サーバーと Cloud SQL レプリカとの間のレプリケーションは、無期限に続行されます。

構成の説明

この構成には、次のインスタンスが含まれます。

  • 管理対象の MySQL サーバー(ソース データベース サーバーとも呼ぶ)
  • Cloud SQL レプリカ

    1 つのソース データベース サーバーで複数のレプリカを作成することもできます。

  • ソース表現インスタンス

    ソース表現インスタンスとは、Cloud SQL レプリカに対するソース データベース サーバーを表す Cloud SQL インスタンスのことです。これは Cloud Console に表示され、通常の Cloud SQL インスタンスと同じように見えますが、ソース表現インスタンスにはデータは含まれず、構成もメンテナンスも必要ありません。また、課金にも影響しません。ソース表現インスタンスを更新することはできません。

次の図に、これらのインスタンスを示します。

外部レプリケーション構成に含まれる 3 つのインスタンスの図

SSL / TLS 構成

外部サーバーからのレプリケーションでは、パブリック ネットワークを使ってソース データベース サーバーと Cloud SQL レプリカの間でデータに対するすべての変更を送信しなければなりません。したがって、ソース データベース サーバーとレプリカ間の接続には必ず SSL / TLS を使用してください。

SSL / TLS オプション

SSL / TLS 構成には次の 2 つのオプションがあります。

  • サーバーのみの認証

    レプリカはプライマリ インスタンスに接続する際に、正しいホストに接続していることを確認して中間者攻撃を防ぐために、プライマリを認証します。プライマリはレプリカを認証しません。

  • サーバー クライアント認証

    レプリカがプライマリ インスタンスに接続する際に、レプリカはプライマリを認証し、プライマリはレプリカを認証します。

サーバー クライアント認証を使用して、最も強力なセキュリティを提供します。ただし、レプリカの作成時にクライアント証明書と秘密鍵を提供したくない場合は、サーバーのみの認証を使用することもできます。

サーバーのみの認証を使用する場合の準備

サーバーのみの認証を使用するには、外部サーバーの証明書に署名した認証局(CA)の、x509 PEM でエンコードされた証明書を(レプリカの作成時に)指定する必要があります。CA が持つ証明書は 1 つのみで、その証明書は自己署名証明書でなければなりません(つまり、サーバーの証明書に署名した認証局はルート CA である必要があります)。

外部サーバーの証明書と鍵の作成について詳しくは、MySQL を使用して SSL および RSA の証明書と鍵を作成するをご覧ください。

サーバー クライアント認証を使用する場合の準備

サーバー クライアント認証を使用するには、レプリカを作成するときに次の項目を指定する必要があります。

  • ソース データベース サーバーの証明書に署名した CA の、x509 PEM でエンコードされた証明書(caCertificate)。
  • レプリカがソース データベース サーバーに対する認証で使用する、x509 PEM でエンコードされた証明書(clientCertificate)。
  • clientCertificateclientKey)に関連付けられた、暗号化されていない PKCS#1 または PKCS#8 形式の PEM でエンコードされた秘密鍵。

ソース データベース サーバーの証明書と鍵の作成について詳しくは、MySQL を使用して SSL および RSA の証明書と鍵を作成するをご覧ください。

同じソース データベース サーバーから複数のレプリカを作成する場合について

同じソース データベース サーバーから複数のレプリカを作成できます。その場合、帯域幅を増やすか、異なる複数のリージョン内でレプリカを作成することをおすすめします。

同じリージョン内で複数のレプリカを作成する場合、そのすべてのレプリカが同じソース表現インスタンスを使用することも、レプリカごとに異なるソース表現インスタンスを使用することもあります。Cloud Console を使用して複数のレプリカを作成すると、各レプリカは異なるソース表現インスタンスを使用します。

異なる複数のリージョン内で複数のレプリカを作成する場合、各レプリカが異なるソース表現インスタンスを使用する必要があります。

1 回のオペレーションで複数のレプリカを作成することはできません。最初のレプリカのレプリカ構成の作成が終わり次第、他のレプリカのレプリカ構成の作成を開始できます。最初のレプリカが完全に機能するまで待たなくても、他のレプリカの作成を開始できます。ただし、各レプリカを作成してから 15 分以内にネットワーク アクセスの認可手順を完了するようにしてください。