이 문서에서는 PostgreSQL용 AlloyDB에 적용되는 할당량과 시스템 한도를 설명합니다.
- 할당량은 사용할 수 있는 계수 가능한 공유 리소스의 양을 지정합니다. 할당량은 PostgreSQL용 AlloyDB와 같은 Google Cloud 서비스에서 정의합니다.
- 시스템 한도는 변경할 수 없는 고정 값입니다.
할당량
Google Cloud 는 공정성을 보장하고 리소스 사용 및 가용성의 급증을 줄이기 위해 할당량을 사용합니다. 할당량은 Google Cloud 프로젝트에서 사용할 수 있는Google Cloud 리소스의 양을 제한합니다. 할당량은 하드웨어, 소프트웨어, 네트워크 구성요소를 포함하여 다양한 리소스 유형에 적용됩니다. 예를 들어 할당량에 따라 서비스에 대한 API 호출 수, 프로젝트에서 동시에 사용하는 부하 분산기 수, 만들 수 있는 프로젝트 수가 제한될 수 있습니다. 할당량은 서비스 과부하를 방지하여Google Cloud 사용자 커뮤니티를 보호합니다. 할당량은 자체 Google Cloud 리소스를 관리하는 데도 도움이 됩니다.
Cloud Quotas 시스템은 다음을 수행합니다.
- Google Cloud 제품 및 서비스의 소비량을 모니터링합니다.
- 리소스 소비 제한
- 할당량 값 변경을 요청할 수 있는 수단 제공
대부분의 경우 할당량이 허용하는 것보다 더 많은 리소스를 소비하려고 하면 시스템에서 리소스에 대한 액세스를 차단하고 수행하려는 작업이 실패합니다.
할당량은 일반적으로 Google Cloud 프로젝트 수준에서 적용됩니다. 한 프로젝트의 리소스를 사용해도 다른 프로젝트에서 사용 가능한 할당량에는 영향을 미치지 않습니다. Google Cloud 프로젝트 내에서 할당량은 모든 애플리케이션과 IP 주소에 공유됩니다.
Google Cloud 에서는 프로젝트에 제한적으로 액세스하여 Google Cloud 를 무료로 살펴볼 수 있는 무료 체험판 할당량도 제공합니다.
모든 프로젝트의 할당량이 동일하지는 않습니다. Google Cloud 사용량이 증가하면 할당량도 증가할 수 있습니다.
할당량에 대한 자세한 내용은 할당량 작업을 참조하세요.
AlloyDB에서 부과하는 할당량에 관한 자세한 내용은 비율 할당량 및 리소스 할당량을 참고하세요.
AlloyDB 리소스에도 한도가 있습니다. 할당량과 달리 시스템 한도는 변경할 수 없습니다.
할당량 확인 및 수정 권한
할당량을 확인하려면 serviceusage.quotas.get
권한이 있어야 합니다.
할당량을 변경하려면 serviceusage.quotas.update
권한이 있어야 합니다.
이러한 권한은 기본적으로 소유자 및 편집자의 기본 IAM 역할과 사전 정의된 할당량 관리자 역할에 포함됩니다.
내 할당량 확인
기본적으로 Google Cloud 콘솔의 할당량 표에는 모든 서비스의 할당량이 표시됩니다. 표의 필터 목록을 사용하여 프로젝트의 AlloyDB 리소스에 대한 현재 할당량을 확인할 수 있습니다.
프로젝트의 AlloyDB 리소스에 대한 현재 할당량을 확인하려면 다음 단계를 완료하세요.
Google Cloud 콘솔에서 할당량 페이지로 이동합니다.
할당량 표에서 필터를 클릭합니다.
속성 목록에서 서비스를 선택한 다음 값 목록에서 AlloyDB API를 선택합니다.
할당량 상향 조정
Google Cloud 사용량이 점차 늘어나면 할당량도 이에 따라 늘릴 수 있습니다. 앞으로 사용량이 현저하게 늘어날 것으로 예상되는 경우 할당량을 이에 맞춰 조정하기 위해서는 며칠 전에 미리 요청하시기 바랍니다.
- 할당량 페이지에서 필터를 클릭합니다.
속성 목록에서 서비스를 선택한 다음 값 목록에서 AlloyDB API를 선택합니다.
AlloyDB API가 표시되지 않으면 AlloyDB Admin API가 사용 설정되지 않은 것입니다.
변경하려는 할당량을 선택합니다.
할당량 수정을 클릭합니다.
이름, 이메일, 전화번호를 입력하고 다음을 클릭합니다.
할당량 요청을 입력하고 요청 제출을 클릭합니다.
비율 할당량
AlloyDB는 비율 제한 또는 API 할당량이라고도 하는 비율 할당량을 지원합니다. 비율 할당량은 AlloyDB Admin API에 보낼 수 있는 요청 수를 정의합니다.
각 비율 할당량은 하나 이상의 AlloyDB Admin API 메서드 그룹에 대한 모든 요청에 해당합니다. 비율 할당량은 서비스와 관련된 시간 간격(예: 일일 API 요청 수) 후에 재설정됩니다.
Google Cloud CLI 또는 Google Cloud 콘솔을 사용하면 API에 요청이 전송되고 비율 제한에 해당 요청이 반영됩니다. 서비스 계정을 사용하여 API에 액세스할 경우 해당 요청도 비율 제한에 반영됩니다.
비율 할당량은 60초 (1분) 간격으로 적용되고 자동으로 다시 채워집니다. 즉, 프로젝트가 60초 내에 언제든지 비율 할당량의 최대값에 도달하면 해당 그룹에서 요청을 더 수행하기 전 할당량이 다시 채워질 때까지 기다려야 합니다. 프로젝트가 비율 제한을 초과하면 rateLimitExceeded
이유와 함께 HTTP 429
상태 코드가 수신됩니다.
AlloyDB Admin API는 작업 유형에 따라 6개 그룹으로 나뉩니다. 비율 할당량은 분당, API 그룹별, 프로젝트별, 리전별, 사용자별로 적용됩니다. 이러한 속성의 고유한 조합마다 AlloyDB에서 별도의 할당량을 적용합니다. 예를 들어 100명의 사용자가 특정 프로젝트 및 리전에서 1분에 Mutate API에 액세스하는 경우 각 사용자에게는 각 프로젝트 및 리전 조합에 대해 분당 180~250개 요청 범위의 기본 할당량이 부여됩니다.
각 그룹의 기본 할당량 범위는 다음과 같습니다.
그룹 이름 | 설명 | 분당 쿼리 수의 기본 할당량 범위 | API 메서드 |
---|---|---|---|
Connect API | 새로운 관계를 맺습니다. | 180-2000 |
|
API 가져오기 | 단일 리소스를 읽습니다. | 180-1000 |
|
Get operation API | 장기 실행 작업의 최신 상태를 가져옵니다. | 950-1400 |
|
API 나열 | 동일한 유형의 리소스 그룹을 읽습니다. | 180-1000 |
|
List operations API | 요청에 특정 필터와 일치하는 작업을 나열합니다. | 2200-3000 |
|
Mutate API | 리소스 상태를 수정합니다. | 180-250 |
|
리소스 할당량
AlloyDB는 배정 할당량이라고도 하는 리소스 할당량을 지원합니다. 리소스 할당량이란 사용 가능할 때 리소스 유형에 대해 만들 수 있는 리소스의 최대 양입니다. 리소스 할당량은 특정 시점에 프로젝트에서 사용하는 가상 머신 (VM) 인스턴스 수와 같이 사용량이 없는 리소스의 사용을 제한합니다.
리소스 할당량은 시간이 지나도 재설정되지 않습니다. 대신 불필요한 클러스터를 삭제하는 등 사용하지 않는 리소스를 해제하는 조치를 취해야 합니다.
현재 리소스 할당량은 다음 섹션에 자세히 설명된 대로 사용되는 클러스터 수 및 vCPU 수에 적용됩니다.
클러스터의 리소스 할당량
이 할당량은 프로젝트당 리전별 클러스터 수에 적용됩니다. 이 할당량의 기본값은 프로젝트의 사용 기록에 따라 프로젝트당 리전별로 3~10개 클러스터입니다. 이 할당량의 최대 지원 값은 프로젝트당 리전당 클러스터 15개입니다.
Google Cloud 콘솔, gcloud CLI 또는 AlloyDB Admin API를 사용하여 클러스터 생성 또는 복원 요청을 실행하고 이로 인해 할당량 위반이 발생하면 다음과 유사한 오류 메시지와 함께 요청이 실패합니다.
Quota limit 'ClustersUsedPerProjectPerRegion' has been exceeded. Limit: 5 in region us-central1.
vCPU의 리소스 할당량
이 할당량은 프로젝트당 리전별 vCPU 수에 적용됩니다. 각 인스턴스는 사용하는 VM 수에 따라 이 할당량의 일부를 사용합니다. 각 기본 인스턴스는 VM 2개를 사용합니다. 각 읽기 풀 인스턴스는 포함된 노드마다 하나의 VM을 사용합니다. 각 VM에서 사용하는 vCPU 수는 인스턴스를 만들거나 업데이트할 때 제공합니다.
이 할당량의 기본값은 프로젝트의 사용 내역에 따라 프로젝트당 리전별로 128~512vCPU입니다.
Google Cloud 콘솔, gcloud CLI 또는 AlloyDB Admin API를 사용하여 인스턴스 생성 또는 업데이트 요청을 실행하고 이로 인해 할당량 위반이 발생하면 다음과 유사한 오류 메시지와 함께 요청이 실패합니다.
Quota limit 'VCPUsUsedPerProjectPerRegion' has been exceeded. Limit: 128 in region us-central1.
스토리지의 리소스 할당량
이 할당량은 각 클러스터에 저장할 수 있는 데이터 양에 적용됩니다. 이 할당량의 기본값은 클러스터당 16TiB입니다. 지원되는 최대 값은 클러스터당 128TiB입니다.
할당량 위반을 초래하는 INSERT
문과 같은 데이터베이스 쓰기 요청을 하면 요청이 실패하고 다음과 같은 오류 메시지가 표시됩니다.
AlloyDB instance exceeds available storage quota.
리소스 가용성
리소스 할당량이 있다고 해서 이러한 리소스가 항상 제공되는 것은 아닙니다. 리소스를 리전에서 물리적으로 사용할 수 없는 경우 프로젝트에 할당량이 남아 있어도 이 유형의 리소스를 새로 만들 수 없습니다.
한도
한도 상향을 요청하려면 지원 케이스를 제출하세요.
항목 | 한도 |
---|---|
클러스터당 읽기 풀 노드 수 (모든 읽기 풀 인스턴스 전체) | 20 |
인스턴스당 최대 동시 연결 수 | 기본값은 1,000이며 최대 240,000까지 조정 가능 |
최대 동시 연결 수
AlloyDB는 max_connections
플래그를 더 높은 값으로 설정하지 않는 한 인스턴스의 최대 동시 연결 수를 1,000개로 제한합니다.
다음 표를 가이드라인으로 사용하여 인스턴스 크기에 따라 최대 연결 값을 결정하세요.
vCPU | 메모리 | 권장 max_connections 값 |
---|---|---|
2 | 16 | 1000 |
4 | 32 | 2000 |
8 | 64 | 4000 |
16 | 128 | 5000 |
32 | 256 | 5000 |
64 | 512 | 5000 |
96 | 768 | 5000 |
128 | 864 | 5000 |
값을 설정하기 전에 다음 고려사항에 유의하세요.
- 읽기 풀 인스턴스에서
max_connections
플래그를 설정할 때 새 값은 클러스터의 기본 인스턴스의max_connections
값과 일치하거나 이를 초과해야 합니다. - 인스턴스 vCPU당 최대 4개의 동시 쿼리를 실행하는 것이 좋습니다.
- 단기 연결이 필요한 워크로드의 경우 pgbouncer 또는 pgpool-II와 같은 연결 풀러를 사용하는 것이 좋습니다.
- HikariCP 또는 c3p0와 같은 애플리케이션 측 연결 풀러를 추가하는 것이 좋습니다.
권장사항 (최대 240,000)보다 높은 값으로 설정하려면 공유 버퍼의 메모리를 줄이는 각 활성 연결의 추가 메모리 사용량을 고려하세요.
이 메모리 사용량은 동시 실행 쿼리 수를
work_mem
플래그에 설정된 값으로 곱하여 계산할 수 있습니다. 이 플래그의 기본값은4MB
또는 인스턴스의 vCPU 수 중 더 큰 값입니다.