Cloud SQL 읽기 풀은 대규모 읽기 워크로드의 부하 분산을 지원합니다.
읽기 풀이란 무엇인가요?
읽기 풀은 대규모 읽기 워크로드를 분산하는 데 사용되는 읽기 복제본 인스턴스의 모음입니다. 이러한 워크로드를 기본 인스턴스에서 읽기 풀로 리디렉션하여 기본 인스턴스의 부하를 줄일 수 있습니다.
읽기 풀의 각 읽기 복제본을 읽기 풀 노드라고 합니다.
여러 가지 방법으로 읽기 풀을 확장할 수 있습니다.
- 수평 축소 또는 확장: 읽기 풀에서 읽기 풀 노드 수를 수정하여 부하 분산 용량을 수평으로 확장합니다. 각 읽기 풀은 1~7개의 읽기 풀 노드를 지원합니다.
- 수직 확장 또는 축소: 읽기 풀 노드와 연결된 머신 유형을 수정하여 부하 분산 용량을 수직으로 확장합니다. 정의된 후에는 구성이 읽기 풀의 각 읽기 풀 노드에 일관적으로 적용됩니다.
스토리지, 연결 또는 데이터베이스 구성 플래그와 같은 읽기 풀 노드 설정을 수정하면 변경사항이 읽기 풀의 각 읽기 풀 노드에 일관적으로 자동 적용됩니다.
단일 읽기 엔드포인트를 통해 읽기 풀에 액세스
읽기 풀은 변경 불가능한 IP 주소가 있는 단일 읽기 엔드포인트를 통해 액세스할 수 있습니다. 엔드포인트를 통해 이루어진 연결은 읽기 풀 노드 중 하나로 자동 리디렉션됩니다. 읽기 풀을 수평 축소 또는 수평 확장하려는 경우 읽기 풀에서 새 읽기 풀 노드를 만들거나 이전 노드를 삭제할 수 있지만 이전에 이 단일 읽기 엔드포인트에 연결된 애플리케이션을 재구성할 필요는 없습니다.
각 읽기 풀 노드에는 자체 IP 주소도 있습니다. 데이터에 액세스하는 효율적인 방법은 아니지만 이러한 IP 주소를 사용하여 개별 읽기 풀 노드의 성능 문제를 해결할 수 있습니다.
읽기 풀 또는 읽기 풀 노드(IP 주소 또는 연결 문자열)의 연결 정보를 가져오는 방법에 대한 자세한 내용은 읽기 풀 정보 보기를 참조하세요.
복제
Cloud SQL 읽기 풀 복제는 SQL Server 읽기 확장 가용성 그룹을 사용하여 구현됩니다.
자세한 내용은 복제 정보를 참조하세요.
읽기 풀 자동 확장
애플리케이션의 변화하는 워크로드 요구사항에 맞게 자동으로 크기가 조절되도록 읽기 풀을 구성할 수 있습니다. 자세한 내용은 읽기 풀 자동 확장을 참조하세요.
읽기 풀 특성
다음과 같은 특성이 적용됩니다.
- 읽기 풀에는 고유한 Cloud SQL 지원 API가 없습니다. 읽기 풀을 만들거나 구성하거나 보는 모든 작업은 Cloud SQL 인스턴스 API를 사용하여 수행됩니다.
예를 들어
gcloud CLI를 사용하여 읽기 풀을 만들 때는gcloud sql instances create명령어를 사용합니다. 마찬가지로 읽기 풀에 구성된 읽기 풀 노드 수를 확인하려면gcloud sql instances describe명령어를 사용합니다. - 노드가 2개 이상인 읽기 풀에는 서비스수준계약(SLA)이 적용됩니다.
- 읽기 풀의 읽기 풀 노드는 항상 사용자가 지정한 것과 동일한 리전에 있습니다. Google Cloud 는 리전 내 모든 영역에서 읽기 풀 노드 상주를 번갈아 실행합니다.
- 기본 인스턴스에는 하나 이상의 읽기 풀이 있을 수 있습니다.
- 다음 작업에는 1초 미만의 다운타임이 발생합니다.
- 수평 확장 또는 축소(읽기 풀 노드 추가 또는 삭제)
- 수직 확장 또는 축소(풀의 노드 머신 유형 변경)
- 기존 영역 읽기 복제본을 읽기 풀로 변환
- 읽기 풀은 읽기 복제본과 마찬가지로 기본 인스턴스보다 먼저 유지보수를 받습니다. 읽기 복제본과 마찬가지로 읽기 풀은 기본 인스턴스의 유지보수 기간에 유지보수를 받습니다.
- 각 읽기 풀 노드에는 Cloud SQL 읽기 복제본과 동일한 측정항목이 제공됩니다.
gcloud또는 Google Cloud 콘솔을 사용하여 프로젝트의 세부정보를 설명할 때는 읽기 풀 이름이 나열되지만 개별 읽기 풀 노드 이름은 나열되지 않습니다.
기본 인스턴스당 최대 읽기 풀 노드 수
기본 인스턴스당 최대 7개의 읽기 복제본을 할당할 수 있습니다.
동일한 기본 인스턴스에서 복제하는 읽기 복제본과 읽기 풀 노드의 합계는 7개를 초과할 수 없습니다.
기본 인스턴스당 최대 읽기 풀 노드 수를 계산하는 방법
개념적으로 읽기 복제본을 단일 읽기 풀 노드로 생각할 수 있습니다.
읽기 복제본을 읽기 풀로 변환한 후 읽기 풀 노드 수를 1보다 큰 숫자로 변경할 수 있습니다.
그런 다음 읽기 풀에 자동 확장을 할당하여 워크로드 요구사항에 맞게 읽기 풀 노드 수를 동적으로 늘리거나 줄일 수 있습니다.
읽기 풀에서 자동 확장이 사용 설정된 경우 읽기 풀에 유효한 최대 노드 수를 지정해야 합니다. 이 숫자를 동일한 기본에서 복제하는 기존 읽기 복제본 수 또는 동일한 기본에서 복제하는 다른 읽기 풀에 속한 읽기 풀 노드 수와 합한 값이 7을 초과할 수 없습니다.
예를 들어 기본 인스턴스에 읽기 복제본이 2개 있고 읽기 풀 노드가 2개인 읽기 풀이 1개 있고 자동 확장이 사용 설정된 두 번째 읽기 풀이 있는 경우 두 번째 읽기 풀의 최대 읽기 풀 노드 수는 3보다 큰 값일 수 없습니다.
자세한 내용은 읽기 풀 자동 확장을 참조하세요.
제한사항
다음과 같은 제한사항이 적용됩니다.
- 읽기 풀은 새 네트워크 아키텍처의 Cloud SQL Enterprise Plus 버전 인스턴스에서만 사용할 수 있습니다. 읽기 풀과 연결된 기본 인스턴스도 Cloud SQL Enterprise Plus 버전 인스턴스여야 합니다.
- 기본 인스턴스당 최대 7개의 읽기 복제본을 할당할 수 있습니다. 자세한 내용은 최대 노드 수를 참조하세요.
- 고급 재해 복구는 읽기 풀과 호환되지 않습니다. 기본 인스턴스는 읽기 풀과 연쇄 가능한 복제본을 모두 사용할 수 없습니다.
- 데이터베이스가 정상인지 여부에 따라 읽기 풀 노드에서 트래픽이 제공되지만 해당 읽기 풀 노드의 복제 지연이 얼마나 높은지는 관계없습니다. 지연되지 않은 다른 읽기 풀 노드가 있더라도 지연된 읽기 풀 노드에서 트래픽이 제공될 수 있습니다. 데이터베이스 프로세스가 실행 중이고 쿼리에 응답할 수 있으면 데이터베이스가 정상으로 간주되지만 제공되는 데이터의 최신 상태에 관한 요구사항은 없습니다.
- 단일 논리적 세션이 읽기 풀의 여러 읽기 풀 노드에 연결된다는 보장은 없습니다.
- 다음 유형의 업데이트는 지원되지 않습니다.
- 읽기 풀은 여전히 Cloud SQL 유지보수 업데이트를 수신하지만 읽기 풀 또는 연결된 기본 인스턴스를 새로운 메이저 데이터베이스 버전으로 업데이트할 수는 없습니다.
- 읽기 풀의 노드 시작 또는 중지
- 읽기 복제본에서 지원되지 않는 작업 외에도 읽기 풀에서는 다음 작업이 지원되지 않습니다.
- 복제 사용 설정 및 중지
- 고객 관리형 Active Directory
- 관리형 Microsoft AD
- 복제본 승격
- 다시 시작
- 가져오기
- 내보내기
- 장애 조치
- 다시 암호화
- 클론
- 공유 CA 또는 고객 관리 CA가 있는 SSL/TLS 인증서는 읽기 풀과 함께 사용할 수 없습니다.
- 읽기 풀은 연결된 복제본이나 다른 읽기 풀과 같은 다른 인스턴스로 복제할 수 없습니다.
- 읽기 풀은 기본 인스턴스에서 직접 복제해야 합니다. 연결된 복제본일 수 없습니다.
- 읽기 풀을 만들거나 확장할 때는 읽기 풀과 연결된 이전 풀 생성, 수평 축소 또는 수평 확장 작업이 완료될 때까지 기다려야 합니다. 이 제한은 동일한 기본 인스턴스와 연결된 다른 모든 읽기 풀에도 적용됩니다. 동일한 기본 인스턴스와 연결된 여러 읽기 풀을 확장하려면 첫 번째 읽기 풀과 연결된 확장 작업이 완료될 때까지 기다린 후 다음 읽기 풀 확장을 시작해야 합니다. 동시 요청을 실행하면
Operation failed because another operation was already in progress.오류가 표시될 수 있습니다. - 기본 복제본과 동일한 리전에 있는 영역 복제본만 읽기 풀에서 사용하도록 변환될 수 있습니다.
- 읽기 풀 노드에서 다양한 수준의 복제 지연이 발생하여 일관되지 않은 읽기가 발생할 수 있습니다. 애플리케이션에 높은 읽기 일관성이 필요한 경우 읽기 풀을 사용하는 대신 단일 읽기 복제본을 수직 확장하는 것이 좋습니다.
- Cloud SQL은 다음 조건에서 읽기 풀 노드를 자동으로 복구합니다.
- 인스턴스가 다운된 경우
- 복제가 중단된 경우
이러한 시나리오에서 기본 인스턴스에서 추가 로그인을 만들면 읽기 풀 노드가 다시 생성된 후 해당 로그인을 사용하여 로그인할 수 없습니다. 읽기 엔드포인트에 사용하는 로그인을 기본 인스턴스에서 사용할 수 있는지 확인합니다.
- Microsoft는 서버 객체 복제를 지원하지 않습니다.
읽기 복제본에서 만드는 모든 서버 수준 객체는 기본 인스턴스에서도 만들고 관리해야 합니다. 이러한 객체는 자동으로 복제되지 않습니다.
이 동작은 다음 시나리오에 적용됩니다(모든 시나리오가 포함되어 있지는 않음).
- 읽기 풀 복구
- 읽기 복제본을 읽기 풀로 변환
- 로그인과 같은 서버 수준 객체에 액세스할 수 없게 됩니다.
- 원래 읽기 복제본에 있지만 기본 인스턴스에는 없는 로그인을 만들면 로그인이 새 읽기 풀 노드에 복제되지 않습니다.
- 읽기 풀을 읽기 복제본으로 변환
- 기본 인스턴스가 아닌 읽기 풀에서 로그인을 만든 후 나중에 읽기 풀을 사용 중지하면 로그인이 더 이상 존재하지 않습니다.
복제되지 않는 서버 수준 객체의 예시는 다음과 같습니다.
- 로그인
- 연결된 서버 구성
- SQL Server 감사에서 생성된 데이터베이스 감사 파일
- XEvents 세션 및 구성 설정
자세한 내용은 Microsoft 문서를 참조하세요.
- 투명 데이터 암호화(TDE) 인증서는 가져오기 및 내보내기 작업 모두에서 차단됩니다.
- 항상 기본 인스턴스에서 TDE 인증서를 가져오고 내보내야 합니다. TDE 인증서는 복제본 유형에 관계없이 읽기 풀의 모든 읽기 복제본에 자동으로 복제됩니다.
- TDE 가져오기 및 내보내기 작업은 지원되지 않습니다. 항상 기본 인스턴스에서 TDE 인증서를 가져옵니다.