외부 서버에서 복제하는 방법

이 페이지에서는 소스 데이터베이스 서버에서 MySQL 복제본으로 데이터를 복제하는 구성에 대하여 설명합니다. 이 구성을 때로 외부 서버 구성이라고도 합니다.

다른 Google Cloud 서비스(예: Cloud SQL 또는 Compute Engine) 또는 다른 클라우드 제공업체(예: Amazon RDS)에서 실행 중인 서버를 포함하여 어떠한 MySQL 서버든 요구사항을 충족한다면 소스 데이터베이스 서버가 될 수 있습니다. 이 구성 설정의 단계별 안내는 외부 서버에서 복제를 참조하세요.

외부 서버 구성 사용 사례

외부 서버 구성은 다음과 같은 목표를 달성하는 방법을 제공합니다.

  1. 최소한의 다운타임으로 데이터를 자체 관리형 MySQL 서버에서 Google Cloud로 마이그레이션하기

  2. 복제본 관리를 Cloud SQL로 오프로드하면서 서버의 코로케이션 및 제어 유지하기

    이 사용 사례를 하이브리드 클라우드라고도 합니다. 자체 관리형 서버와 Cloud SQL 복제본 간의 복제는 무기한으로 지속됩니다.

외부 복제 구성

외부 복제 구성에는 다음 인스턴스가 포함됩니다.

  • 사용자가 관리하는 MySQL 서버: 소스 데이터베이스 서버라고도 합니다.
  • Cloud SQL 복제본

    하나의 소스 데이터베이스 서버에 여러 개의 복제본이 있을 수 있습니다.

  • 소스 표현 인스턴스

    소스 표현 인스턴스는 Cloud SQL 복제본에 소스 데이터베이스 서버를 표현하는 Cloud SQL 인스턴스입니다. Google Cloud 콘솔에 표시되며 정규 Cloud SQL 인스턴스와 동일하게 나타납니다. 하지만 데이터를 포함하지 않으며 구성 또는 유지보수가 필요하지 않고 결제에 영향을 미치지 않습니다.

다음 다이어그램은 이러한 인스턴스를 보여줍니다.

외부 복제 구성을 이루는 3개의 인스턴스 다이어그램

SSL/TLS 구성

외부 서버에서 복제할 때 데이터에 대한 모든 변경사항이 소스 데이터베이스 서버와 Cloud SQL 복제본 간에 전송됩니다.

공개 네트워크(IP 허용 목록 사용)를 통해 연결하는 경우 소스 데이터베이스와 대상 데이터베이스 간의 연결에 SSL/TLS 암호화를 사용하는 것이 좋습니다.

Cloud SQL은 SSL/TLS 구성에 다음과 같은 옵션을 제공합니다.

  • None(없음): Cloud SQL 대상 인스턴스가 암호화 없이 소스 데이터베이스에 연결됩니다.
  • 서버 전용 인증

  • 서버 클라이언트 인증

서버 전용 인증

복제본이 기본 인스턴스에 연결할 때 복제본이 기본 인스턴스를 인증합니다. 즉, 복제본이 올바른 호스트에 연결하는지 확인하고 중간자 공격을 방지합니다. 기본 인스턴스는 복제본을 인증하지 않습니다.

서버 전용 인증을 사용하려면 복제본 생성 시 외부 서버의 인증서에 서명한 인증 기관(CA)의 x509 PEM 인코딩 인증서를 제공합니다. CA에는 하나의 인증서만 포함되어야 하며 자체 서명되어야 합니다. 즉, 서버의 인증서에 서명한 인증 기관은 루트 CA여야 합니다.

서버 클라이언트 인증

복제본이 기본 인스턴스에 연결할 때 복제본이 기본 인스턴스를 인증하면 기본 인스턴스가 복제본을 인증합니다.

서버 클라이언트 인증은 가장 강력한 보안을 제공합니다. 하지만 복제본을 만들 때 클라이언트 인증서와 비공개 키를 제공하지 않으려면 서버 전용 인증을 사용하면 됩니다.

서버 클라이언트 인증을 사용하려면 복제본을 만들 때 다음과 같은 항목을 제공하세요.

  • 소스 데이터베이스 서버의 인증서에 서명한 CA의 x509 PEM 인코딩 인증서(caCertificate)
  • 복제본이 소스 데이터베이스 서버에 인증할 때 사용할 x509 PEM 인코딩 인증서(clientCertificate)
  • clientCertificate와 연결된 암호화되지 않은 PKCS#1 또는 PKCS#8 PEM 인코딩 비공개 키(clientKey)

같은 데이터베이스 서버의 여러 복제본

동일한 소스 데이터베이스 서버에서 여러 개의 복제본을 만들 수 있습니다. 더 넓은 대역폭을 제공하거나 다른 리전에서 복제본을 만드는 것이 좋습니다.

동일한 리전에서 여러 개의 복제본을 만드는 경우 모두 동일한 소스 표현 인스턴스를 사용할 수도 있고 다른 소스 표현 인스턴스를 사용할 수도 있습니다. Google Cloud 콘솔을 사용하여 여러 개의 복제본을 만드는 경우 각기 다른 소스 표현 인스턴스를 가지게 됩니다.

다른 리전에서 여러 개의 복제본을 만드는 경우 각기 다른 소스 표현 인스턴스를 가져야 합니다.

동일한 작업에서 2개 이상의 복제본을 만들 수 없습니다. 첫 번째 복제본에 대한 복제본 구성 만들기를 완료하자마자 다른 복제본에 대한 복제본 구성 만들기를 시작할 수 있습니다. 첫 번째 복제본이 온전히 기능할 때까지 기다릴 필요 없이 다른 복제본을 만들기 시작해도 됩니다.

외부 서버의 연쇄 복제본

연쇄 읽기 복제본을 사용하면 동일한 리전이나 다른 리전의 다른 읽기 복제본 아래에서 읽기 복제본을 만들 수 있습니다. 기본 인스턴스를 포함하여 최대 4개 수준의 연쇄 복제본을 추가할 수 있습니다. 복제본이 연쇄 복제본 계층 구조의 맨 위로 승격되면 기본 인스턴스가 되고 해당 연쇄 복제본은 계속 복제됩니다.

외부 서버를 사용하면 데이터를 마이그레이션한 후 외부 서버 복제본을 기본 인스턴스로 승격하기 전에 외부 서버 복제본 아래에 읽기 복제본을 만들 수 있습니다. 이렇게 하면 외부 서버 복제본이 승격되기 전에 읽기 복제본 토폴로지를 테스트할 수 있습니다.