Cloud SQL의 블루-그린 배포 정보

이 문서에서는 다운타임을 최소화하면서 메이저 버전 업그레이드 및 하드웨어 수정과 같은 데이터베이스 업데이트를 수행할 수 있는 Cloud SQL 블루-그린 배포를 간략히 설명합니다.

배포 의도 및 사용 사례

메이저 버전 업그레이드 수행 여부에 관계없이 블루-그린 배포를 만들 수 있습니다.

  • 의도를 사용한 만들기(메이저 버전 업그레이드): 데이터베이스 엔진을 최신 메이저 버전으로 업그레이드합니다. 배포를 만드는 동안 Cloud SQL은 메이저 버전 업그레이드 사전 검사 API를 실행하여 업그레이드 워크플로를 진행하기 전에 호환성을 확인합니다.
  • 의도 없이 만들기(구성 또는 하드웨어 변경): 현재 데이터베이스 버전에서 수정사항을 스테이징합니다. 사용 사례에는 머신 유형 변경(CPU/RAM 확장), 데이터베이스 플래그 테스트, 엔진 버전 업그레이드 없이 스토리지 수정 평가가 포함됩니다.

블루-그린 배포 작동 방식

Cloud SQL 블루-그린 배포는 실시간 트래픽을 전환하기 전에 임시 보조 환경에서 변경사항을 스테이징하여 자동화된 워크플로를 제공합니다.

블루-그린 배포 중에 Cloud SQL은 기존 프로덕션 환경(블루)을 미러링하는 별도의 스테이징 환경(그린)을 만듭니다. 서비스는 블루에서 그린으로의 지속적인 논리 복제를 유지합니다. 프로덕션 트래픽에 영향을 주지 않고 그린 환경에서 애플리케이션 호환성과 성능을 철저히 테스트할 수 있습니다. 준비가 되면 최소한의 애플리케이션 다운타임(일반적으로 몇 초)으로 그린 환경을 프로덕션 읽기 및 쓰기 상태에 할당하는 빠른 전환을 트리거합니다.

블루-그린 배포의 구성요소

블루-그린 배포는 다음 구성요소로 구성됩니다.

  • 블루 환경(소스): 애플리케이션 트래픽을 적극적으로 제공하는 기존 프로덕션 환경입니다. 소스 읽기 및 쓰기 인스턴스와 관련 구성으로 구성됩니다.
  • 그린 환경(대상): Cloud SQL에서 블루 환경의 클론으로 만든 격리된 임시 스테이징 환경입니다. 그린 환경은 요청된 변경사항(예: 최신 데이터베이스 버전)을 통합하고 지속적인 복제를 사용하여 블루 환경과 동기화된 상태를 유지합니다. Cloud SQL은 BLUE_INSTANCE_NAME-green-UNIQUE_ID 패턴을 사용하여 그린 스테이징 인스턴스의 이름을 자동으로 지정합니다. 여기서 BLUE_INSTANCE_NAME는 최대 48자로 잘리고 UNIQUE_ID는 8자 16진수 식별자입니다.
  • 전환: 그린 환경을 새로운 프로덕션 읽기 및 쓰기 인스턴스로 변환하는 계획된 사용자 시작 프로세스입니다. 전환 중에 Cloud SQL은 연결 엔드포인트를 교체하므로 애플리케이션은 짧은 연결 끊김(일반적으로 몇 초)으로 그린 환경에 연결됩니다. 전환 중 예상 다운타임은 Cloud SQL 버전에 따라 다릅니다.

    • Cloud SQL Enterprise Plus 버전: 전환 다운타임은 일반적으로 1초 미만입니다.
    • Cloud SQL Enterprise 버전: 전환 다운타임은 일반적으로 워크로드 및 복제 지연에 따라 60초 미만입니다.

    서비스 중단 중에 자동으로 트리거되는 계획되지 않은 장애 조치와 달리 전환은 계획된 변경 관리에 사용되는 제어된 작업입니다.

  • 삭제: 블루-그린 배포 리소스를 삭제하는 프로세스입니다. 삭제 동작은 전환이 발생했는지 여부에 따라 다릅니다.

    • 전환 전: 배포를 삭제하면 그린 스테이징 인스턴스와 배포 리소스가 삭제됩니다. 블루 프로덕션 인스턴스는 영향을 받지 않으며 트래픽을 계속 처리합니다.
    • 전환 후: 배포를 삭제하면 배포 메타데이터가 삭제됩니다. 기본적으로 변환된 인스턴스(그린)와 블루 인스턴스가 모두 유지됩니다. 원하는 경우 지속적인 요금이 청구되지 않도록 블루 인스턴스를 삭제할 수 있습니다.

배포 수명 주기 및 상태

블루-그린 배포는 네 가지 수명 주기 단계를 거칩니다.

  1. 생성 및 스테이징(PROVISIONING): 블루-그린 배포를 요청하면 Cloud SQL은 블루 프로덕션 환경을 클론하는 임시 그린 대상 인스턴스를 프로비저닝합니다. 메이저 버전 업그레이드의 경우 Cloud SQL은 메이저 버전 업그레이드 사전 검사 API를 실행하여 업그레이드 워크플로를 진행하기 전에 데이터베이스 호환성을 검증합니다. Cloud SQL은 요청된 업그레이드 또는 구성 변경사항을 그린 환경에 적용하고 블루에서 그린으로의 지속적인 논리적 복제를 시작합니다.
  2. 스테이징 확인(SWITCHOVER_READY 또는 SWITCHOVER_NOT_READY): 초기 복제가 완료되면 배포가 SWITCHOVER_READY 상태로 전환됩니다(또는 복제가 중단되거나 오류가 발생하면 SWITCHOVER_NOT_READY 상태로 전환됨). 블루는 실시간 프로덕션 트래픽을 계속 처리합니다. 녹색에 연결하여 검증 테스트를 실행하고 애플리케이션 호환성을 확인하고 쿼리 성능을 테스트합니다.
  3. 전환 실행(SWITCHOVER_IN_PROGRESS 또는 SWITCHOVER_COMPLETED): 전환을 트리거하면 Cloud SQL은 안전 사전 점검을 실행하고, 연결 엔드포인트를 교체하고, 그린 인스턴스를 활성 프로덕션 읽기 및 쓰기 인스턴스(SWITCHOVER_COMPLETED)로 설정하고, 블루 인스턴스를 독립형 읽기 및 쓰기 인스턴스로 전환합니다. 활성 읽기 및 쓰기 작업은 그린 인스턴스로만 라우팅되고 블루에서 그린으로의 논리적 복제가 종료됩니다. 자세한 내용은 블루-그린 배포 전환 수행을 참조하세요.
  4. 삭제(DELETING): 테스트를 완료하거나 프로덕션 작업을 확인한 후 배포 리소스를 삭제합니다. 삭제 동작은 배포 상태에 따라 다릅니다.

    • 전환 전(취소): 배포를 진행하지 않기로 결정하거나 확인 문제가 발생하면 배포를 삭제하여 그린 스테이징 인스턴스를 삭제하고 배포 메타데이터를 삭제합니다. 원래의 블루 프로덕션 인스턴스는 그대로 유지되며 중단 없이 트래픽을 계속 처리합니다.
    • 전환 후(삭제): 전환이 완료되고 새 프로덕션 인스턴스에서 작업을 확인한 후 배포를 삭제하면 배포 메타데이터가 삭제됩니다. 기본적으로 새 프로덕션 인스턴스(그린)와 블루 인스턴스는 모두 독립형 읽기 및 쓰기 인스턴스로 유지됩니다. 원하는 경우 --delete-old-source 플래그를 지정하여 블루 인스턴스를 영구적으로 삭제하고 요금 청구를 중지할 수 있습니다.

    자세한 내용은 블루-그린 배포 삭제를 참조하세요.

배포 리소스 상태

블루-그린 배포를 검사할 때 state 필드는 현재 수명 주기 상태를 나타냅니다.

  • PROVISIONING: 배포가 생성 중입니다. 메이저 버전 업그레이드의 경우 Cloud SQL은 사전 검사 API를 실행하여 호환성을 검증한 후 진행합니다. Cloud SQL은 그린 환경을 프로비저닝하고, 요청된 업그레이드를 적용하고, 지속적인 논리 복제를 설정합니다.
  • SWITCHOVER_READY: 그린 환경이 프로비저닝되고 블루에서 그린으로의 논리적 복제가 정상이며 배포가 전환 준비가 되었습니다.
  • SWITCHOVER_NOT_READY: 배포가 프로비저닝되었지만 전환을 시작할 수 없습니다. 이는 논리적 복제가 중단되거나 중지된 경우, 초기 복제가 완료되지 않은 경우 또는 페어링된 노드에 오류가 발생한 경우에 발생합니다.
  • SWITCHOVER_IN_PROGRESS: 전환 작업이 활발하게 실행 중입니다. Cloud SQL은 연결 엔드포인트를 교체하고 녹색 인스턴스를 활성 프로덕션 읽기 및 쓰기 인스턴스로 변환합니다.
  • SWITCHOVER_COMPLETED: 전환 작업이 성공적으로 완료되었습니다. 이제 그린 인스턴스가 활성 프로덕션 읽기 및 쓰기 인스턴스이고 블루 인스턴스는 독립형 읽기 및 쓰기 인스턴스로 유지됩니다.
  • DELETING: 배포가 삭제되는 중입니다. 전환 전에 삭제하면 Cloud SQL은 그린 스테이징 인스턴스를 삭제하고 배포 메타데이터를 삭제합니다. 전환 후 삭제하는 경우 Cloud SQL은 배포 메타데이터를 삭제하고 --delete-old-source 플래그가 지정된 경우 선택적으로 블루 인스턴스를 삭제합니다.
  • STATE_UNSPECIFIED: 배포 상태를 알 수 없습니다.

전환 상태 및 준비 상태

전환 준비 상태는 복제 상태 및 노드 상태에 따라 달라지며, 데이터 손실 또는 장기 다운타임으로부터 프로덕션 데이터베이스를 보호합니다.

  • 복제 상태 및 지연: 블루와 그린 간의 논리적 복제가 중단, 일시중지 또는 실패하면 배포 상태가 SWITCHOVER_NOT_READY로 전환됩니다. 배포 state 및 설명 출력은 복제 지연을 보고하지 않으며 Cloud SQL은 배포 상태를 결정할 때 복제 지연을 사전 검사로 평가하지 않습니다. 하지만 전환이 시작될 때 복제 지연이 너무 크면 전환 작업이 실패합니다. 성공적인 전환을 위해 전환을 시작하기 전에 복제 지연이 최소화되었는지 확인합니다. Cloud Monitoring에서(Cloud SQL 측정항목 목록의 replica_lag과 같은 측정항목을 확인하여) 또는 그린 인스턴스에서 직접 복제 지연을 모니터링할 수 있습니다. 자세한 내용은 복제 지연 모니터링을 참조하세요.
  • 페어링된 노드 상태: deploymentMappings에서 페어링된 각 노드는 자체 노드 상태(예: PROVISIONED, UPGRADED, UPGRADE_FAILED, SWITCHOVER_IN_PROGRESS, SWITCHOVER_SUCCEEDED, SWITCHOVER_FAILED)를 보고합니다. 페어링된 노드에 오류(UPGRADE_FAILED 또는 SWITCHOVER_FAILED)가 발생하면 전체 배포 상태가 SWITCHOVER_NOT_READY로 전환됩니다. 전환이 실패하면 데이터 손실 없이 블루 인스턴스에서 라우팅이 유지됩니다.
  • 전환 준비 문제 해결: 배포에서 SWITCHOVER_NOT_READY를 보고하는 경우 errorDetail 필드를 확인하여 복제 또는 노드 오류를 진단합니다. 전환을 시작하기 전에 복제 지연이 최소화되었는지 확인하고 블루 인스턴스에서 활성 일괄 DDL 작업 또는 장기 실행 쓰기 트랜잭션이 완료되었는지 확인합니다.

제한사항

블루-그린 배포를 사용하기 전에 다음 제한사항을 검토하세요.

  • 지원되는 엔진 및 버전: MySQL 5.7 이상의 MySQL용 Cloud SQL 인스턴스는 구성 스테이징(의도 없이 만들기)에 지원됩니다. 메이저 버전 업그레이드 대상(의도에 따라 생성)은 MySQL 8.0에서 8.4까지 지원됩니다. MySQL 8.0.18은 블루-그린 배포에 지원되지 않습니다.
  • 지원되지 않는 데이터베이스 엔진: PostgreSQL용 Cloud SQL 및 SQL Server용 Cloud SQL은 지원되지 않습니다.
  • 읽기 복제본이 있는 인스턴스: 블루-그린 배포는 읽기 복제본이 있는 인스턴스를 지원하지 않습니다.
  • 지원되지 않는 네트워크 구성: 블루-그린 배포는 Private Service Connect 아웃바운드 구성을 지원하지 않습니다.
  • IAM 그룹 인증: 블루-그린 배포는 MySQL IAM 그룹 인증과 호환되지 않으며 전환 실패를 일으킬 수 있습니다.
  • 네트워크 아키텍처 요구사항: Cloud SQL 인스턴스는 새 네트워크 아키텍처를 사용해야 합니다. 이전 네트워크 아키텍처를 사용하는 인스턴스는 지원되지 않습니다.
  • 바이너리 로깅 요구사항: MySQL 인스턴스에는 그린 환경에 대한 지속적인 논리적 복제를 지원하기 위해 자동 백업 및 바이너리 로깅이 사용 설정되어 있어야 합니다.
  • 유지보수 버전 요구사항: 블루-그린 배포를 만들기 전에 블루 소스 인스턴스에서 최신 유지보수 버전을 실행해야 합니다. 인스턴스 유지보수 버전을 확인하거나 업데이트하려면 셀프서비스 유지보수 수행을 참조하세요.
  • 리소스 가용성: 블루-그린 배포 워크플로 중 인스턴스 프로비저닝(그린 스테이징 인스턴스 생성 및 전환 후 블루 인스턴스 생성 포함)은 선택한 리전 또는 영역의 컴퓨팅 리소스 제약조건의 영향을 받을 수 있습니다.
  • 계획되지 않은 서비스 중단 및 장애 조치: 블루-그린 배포 전환은 정상적인 RUNNING 블루 소스 인스턴스가 필요한 계획된 작업입니다. 그린 스테이징 인스턴스는 특수한 읽기 복제본으로 작동합니다. 표준 읽기 복제본과 마찬가지로 그린 인스턴스는 소스 인스턴스의 계획되지 않은 중단 중에 장애 조치 대상으로 사용할 수 없습니다. 자동화된 서비스 중단 복구를 위해 인스턴스를 고가용성으로 구성하거나 재해 복구(DR) 복제본을 사용합니다.

결제 및 가격 책정

블루-그린 배포를 사용하는 데 추가 요금은 발생하지 않습니다. 하지만 배포 중에 완전한 병렬 그린 환경이 프로비저닝되므로 두 환경이 존재하는 전체 기간 동안 블루 및 그린 인스턴스 모두에 표준 요금이 청구됩니다.

불필요한 요금이 청구되지 않도록 배포 및 연결된 인스턴스를 삭제합니다.

  • 전환 전: 배포를 취소하는 경우 배포를 삭제하여 그린 스테이징 인스턴스를 삭제하고 요금 청구를 중지합니다.
  • 전환 후: 배포를 삭제하고 --delete-old-source 플래그를 지정하여 새 프로덕션 인스턴스를 확인한 후 블루 인스턴스를 영구적으로 삭제합니다. 블루 인스턴스를 삭제하지 않으면 두 인스턴스 모두에 대해 요금이 계속 청구됩니다.

다음 단계