블루-그린 배포 만들기 및 스테이징

이 문서에서는 메이저 버전 업그레이드 또는 구성 변경을 수행하기 위해 Cloud SQL 블루-그린 배포를 만들고 스테이징하는 방법을 설명합니다.

시작하기 전에

블루-그린 배포를 만들고 스테이징하려면 필요한 역할이 있는지, 소스 인스턴스가 배포 기본 요건을 충족하는지 확인하세요.

필수 역할 및 권한

블루-그린 배포를 만들고 스테이징하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

  • Cloud SQL 편집자 (roles/cloudsql.editor)
  • Cloud SQL 관리자 (roles/cloudsql.admin)

맞춤 역할의 경우 다음 권한이 있는지 확인합니다.

  • cloudsql.blueGreenDeployments.create
  • cloudsql.blueGreenDeployments.get
  • cloudsql.instances.get
  • cloudsql.instances.create
  • cloudsql.operations.get

Cloud SQL의 IAM 역할 및 권한에 대한 자세한 내용은 역할 및 권한을 참고하세요.

인스턴스 기본 요건

블루-그린 배포를 만들기 전에 프로덕션 (블루) 인스턴스가 다음 요구사항을 충족하는지 확인하세요.

  1. 데이터베이스 엔진 및 버전: 인스턴스가 MySQL용 Cloud SQL 버전 5.7, 8.0 또는 8.4를 실행해야 합니다. 버전 8.0.18은 지원되지 않습니다. 메이저 버전 업그레이드의 경우 버전 8.0에서 8.4로 업그레이드할 수 있습니다.
  2. 바이너리 로깅 및 자동 백업: 녹색 환경에 대한 지속적인 논리적 복제를 설정하려면 파란색 인스턴스에서 바이너리 로깅 및 자동 백업을 사용 설정해야 합니다.
  3. 인스턴스 상태: 파란색 인스턴스가 진행 중인 작업이나 충돌하는 유지보수 기간 없이 RUNNING 상태여야 합니다.
  4. 지원되지 않는 기능: 인스턴스에서 블루-그린 배포에서 지원되지 않는 기능을 사용하지 않는지 확인합니다. 지원되지 않는 기능에는 다음이 포함됩니다.

  5. 최신 유지보수 버전: 블루-그린 배포를 만들기 전에 인스턴스에서 최신 유지보수 버전을 실행해야 합니다. 자세한 내용은 셀프 서비스 유지보수를 참고하세요.

  6. 네트워크 아키텍처: 인스턴스에서 새 네트워크 아키텍처를 사용해야 합니다. 이전 네트워크 아키텍처를 사용하는 인스턴스는 지원되지 않습니다.

배포 생성을 트리거하면 Cloud SQL이 복제 호환성 및 플래그를 검증하기 위해 일련의 자동 사전 검사를 자동으로 실행합니다. 주 버전 업그레이드의 경우 Cloud SQL은 워크플로를 진행하기 전에 업그레이드 준비 상태를 검증하기 위해 소스 인스턴스에서 주 버전 업그레이드 사전 검사 API도 실행합니다. 사전 검사에 실패하면 배포 생성이 중지되고 작업 상태에 오류가 반환됩니다.

블루-그린 배포 만들기

주 버전 업그레이드를 실행하기 위해 의도를 가지고 블루-그린 배포를 만들거나, 하드웨어 또는 플래그 업데이트를 스테이징하기 위해 의도 없이 블루-그린 배포를 만들 수 있습니다.

콘솔

  1. Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. 인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
  3. 구성 섹션에서 블루-그린 배포 만들기를 클릭합니다.
  4. 블루-그린 배포 만들기 페이지의 배포 정보 섹션에서 배포 이름 필드에 배포의 고유한 이름을 입력합니다.
  5. 배포 사용 사례 목록에서 다음 옵션 중 하나를 선택합니다.
    • 옵션 A (메이저 버전 업그레이드): 전환 전에 녹색 인스턴스에서 메이저 버전 업그레이드를 스테이징하고 테스트하려면 메이저 버전 업그레이드를 선택합니다. 타겟 데이터베이스 버전 목록에서 타겟 데이터베이스 버전을 선택합니다 (예: MySQL 8.4).

      의도를 사용하여 배포를 만들면 Cloud SQL은 녹색 인스턴스를 만들기 전에 작업의 일부로 메이저 버전 업그레이드 사전 검사를 자동으로 실행합니다. 또는 배포를 만들기 전에 메이저 버전 업그레이드 사전 검사를 실행하여 업그레이드 차단 요소를 식별하는 것이 좋습니다.

    • 옵션 B (기본값): 구성 또는 하드웨어 변경사항을 테스트하기 위해 소스 인스턴스와 동일한 데이터베이스 버전으로 녹색 스테이징 환경을 만들려면 기본값을 선택합니다.
  6. 만들기를 클릭합니다.

gcloud

gcloud를 사용하여 블루-그린 배포를 만들려면 blue-green-deployments create 명령어를 실행합니다.

옵션 A: 의도를 가지고 생성 (메이저 버전 업그레이드)

의도를 사용하여 배포를 만들면 Cloud SQL에서 녹색 인스턴스를 만들기 전에 작업의 일부로 메이저 버전 업그레이드 사전 검사를 자동으로 실행합니다. 또는 배포를 만들기 전에 파란색 인스턴스에서 메이저 버전 업그레이드 사전 검사를 실행하여 업그레이드 차단 요소를 식별할 수 있습니다.

gcloud beta sql blue-green-deployments create DEPLOYMENT_NAME \
  --source-instance=SOURCE_INSTANCE_ID \
  --target-database-version=TARGET_DATABASE_VERSION \
  --region=REGION \
  --async

다음을 바꿉니다.

  • DEPLOYMENT_NAME: 배포의 고유한 이름입니다.
  • SOURCE_INSTANCE_ID: 파란색 소스 인스턴스의 이름입니다.
  • TARGET_DATABASE_VERSION: 대상 버전 (예: MYSQL_8_4)
  • REGION: 파란색 인스턴스의 Google Cloud 리전입니다.

옵션 B: 의도 없이 생성 (하드웨어 또는 구성)

--target-database-version 플래그를 생략하여 파란색 인스턴스와 동일한 데이터베이스 버전으로 녹색 환경을 프로비저닝합니다.

gcloud beta sql blue-green-deployments create DEPLOYMENT_NAME \
  --source-instance=SOURCE_INSTANCE_ID \
  --region=REGION \
  --async

블루-그린 배포를 만드는 데 몇 분 정도 걸립니다. 특히 메이저 버전 업그레이드를 실행하는 경우에 그렇습니다. 작업이 예상보다 오래 걸릴 경우 메시지가 표시될 수 있습니다. 이 메시지를 무시하거나 gcloud sql operations wait 명령어를 실행하여 메시지를 닫고 작업이 완료될 때까지 기다릴 수 있습니다.

gcloud sql operations wait OPERATION_ID

OPERATION_ID를 명령어에서 반환되거나 메시지에 표시된 작업 ID로 바꿉니다.

REST v1

Cloud SQL Admin API를 사용하여 블루-그린 배포를 만들려면 blueGreenDeployments.create 메서드에 POST 요청을 전송합니다.

옵션 A: 의도를 가지고 생성 (메이저 버전 업그레이드)

의도를 사용하여 배포를 만들면 Cloud SQL에서 녹색 인스턴스를 만들기 전에 작업의 일부로 메이저 버전 업그레이드 사전 검사를 자동으로 실행합니다. 또는 배포를 만들기 전에 파란색 인스턴스에서 메이저 버전 업그레이드 사전 검사를 실행하여 업그레이드 차단 요소를 식별할 수 있습니다.

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
  "sourceInstance": "SOURCE_INSTANCE_ID",
  "requestedConfig": {
    "databaseVersion": "TARGET_DATABASE_VERSION"
  }
}

다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
  • REGION: 파란색 인스턴스의 Google Cloud 리전입니다.
  • DEPLOYMENT_NAME: 배포의 고유한 이름입니다.
  • SOURCE_INSTANCE_ID: 파란색 소스 인스턴스의 이름입니다.
  • TARGET_DATABASE_VERSION: 대상 데이터베이스 버전 (예: MYSQL_8_4)

옵션 B: 의도 없이 생성 (하드웨어 또는 구성)

requestedConfig 필드를 생략하여 파란색 인스턴스와 동일한 데이터베이스 버전으로 녹색 환경을 프로비저닝합니다.

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
  "sourceInstance": "SOURCE_INSTANCE_ID"
}

REST v1beta4

Cloud SQL Admin API를 사용하여 블루-그린 배포를 만들려면 blueGreenDeployments.create 메서드에 POST 요청을 전송합니다.

옵션 A: 의도를 가지고 생성 (메이저 버전 업그레이드)

의도를 사용하여 배포를 만들면 Cloud SQL에서 녹색 인스턴스를 만들기 전에 작업의 일부로 메이저 버전 업그레이드 사전 검사를 자동으로 실행합니다. 또는 배포를 만들기 전에 파란색 인스턴스에서 메이저 버전 업그레이드 사전 검사를 실행하여 업그레이드 차단 요소를 식별할 수 있습니다.

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
  "sourceInstance": "SOURCE_INSTANCE_ID",
  "requestedConfig": {
    "databaseVersion": "TARGET_DATABASE_VERSION"
  }
}

다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
  • REGION: 파란색 인스턴스의 Google Cloud 리전입니다.
  • DEPLOYMENT_NAME: 배포의 고유한 이름입니다.
  • SOURCE_INSTANCE_ID: 파란색 소스 인스턴스의 이름입니다.
  • TARGET_DATABASE_VERSION: 대상 데이터베이스 버전 (예: MYSQL_8_4)

옵션 B: 의도 없이 생성 (하드웨어 또는 구성)

requestedConfig 필드를 생략하여 파란색 인스턴스와 동일한 데이터베이스 버전으로 녹색 환경을 프로비저닝합니다.

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments?blueGreenDeploymentId=DEPLOYMENT_NAME
{
  "sourceInstance": "SOURCE_INSTANCE_ID"
}

배포 상태 모니터링

생성은 장기 실행 작업 (LRO)입니다. 스테이징 중에 Cloud SQL은 녹색 인스턴스를 프로비저닝하고, (메이저 버전 업그레이드가 요청된 경우) 업그레이드하고, 지속적인 논리 복제를 시작합니다.

블루-그린 배포의 진행 상황과 상태를 확인합니다.

콘솔

  1. Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. 인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
  3. 블루-그린 배포 상태 카드를 찾아 배포 상태를 확인합니다.
  4. 프로비저닝 작업 및 진행 상황을 자세히 보려면 세부정보를 클릭하여 배포 개요 페이지를 엽니다.

gcloud

gcloud를 사용하여 블루-그린 배포의 진행 상황과 상태를 확인하려면 blue-green-deployments describe 명령어를 실행합니다.

gcloud beta sql blue-green-deployments describe DEPLOYMENT_NAME \
  --region=REGION

다음을 바꿉니다.

  • DEPLOYMENT_NAME: 블루-그린 배포의 이름입니다.
  • REGION: 배포가 생성된 Google Cloud 리전입니다.

생성 작업이 완료될 때까지 기다리려면 gcloud sql operations wait 명령어를 실행합니다.

gcloud sql operations wait OPERATION_ID

OPERATION_ID를 생성 작업의 ID로 바꿉니다.

REST v1

Cloud SQL Admin API를 사용하여 블루-그린 배포의 진행 상황과 상태를 확인하려면 blueGreenDeployments.get 메서드에 GET 요청을 전송합니다.

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments/DEPLOYMENT_NAME

다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
  • REGION: 배포가 생성된 Google Cloud 리전입니다.
  • DEPLOYMENT_NAME: 블루-그린 배포의 이름입니다.

REST v1beta4

Cloud SQL Admin API를 사용하여 블루-그린 배포의 진행 상황과 상태를 확인하려면 blueGreenDeployments.get 메서드에 GET 요청을 전송합니다.

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments/DEPLOYMENT_NAME

다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트의 ID입니다.
  • REGION: 배포가 생성된 Google Cloud 리전입니다.
  • DEPLOYMENT_NAME: 블루-그린 배포의 이름입니다.

명령어 출력 또는 Google Cloud 콘솔에서 state 필드를 모니터링하여 배포 수명 주기를 추적합니다.

  • PROVISIONING: 녹색 인스턴스가 생성되고, 요청된 경우 업그레이드되며, 연속 논리적 복제에 연결됩니다.
  • SWITCHOVER_READY: 초기 복제가 완료되었고 지속적인 논리적 복제가 활성 상태입니다. 배포를 검증, 테스트, 전환할 준비가 되었습니다.
  • SWITCHOVER_NOT_READY: 배포가 프로비저닝되었지만 전환을 시작할 수 없습니다 (예: 복제가 중단되었거나 errorDetail에 문제가 신고된 경우).

모든 배포 수명 주기 단계에 대한 자세한 내용은 배포 수명 주기 및 상태를 참고하세요.

배포 상태가 SWITCHOVER_READY로 변경될 때까지 기다린 후 배포를 설명하거나, 애플리케이션 워크로드를 검증하거나, 전환을 시작합니다.

다음 단계