새 네트워크 아키텍처로 인스턴스 업그레이드


이 페이지에서는 Cloud SQL 인스턴스를 이전 네트워크 아키텍처에서 새 네트워크 아키텍처로 업그레이드하는 방법을 설명합니다.

이 Cloud SQL 네트워크 아키텍처 업그레이드 페이지는 일부 Cloud SQL 인스턴스에만 적용됩니다. Cloud SQL 인스턴스가 2021년 8월 이전에 생성된 Virtual Private Cloud(VPC) 네트워크 프로젝트를 사용할 경우 인스턴스의 Cloud SQL 네트워크 아키텍처를 업그레이드해야 합니다.

개요

다음 표에서는 이전 네트워크 아키텍처와 비교한 새 네트워크 아키텍처의 이점을 보여줍니다.

기능 이전 네트워크 아키텍처 새 네트워크 아키텍처
Database Migration Service를 사용하여 Cloud SQL에서 PostgreSQL용 AlloyDB로 마이그레이션 마이그레이션하려면 비공개 IP 주소를 구성해야 함 추가 네트워크 구성이 필요하지 않습니다.

예를 들어 Cloud SQL에서 PostgreSQL용 AlloyDB로 마이그레이션입니다.
비공개 IP를 사용하여 Cloud Build 또는 Vertex AI와 같은 비공개 서비스에 Cloud SQL 인스턴스 연결 네트워크 피어링 비전이성으로 인해 지원되지 않음 지원됨
Assured Workloads를 준수하는 인스턴스 지원되지 않음 지원됨
관리형 Microsoft AD 지원되지 않음 지원됨
Private Service Connect 지원되지 않음 지원됨
IP 주소 범위 사용량 PostgreSQL용 Cloud SQL 비공개 IP 인스턴스의 전용 하위 네트워크에 사용되는 추가 IP 주소 범위 PostgreSQL용 Cloud SQL 인스턴스에 추가 IP 주소 범위가 사용되지 않음
프로젝트당 기본 Cloud SQL 인스턴스 할당량 100 1000

업그레이드 계획하기

Cloud SQL 인스턴스의 네트워크 아키텍처를 업그레이드하기 전에 다음 업그레이드 제약조건에 따라 업그레이드를 계획합니다.

  • 네트워크 아키텍처를 업그레이드하면 인스턴스에 평균 최대 4분의 다운타임이 발생할 수 있습니다.

  • 진행 중인 데이터 마이그레이션이 있는 경우 데이터 마이그레이션 동안에는 소스 인스턴스를 새 아키텍처로 업그레이드할 수 없습니다.

  • 외부 소스에서 인스턴스에 연결하는 경우 커스텀 경로 내보내기를 사용 설정하도록 모든 피어링 연결이 업데이트되었는지 확인합니다.

  • 서비스 경계를 사용하는 경우 공유 VPC 호스트 프로젝트가 포함되어 있는지 확인합니다. 이 프로젝트가 포함되지 않으면 이전이 실패합니다.

  • Cloud SQL 인스턴스가 300개를 초과하는 네트워크에서는 인스턴스의 네트워크 아키텍처를 업그레이드할 수 없습니다.

  • 네트워크에 동일한 리전에서 비공개 IP 주소를 사용하는 인스턴스가 2개 이상 포함된 경우 Cloud SQL이 할당된 비공개 서비스 액세스 IP 주소 범위의 /24 범위(또는 여러 범위)를 추가로 사용하여 새 네트워크 아키텍처에서 인스턴스를 호스팅합니다. 이 같은 추가적 소비는 일시적이며 이후 Cloud SQL 유지보수 이벤트 중에 삭제됩니다.

네트워크 프로젝트의 모든 Cloud SQL 인스턴스 업그레이드 계획

Cloud SQL 인스턴스는 VPC 네트워크와 동일한 프로젝트에 있거나 별도의 프로젝트에 있을 수 있습니다. VPC 네트워크를 호스팅하는 프로젝트가 네트워크 프로젝트입니다.

네트워크 프로젝트는 듀얼 스택 모드로 작동할 수 있습니다. 즉, 이전 네트워크 아키텍처와 새 네트워크 아키텍처를 모두 사용하여 Cloud SQL 인스턴스를 동시에 호스팅할 수 있습니다. 이는 프로젝트 내에서 하나 이상의 인스턴스가 이전 아키텍처를 사용하는 경우에 발생합니다. 따라서 Cloud SQL은 프로젝트를 새 아키텍처로 업그레이드할 수 없습니다.

프로젝트 내의 모든 인스턴스에 대한 네트워크 아키텍처를 쿼리하려면 gcloud CLI 또는 API를 사용하면 됩니다.

이중 스택 프로젝트 고려사항

이중 스택 프로젝트를 사용할 때는 다음 고려사항에 유의하세요.

  • 암시적으로 인스턴스 업그레이드: 이중 스택 프로젝트 내에서 인스턴스의 비공개 네트워크를 수정하거나 비공개 IP 주소를 사용 설정하면 Cloud SQL에서 인스턴스를 새 네트워크 아키텍처로 암시적으로 업그레이드할 수 있습니다.
  • 아키텍처 다운그레이드 없음: 네트워크 변경사항으로 인해 인스턴스의 네트워크 아키텍처가 다운그레이드되지 않습니다.
  • 요청 거부: 네트워크 변경을 완료하기 위해 다운그레이드가 필요한 경우 Cloud SQL에서 요청을 거부합니다.

잠재적인 충돌을 방지하고 원활한 네트워크 업그레이드를 보장하려면 프로젝트의 모든 인스턴스를 새 아키텍처로 업그레이드할 계획을 세우는 것이 좋습니다.

Cloud SQL 네트워크 아키텍처 업그레이드

Cloud SQL 인스턴스의 네트워크 아키텍처를 업그레이드하려면 다음을 수행합니다.

  1. 단일 Cloud SQL 인스턴스 또는 여러 Cloud SQL 인스턴스의 네트워크 아키텍처를 확인합니다.
  2. Cloud SQL 인스턴스의 네트워크 아키텍처 업그레이드합니다.

단일 Cloud SQL 인스턴스의 네트워크 아키텍처 확인

단일 인스턴스의 현재 네트워크 아키텍처를 확인하려면 gcloud sql instances describe 명령어 또는 instances.get 메서드를 사용합니다.

gcloud

gcloud CLI 설치 및 시작에 대한 자세한 내용은 gcloud CLI 설치를 참조하세요. Cloud Shell 시작 방법에 대한 자세한 내용은 Cloud Shell 사용을 참조하세요.

단일 인스턴스의 네트워크 아키텍처를 확인하려면 다음 명령어를 실행합니다.

   gcloud sql instances describe INSTANCE_NAME
   

인스턴스에 이전 네트워크 아키텍처가 사용되는 경우 다음과 유사한 응답이 표시됩니다.

   name: INSTANCE_NAME
   project: PROJECT_ID
   ...
   sqlNetworkArchitecture: OLD_NETWORK_ARCHITECTURE
  

인스턴스에 새 네트워크 아키텍처가 사용되는 경우 다음과 유사한 응답이 표시됩니다.

   name: INSTANCE_NAME
   project: PROJECT_ID
   ...
   sqlNetworkArchitecture: NEW_NETWORK_ARCHITECTURE
  

sqlNetworkArchitecture 매개변수는 인스턴스에 이전 네트워크 아키텍처 (OLD_NETWORK_ARCHITECTURE)가 사용되는지 또는 새 네트워크 아키텍처 (NEW_NETWORK_ARCHITECTURE)가 사용되는지를 나타냅니다.

REST v1

인스턴스의 네트워크 아키텍처를 확인하려면 Cloud SQL Admin API의 instances.get 메서드를 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • INSTANCE_NAME: 인스턴스 이름입니다.
  • NETWORK_ARCHITECTURE_TYPE: 네트워크 아키텍처 유형은 다음과 같이 정의됩니다.
    • OLD_NETWORK_ARCHITECTURE: 인스턴스에서 이전 네트워크 아키텍처를 사용합니다.
    • NEW_NETWORK_ARCHITECTURE: 인스턴스에서 새 네트워크 아키텍처를 사용합니다.

HTTP 메서드 및 URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

JSON 요청 본문:

{
  "sqlNetworkArchitecture": "NETWORK_ARCHITECTURE_TYPE"
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "kind": sql#instance
  "name": INSTANCE_NAME
  "project": PROJECT_ID
  "sqlNetworkArchitecture": enum (SqlNetworkArchitecture)
  ...
}

REST v1beta4

인스턴스의 네트워크 아키텍처를 확인하려면 Cloud SQL Admin API의 instances.get 메서드를 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • INSTANCE_NAME: 인스턴스 이름입니다.
  • NETWORK_ARCHITECTURE_TYPE: 네트워크 아키텍처 유형은 다음과 같이 정의됩니다.
    • OLD_NETWORK_ARCHITECTURE: 인스턴스에서 이전 네트워크 아키텍처를 사용합니다.
    • NEW_NETWORK_ARCHITECTURE: 인스턴스에서 새 네트워크 아키텍처를 사용합니다.

HTTP 메서드 및 URL:

GET https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME

JSON 요청 본문:

{
  "sqlNetworkArchitecture": "NETWORK_ARCHITECTURE_TYPE"
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "kind": sql#instance
  "name": INSTANCE_NAME
  "project": PROJECT_ID
  "sqlNetworkArchitecture": enum (SqlNetworkArchitecture)
  ...
}

여러 Cloud SQL 인스턴스의 네트워크 아키텍처 확인

프로젝트에 있는 여러 인스턴스의 네트워크 아키텍처를 확인하려면 gcloud sql instances list 명령어 또는 instance.list 메서드를 사용합니다.

gcloud

프로젝트에 있는 여러 인스턴스의 네트워크 아키텍처를 확인하려면 다음 명령어를 실행합니다.

gcloud sql instances list --show-sql-network-architecture

결과는 다음과 유사합니다.

NAME        DATABASE_VERSION LOCATION   ...     SQL_NETWORK_ARCHITECTURE
instance_1  POSTGRES_13      asia-northeast1-b  OLD_NETWORK_ARCHITECTURE
instance_2  MYSQL_5_7        europe-west1-d     NEW_NETWORK_ARCHITECTURE
...

REST v1

프로젝트에 있는 여러 인스턴스의 네트워크 아키텍처를 확인하려면 instance.list 메서드를 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • NETWORK_ARCHITECTURE_TYPE: 네트워크 아키텍처 유형은 다음과 같습니다.
    • OLD_NETWORK_ARCHITECTURE: 인스턴스에서 이전 네트워크 아키텍처를 사용합니다.
    • NEW_NETWORK_ARCHITECTURE: 인스턴스에서 새 네트워크 아키텍처를 사용합니다.

HTTP 메서드 및 URL:

LIST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

JSON 요청 본문:

{
  "sqlNetworkArchitecture": "NETWORK_ARCHITECTURE_TYPE"
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "kind": sql#instance
  "name": INSTANCE_NAME
  "project": PROJECT_ID
  "sqlNetworkArchitecture": enum (SqlNetworkArchitecture)
  ...
}

REST v1beta4

프로젝트에 있는 여러 인스턴스의 네트워크 아키텍처를 확인하려면 instance.list 메서드를 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • NETWORK_ARCHITECTURE_TYPE: 네트워크 아키텍처 유형은 다음과 같이 정의됩니다.
    • OLD_NETWORK_ARCHITECTURE: 인스턴스에서 이전 네트워크 아키텍처를 사용합니다.
    • NEW_NETWORK_ARCHITECTURE: 인스턴스에서 새 네트워크 아키텍처를 사용합니다.

HTTP 메서드 및 URL:

LIST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances

JSON 요청 본문:

{
  "sqlNetworkArchitecture": "NETWORK_ARCHITECTURE_TYPE"
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "kind": sql#instance
  "name": INSTANCE_NAME
  "project": PROJECT_ID
  "sqlNetworkArchitecture": enum (SqlNetworkArchitecture)
  ...
}

단일 Cloud SQL 인스턴스의 네트워크 아키텍처 업그레이드

단일 인스턴스의 네트워크 아키텍처를 업그레이드하려면 gcloud sql instances patch 명령어, instance.update 메서드 또는 instance.patch 메서드를 사용합니다.

gcloud

인스턴스의 네트워크 아키텍처를 업그레이드하려면 다음 명령어를 실행합니다.

gcloud sql instances patch INSTANCE_NAME --upgrade-sql-network-architecture

업그레이드 작업은 몇 분 정도 걸립니다.

업그레이드하는 동안 장기 실행 작업이 시작되고 작업 토큰이 반환됩니다.

operation_id

REST v1

인스턴스의 네트워크 아키텍처를 업그레이드하려면 Cloud SQL Admin API의 instance.update 또는 instance.patch 메서드를 사용합니다.

Cloud SQL 네트워크 아키텍처를 업그레이드하는 경우 요청에 인스턴스에 대한 추가 업데이트가 허용되지 않습니다. 요청 본문에는 sqlNetworkArchitectureNEW_NETWORK_ARCHITECTURE로 설정된 DatabaseInstance 객체의 인스턴스가 포함됩니다.

업그레이드하는 동안 장기 실행 작업이 시작되고 작업 토큰이 반환됩니다.

operation_id

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • INSTANCE_NAME: 인스턴스 이름입니다.
  • NETWORK_ARCHITECTURE_TYPE: 네트워크 아키텍처 유형은 다음과 같이 정의됩니다.
    • OLD_NETWORK_ARCHITECTURE: 인스턴스에서 이전 네트워크 아키텍처를 사용합니다.
    • NEW_NETWORK_ARCHITECTURE: 인스턴스에서 새 네트워크 아키텍처를 사용합니다.

HTTP 메서드 및 URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

JSON 요청 본문:

{
  "sqlNetworkArchitecture": "NETWORK_ARCHITECTURE_TYPE"
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "kind": sql#instance,
  "targetLink": string,
  "status": enum (SqlOperationStatus),
  "name": string,
  "insertTime": string,
  "startTime": string,
  "endTime": string
  ...
}

인스턴스 업그레이드가 실패하면 업그레이드 작업을 다시 시도하세요.

REST v1beta4

인스턴스의 네트워크 아키텍처를 업그레이드하려면 Cloud SQL Admin API의 instance.update method 또는 instance.patch method를 사용합니다.

Cloud SQL 네트워크 아키텍처를 업그레이드하는 경우 요청에 인스턴스에 대한 추가 업데이트가 허용되지 않습니다. 요청 본문에는 sqlNetworkArchitectureNEW_NETWORK_ARCHITECTURE로 설정된 DatabaseInstance 객체의 인스턴스가 포함됩니다.

업그레이드하는 동안 장기 실행 작업이 시작되고 다음 작업 토큰이 반환됩니다.

operation_id

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • INSTANCE_NAME: 인스턴스 이름입니다.
  • NETWORK_ARCHITECTURE_TYPE: 네트워크 아키텍처 유형은 다음과 같이 정의됩니다.
    • OLD_NETWORK_ARCHITECTURE: 인스턴스에서 이전 네트워크 아키텍처를 사용합니다.
    • NEW_NETWORK_ARCHITECTURE: 인스턴스에서 새 네트워크 아키텍처를 사용합니다.

HTTP 메서드 및 URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME

JSON 요청 본문:

{
  "sqlNetworkArchitecture": "NETWORK_ARCHITECTURE_TYPE"
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "kind": sql#instance,
  "targetLink": string,
  "status": enum (SqlOperationStatus),
  "name": string,
  "insertTime": string,
  "startTime": string,
  "endTime": string
  ...
}

어떤 이유로든 인스턴스 업그레이드가 실패하면 업그레이드 작업을 다시 시도할 수 있습니다.

자주 묻는 질문(FAQ)

이 섹션에서는 Cloud SQL 네트워크 아키텍처 업그레이드에 대해 자주 묻는 질문(FAQ)의 답변을 제공합니다.

업그레이드가 Cloud SQL 인스턴스에 어떤 영향을 주나요?

네트워크 아키텍처를 업그레이드할 때 Cloud SQL 인스턴스는 MAINTENANCE 상태가 됩니다. 이 상태에서 인스턴스에는 평균적으로 최대 4분의 다운타임이 발생합니다. 인스턴스에 대한 추가 변경사항은 업그레이드가 완료될 때까지 허용되지 않습니다. 프로젝트 또는 네트워크의 다른 인스턴스는 업그레이드에 영향을 받지 않습니다.

업그레이드 후 모든 기능이 동일하게 작동하나요?

Cloud SQL 인스턴스의 모든 기능은 이전 아키텍처에서와 같이 새 아키텍처에서도 동일하게 작동합니다. 새 네트워크 아키텍처를 사용하도록 인스턴스를 업그레이드한 후 해당 인스턴스의 네트워크를 전환하려면 목적지 네트워크의 모든 인스턴스도 새 네트워크 아키텍처로 업그레이드되어야 합니다.

어떤 인스턴스에서 이전 네트워크 아키텍처를 사용하나요?

2021년 8월 이후에 생성된 새 프로젝트는 자동으로 새 네트워크 아키텍처를 사용합니다. 기존 프로젝트에는 2년이 지났지만 여전히 이전 네트워크 아키텍처를 사용하는 Cloud SQL 인스턴스가 포함될 수 있습니다. 따라서 기존 프로젝트 내의 새 인스턴스가 새 네트워크 아키텍처를 사용하려면 먼저 해당 프로젝트 내의 모든 인스턴스를 업그레이드해야 합니다.

모든 새 Cloud SQL 인스턴스가 새 네트워크 아키텍처에서 생성되나요?

기본적으로 2021년 8월 이후에 생성된 프로젝트에서 만든 새 Cloud SQL 인스턴스에는 새 네트워크 아키텍처가 사용됩니다.

2021년 8월 이전에 생성된 프로젝트에서 인스턴스를 만들고 새 네트워크 아키텍처를 사용하려면 해당 프로젝트의 기존 인스턴스를 모두 새 네트워크 아키텍처로 업데이트해야 합니다. 공유 VPC를 사용하는 경우 공유 VPC에 참여하는 프로젝트의 모든 인스턴스를 업데이트해야 합니다.

프로젝트의 기존 인스턴스를 모두 업데이트한 후 몇 시간 후에 프로젝트에 인스턴스를 만드세요. 프로젝트에서 만드는 새 인스턴스는 새 네트워크 아키텍처를 사용합니다.

단일 명령어로 프로젝트의 모든 인스턴스를 업데이트할 수 있나요?

아니요. 새 네트워크 아키텍처로의 업그레이드는 각 인스턴스를 기반으로 합니다.

기본 인스턴스를 업그레이드하면 복제본이 자동으로 업그레이드되나요?

아니요. 새 네트워크 아키텍처로의 업그레이드는 각 개별 인스턴스를 기반으로 합니다. 각 복제본은 별도의 인스턴스로 취급되며, 개별적으로 업그레이드해야 합니다. 즉, 기본 인스턴스가 업그레이드되고 복제본에 이전 네트워크 아키텍처가 사용되는 경우 복제본은 영향을 받지 않습니다. 반대의 경우도 마찬가지입니다. 복제본을 업그레이드하는 경우 기본 인스턴스가 영향을 받지 않습니다.

Cloud SQL 인스턴스의 네트워크 아키텍처가 업그레이드된다는 알림을 받았습니다. 어떤 조치를 취해야 하나요?

별도로 취할 조치는 없습니다.

일부 인스턴스의 경우 비공개 네트워크에서 자동 업그레이드가 발생하면 요청이 일시적으로 거부됩니다. 이 문제를 해결하려면 단일 Cloud SQL 인스턴스의 네트워크 아키텍처 업그레이드의 절차에 따라 인스턴스의 네트워크 아키텍처를 직접 업그레이드하면 됩니다.

인스턴스를 업그레이드하려고 하면 '예약된 IP 주소 범위를 벗어남' 오류가 발생합니다. 어떤 조치를 취해야 하나요?

비공개 IP가 있는 VPC 네트워크에서 Cloud SQL 인스턴스를 사용하려면 VPC 네트워크에 비공개 서비스 액세스를 설정할 때 IP 주소 범위를 할당합니다.

예를 들어 IP 할당된 주소 범위가 변경되거나 삭제된 경우 다음과 비슷한 오류가 발생할 수 있습니다.

Network architecture upgrade not allowed for private-ip instance PROJECT_ID:INSTANCE_NAME
whose IP address range 10.0.0.0/24 is outside the reserved IP address range for
private services access. Re-allocate the IP address range for private services access and retry.

이 예시에서 원래 할당된 IP 주소 범위는 이름이 google-managed-services-VPC_NETWORK_NAME이고 원래 할당된 IP 주소 범위는 10.0.0.0/16입니다. 그런 다음 비공개 IP 주소가 10.0.0.1인 인스턴스를 만듭니다. google-managed-services-VPC_NETWORK_NAME의 IP 주소 범위가 삭제되거나 10.1.0.0/16 범위를 참조하도록 업데이트된 경우 이 범위는 인스턴스의 비공개 IP 주소 10.0.0.1을 포함하지 않습니다. 그런 다음 인스턴스의 네트워크 아키텍처를 업그레이드하려고 하면 outside the reserved IP address range 오류가 발생합니다.

이 문제를 해결하려면 Cloud SQL용 비공개 서비스 액세스 구성의 절차를 따르세요. 인스턴스의 IP 주소가 포함된 IP 주소 범위를 비공개 서비스 액세스에 할당된 범위에 다시 할당합니다. 최소한 오류 메시지에 보고된 IP 주소 범위(이전 예시: 10.0.0.0/24)를 할당할 수 있습니다.

그런 다음 네트워크 아키텍처 업그레이드를 다시 시도합니다.

다음 단계