스테이징 클러스터를 사용하여 AlloyDB 유지보수 업데이트 관리

PostgreSQL용 AlloyDB 프로덕션 워크로드의 위험을 최소화하려면 스테이징 클러스터를 사용하여 프로덕션 시스템에 업데이트를 적용하기 전에 새로운 기능, 성능, 기능을 테스트하면 됩니다. 스테이징 클러스터는 유지보수 업데이트 프로세스에 제어 계층을 추가하는 프로덕션 클러스터의 복사본입니다. 스테이징 클러스터를 사용하여 유지보수 업데이트를 테스트하면 비프로덕션 환경에서 잠재적인 문제를 식별하고 해결할 수 있습니다. 이 접근 방식을 사용하면 프로덕션 시스템의 다운타임과 성능 저하 위험이 줄어듭니다.

AlloyDB 유지보수 업데이트는 주기적으로(일반적으로 매월) 진행됩니다. 업데이트에는 새로운 기능, 버그 수정, 데이터베이스 호환성 업그레이드, 보안 관련 수정사항이 포함됩니다. AlloyDB 버전은 하위 호환되지만 스테이징 환경에서 새 버전을 테스트하여 프로덕션 클러스터의 중요한 애플리케이션에 대한 데이터베이스 안정성과 예측 가능성을 확보하는 것이 좋습니다.

스테이징 클러스터를 사용하려면 다음 단계를 따르세요.

  1. 스테이징 클러스터를 설정합니다.
  2. 프로덕션 클러스터에서 유지보수 기간을 구성합니다.
  3. 스테이징 클러스터 업데이트를 관리합니다.
  4. 프로덕션 클러스터 업데이트를 관리합니다.

AlloyDB 유지보수에 스테이징 검증 접근 방식을 사용하면 프로덕션 환경이 안정적이고 성능이 우수하며 안전한 상태를 유지하면서 최신 AlloyDB 기능과 패치를 활용할 수 있습니다.

다음 다이어그램은 스테이징 클러스터와 프로덕션 클러스터 간의 관계와 업데이트 프로세스의 운영 흐름을 보여줍니다.

프로덕션 클러스터와 스테이징 클러스터 간의 관계

유지보수 업데이트가 AlloyDB 클러스터에서 작동하는 방식에 대해 자세히 알아보려면 유지보수 개요를 참고하세요. 유지보수 기간 관리에 대해 자세히 알아보려면 PostgreSQL용 AlloyDB 클러스터 유지보수 기간 관리를 참고하세요.

시작하기 전에

사용 중인 Google Cloud 프로젝트가 AlloyDB에 액세스할 수 있도록 사용 설정되어 있어야 합니다.

스테이징 클러스터를 설정하려면 AlloyDB 프로덕션 클러스터를 만들거나 기존 AlloyDB 프로덕션 클러스터가 있어야 합니다. 자세한 내용은 클러스터 및 기본 인스턴스 만들기를 참고하세요.

사용 중인 Google Cloud프로젝트에 다음 IAM 역할 중 하나가 있어야 합니다.

  • roles/alloydb.admin: AlloyDB 관리자가 사전 정의한 IAM 역할
  • roles/owner: 소유자 기본 IAM 역할
  • roles/editor: 편집자 기본 IAM 역할

이러한 역할이 없는 경우 조직 관리자에게 문의하여 액세스 권한을 요청하세요.

스테이징 클러스터 설정

스테이징 우선 전략의 핵심은 스테이징 클러스터가 프로덕션 환경과 유사하고 프로덕션 전에 업데이트를 수신하는지 확인하는 것입니다. 스테이징 클러스터에 유지보수 기간을 설정하지 않으면 스테이징 우선 전략이 구성됩니다. AlloyDB는 먼저 유지보수 기간 없이 클러스터를 업데이트합니다.

프로덕션 백업에서 스테이징 클러스터 만들기

프로덕션 환경을 미러링하는 스테이징 클러스터를 배포하고 스테이징 클러스터의 AlloyDB 버전, 구성, 데이터가 프로덕션 클러스터와 동일한지 확인합니다.

스테이징 클러스터가 프로덕션 환경과 동일한지 확인하려면 restore 명령어를 사용하여 프로덕션 데이터베이스를 스테이징 클러스터에 클론하고 데이터 유사성 및 구성 일치 여부를 확인합니다. 또한 스테이징 환경과 프로덕션 환경을 서로 다른 프로젝트에 분리하는 것이 좋습니다.

다음 두 가지 방법을 사용하여 프로덕션 백업을 만들 수 있습니다.

  • 기존 프로덕션 클러스터 백업의 전체 복원을 실행하여 새 스테이징 클러스터를 만듭니다. 이 방법에는 데이터베이스 복구가 포함되지 않습니다. 하지만 백업 일정에 따라 데이터가 최대 24시간 이전의 데이터일 수 있습니다. 이 방법을 사용하려면 저장된 백업에서 클러스터 복원을 참고하세요.
  • 최신 시간을 포함하여 기존 프로덕션 데이터베이스 백업의 특정 시간으로 PITR (point-in-time-recovery)을 실행하여 새 스테이징 클러스터를 만듭니다. 이 옵션을 사용하면 최신 데이터를 가져올 수 있으며 방법도 더 쉽습니다. 하지만 마지막 PITR 백업 시간에 따라 지정한 시간으로 데이터를 복원하거나 복구하는 데 시간이 더 걸릴 수 있습니다. 이 메서드를 사용하려면 PITR (point-in-time recovery) 사용을 참고하세요.

스테이징 클러스터에 유지보수 기간이 설정되어 있지 않은지 확인

스테이징 클러스터의 유지보수 기간을 설정하지 마세요. 기본적으로 새로 생성된 AlloyDB 클러스터(백업에서 복원한 클러스터 포함)에는 유지보수 기간이 설정되어 있지 않습니다. 스테이징 환경의 올바른 상태입니다. AlloyDB는 예약된 유지보수 기간이 없는 클러스터를 업데이트한 후 예약된 유지보수 기간이 있는 클러스터를 업데이트합니다.

다음과 같이 설정된 유지보수 기간이 없는지 확인할 수 있습니다.

콘솔

  1. 클러스터 페이지로 이동합니다.

    클러스터로 이동

  2. 리소스 이름 열에서 클러스터를 클릭합니다. 개요 페이지가 열립니다.

  3. 개요 페이지의 유지보수 섹션에서 클러스터의 유지보수 기간 세부정보를 확인합니다.

  4. 선택사항: 시스템 통계 페이지에서 이벤트 타임라인과 같은 유지관리 작업 상태 세부정보를 확인할 수 있습니다.

  5. 통합 유지보수 관리를 보려면 검색창에 'Cloud Hub 유지보수'를 입력하고 유지보수를 선택합니다. 이 페이지에서 유지보수 요약, Google에서 제어하는 유지보수, 예정된 유지보수 세부정보를 확인할 수 있습니다.

gcloud

  1. gcloud CLI를 사용하려면 Google Cloud CLI를 설치 및 초기화하거나 Cloud Shell을 사용합니다.

    gcloud alloydb clusters describe STAGING_CLUSTER_ID \
        --region=LOCATION_ID \
        --project=PROJECT_ID
  2. 출력에서 maintenanceSchedule 필드를 찾습니다. 유지보수 기간이 설정되지 않은 경우 이 필드는 누락되거나 비어 있습니다. 어떤 이유로든 유지보수 기간이 설정 경우 이를 지웁니다.

    gcloud alloydb clusters update STAGING_CLUSTER_ID \
        --region=LOCATION_ID \
        --clear-maintenance-window \
        --project=PROJECT_ID

프로덕션 클러스터에서 유지보수 기간 구성

프로덕션 클러스터의 경우 유지보수 기간을 예약하는 것이 중요합니다. 이렇게 하면 업데이트가 발생하는 시기를 관리하고 비즈니스의 트래픽이 적은 기간에 맞춰 업데이트할 수 있습니다.

프로덕션 클러스터에서 유지보수 기간 설정

프로덕션 클러스터의 유지보수 기간을 예약합니다. 프로덕션 시스템의 부하가 가장 낮은 날짜와 시간을 선택합니다. 단일 유지보수 이벤트에 필요한 총 시간은 다를 수 있습니다.

AlloyDB는 스테이징 클러스터를 업데이트한 후 프로덕션 클러스터의 업데이트를 최소 1주일 동안 자동으로 지연합니다. 스테이징 클러스터 업데이트 후 문제가 발견되면 최대 30일 동안 프로덕션 유지보수 업데이트를 거부하고 Google Cloud 지원팀과 협력하여 문제를 해결할 수 있습니다.

프로덕션 클러스터에서 다음과 같이 유지보수 기간을 설정합니다.

콘솔

  1. 클러스터 페이지로 이동합니다.

    클러스터로 이동

  2. 리소스 이름 열에서 클러스터를 클릭합니다.

  3. 개요 페이지의 유지보수 섹션에서 수정을 클릭합니다. 구성 창이 열립니다.

  4. 선호 유지보수 기간 섹션에서 이 유지보수 기간의 요일을 선택합니다. 기본 옵션은 '모든 창'입니다.

    클러스터를 만들면 AlloyDB에서 이 기본 유지관리 기간을 할당합니다.

  5. 유지보수 업데이트 날짜를 선택한 다음 유지보수 기간의 시간을 선택합니다.

  6. 업데이트를 클릭하여 변경사항을 저장합니다.

gcloud

gcloud CLI를 사용하려면 Google Cloud CLI를 설치 및 초기화하거나 Cloud Shell을 사용합니다.

AlloyDB 클러스터의 구성 세부정보를 가져오려면 gcloud alloydb clusters update 명령어를 사용하여 다음을 실행하세요.

gcloud alloydb clusters update PRODUCTION_CLUSTER_ID \
    --region=LOCATION_ID \
    --maintenance-window-day=DAY_OF_WEEK \
    --maintenance-window-hour=HOUR_OF_DAY \
    --project=PROJECT_ID

다음을 바꿉니다.

  • PRODUCTION_CLUSTER_ID: 프로덕션 클러스터의 ID입니다.
  • LOCATION_ID: Google Cloud 리전입니다.
  • DAY_OF_WEEK: 유지보수 선호 요일입니다(예: SUNDAY).
  • HOUR_OF_DAY: UTC 기준 유지보수 선호 시간 (0~23)

    다음 예시는 일요일 오전 2시(UTC)에 유지보수 기간을 설정하는 방법을 보여줍니다.

    gcloud alloydb clusters update my-prod-cluster \
        --region=us-central1 \
        --maintenance-window-day=SUNDAY \
        --maintenance-window-hour=2 \
        --project=my-production-project

프로덕션 클러스터에서 유지보수 기간 확인

프로덕션 클러스터에 유지보수 기간이 설정되어 있는지 확인하려면 gcloud alloydb clusters describe 명령어를 실행합니다.

gcloud alloydb clusters describe PRODUCTION_CLUSTER_ID \
--region=LOCATION_ID \
--project=PROJECT_ID

출력에는 지정된 유지보수 요일과 시간이 포함된 maintenanceSchedule 필드가 반환됩니다.

유지보수 알림 수신 동의

프로덕션 클러스터의 예약된 유지보수 이벤트에 관한 알림을 수신하도록 선택하는 것이 좋습니다. 알림을 통해 테스트를 시작할 시기를 계획할 수 있습니다.

유지보수 알림을 받으려면 다음 단계를 따르세요.

  1. 클러스터 페이지로 이동합니다.

    클러스터로 이동

  2. 리소스 이름 열에서 클러스터를 클릭합니다. 개요 페이지가 열립니다.

  3. 개요 페이지의 유지보수 섹션에서 세부정보 표시를 클릭하여 섹션을 펼칩니다. 그런 다음 알림 행에서 수정을 클릭합니다. 커뮤니케이션 페이지가 열립니다.

  4. 커뮤니케이션 페이지에서 제품 커뮤니케이션 탭을 선택합니다.

  5. AlloyDB 행의 이메일 열에서 알림 버튼을 사용으로 전환합니다.

프로덕션 클러스터의 유지보수 기간을 구성하면 AlloyDB에서 스테이징 클러스터 업데이트 후 7일 이내에 업데이트합니다. 알림을 수신하도록 선택하면 프로덕션 클러스터에 유지보수 업데이트가 예약되었다는 이메일 알림이 전송됩니다.

스테이징 클러스터 업데이트

스테이징 환경을 사용하여 예정된 프로덕션 업데이트의 유효성을 검사합니다.

업데이트 전 상태 확인

스테이징 클러스터에는 유지보수 기간이 없으므로 업데이트가 적용되는 첫 번째 클러스터에 포함됩니다. 하지만 유지보수 기간이 구성되지 않은 클러스터에는 AlloyDB에서 알림을 보내지 않습니다. 하지만 Google Cloud 콘솔의 로그 탐색기를 사용하여 유지보수 업데이트가 발생하는 시점을 모니터링할 수 있습니다.

  1. Google Cloud 콘솔에서 로그 탐색기 페이지로 이동합니다.

    로그 탐색기로 이동

    검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Logging인 결과를 선택합니다.

  2. 모든 리소스를 선택하고 스테이징 클러스터를 선택한 후 적용을 클릭합니다.

  3. 모든 로그 이름을 선택하고 maintenance_events를 선택한 후 적용을 클릭합니다.

  4. 타임라인 창에서 스테이징 클러스터가 업데이트를 수신할 기간을 선택합니다.

업데이트 후 기능 확인 실행

AlloyDB에서 스테이징 클러스터를 업데이트한 후 기능 테스트를 실행하여 업데이트가 안전하고 프로덕션 환경에 적용하기에 적합한지 확인합니다.

업데이트 후 성능 확인 실행

유지보수 업데이트가 완료된 후 스테이징 클러스터를 확인합니다. 클러스터 업데이트를 스테이징한 후 데이터베이스에 미치는 성능 영향을 평가합니다. 포괄적인 기능 및 성능 테스트를 실행하여 애플리케이션이 예상대로 작동하고 성능 SLA를 충족하는지 확인합니다.

안정성과 최적의 작동을 보장하려면 다음을 수행하세요.

  • 업데이트 전 기준과 주요 측정항목을 비교합니다.
  • 부하 테스트를 실행하여 회귀를 식별합니다.
  • 쿼리 성능을 분석합니다.
  • 리소스 사용률을 모니터링합니다.

인증 결과에 따라 조치 취하기

인증 결과를 검토하고 결과에 따라 다음 작업을 수행합니다.

  • 검증 성공: 스테이징 클러스터에서 기능 및 성능 테스트가 성공하면 스테이징 환경에 오류가 없으며 예약된 기간에 따라 프로덕션 유지보수를 진행할 수 있습니다. 프로덕션 업데이트를 준비하고 관련 이해관계자에게 알립니다.
  • 인증 실패: 스테이징 클러스터에서 기능 및 성능 테스트가 실패하고 유지보수 업데이트 후 스테이징 환경에서 기능 오류, 성능 저하 또는 예기치 않은 동작이 발생하는 경우 프로덕션 유지보수를 거부해야 합니다.

예약된 유지보수 이벤트 거부

프로덕션 클러스터의 예약된 유지보수 이벤트를 거부하려면 시작일, 종료일, 간격 시작 및 종료 시간을 설정해야 합니다.

시작일과 종료일은 YYYY-MM-DD 형식이어야 합니다. 시작일, 종료일, 시간은 모두 UTC 시간대입니다.

gcloud CLI를 사용하려면 Google Cloud CLI를 설치 및 초기화하거나 Cloud Shell을 사용합니다.

AlloyDB 클러스터에 유지보수 거부 기간을 추가하려면 다음 단계를 완료하세요.

  1. deny-maintenance-period-start-date, deny-maintenance-period-end-date, deny-maintenance-period-time 플래그와 함께 gcloud alloydb clusters update 명령어를 실행합니다.

    gcloud alloydb clusters update CLUSTER_ID \
        --region LOCATION_ID \
        --deny-maintenance-period-start-date START_DATE \
        --deny-maintenance-period-end-date END_DATE \
        --deny-maintenance-period-time TIME
  2. 다음을 바꿉니다.

    • CLUSTER_ID: 유지보수 기간을 구성할 클러스터입니다.
    • LOCATION_ID: 이 클러스터가 있는 Google Cloud 리전(예: us-central1)
    • START_DATE: 유지보수 기간 시작일(YYYY-MM-DD UTC 형식)입니다.
    • END_DATE: 유지보수 기간의 종료일입니다(YYYY-MM-DD UTC 형식).
    • TIME: 유지보수 기간의 시간으로, HH:MM UTC 형식입니다. 시간은 24시간 형식으로 표시되며 값은 00:00~23:59입니다(예: 16:45).
  3. 오류 메시지, 성능 측정항목, 문제 재현 단계 등 모든 문제를 문서화합니다.

  4. Google Cloud 에 우선순위가 높은 지원 케이스를 접수하고 문서화된 모든 문제를 제공하세요. Google Cloud 에서 문제를 분석하고 해결하기 위해 협력합니다.

프로덕션 클러스터 업데이트

스테이징 검증이 성공하고 프로덕션 유지보수를 진행하도록 허용하면 예약된 유지보수 기간에 업데이트가 발생합니다.

유지보수 기간 확인

프로덕션 클러스터에서 예정된 유지보수 이벤트를 모니터링하려면 다음 단계를 따르세요.

콘솔

  1. 클러스터 페이지로 이동합니다.

    클러스터로 이동

  2. 리소스 이름 열에서 클러스터를 클릭합니다. 개요 페이지가 열립니다.

  3. 개요 페이지의 유지보수 섹션에서 클러스터의 유지보수 기간 세부정보를 확인합니다.

  4. 선택사항: 시스템 통계 페이지에서 이벤트 타임라인과 같은 유지관리 작업 상태 세부정보를 확인할 수 있습니다.

  5. 통합 유지보수 관리를 보려면 검색창에 'Cloud Hub 유지보수'를 입력하고 유지보수를 선택합니다. 이 페이지에서 유지보수 요약, Google에서 제어하는 유지보수, 예정된 유지보수 세부정보를 확인할 수 있습니다.

gcloud

gcloud CLI를 사용하려면 Google Cloud CLI를 설치 및 초기화하거나 Cloud Shell을 사용합니다.

gcloud alloydb clusters describe를 사용하여 다음을 실행합니다.

gcloud alloydb clusters describe PRODUCTION_CLUSTER_ID \
    --region=LOCATION_ID \
    --project=PROJECT_ID

유지보수 이벤트가 계획된 경우 출력에 maintenanceSchedulestartTime이 포함됩니다. 알림을 수신하도록 선택한 경우 이메일 알림도 수신합니다.

유지보수 기간 중 프로덕션 모니터링

Google Cloud 에서 유지관리 프로세스를 자동화하지만 예약된 유지관리 기간 동안 프로덕션 환경에서 다음을 모니터링하는 것이 좋습니다.

  • 애플리케이션 상태: 애플리케이션 로그와 상태 점검을 모니터링하여 중단 징후를 확인합니다.
  • 데이터베이스 연결: 중단 후 애플리케이션이 데이터베이스에 다시 연결할 수 있는지 확인합니다.
  • AlloyDB 측정항목: Google Cloud Monitoring을 사용하여 AlloyDB 측정항목(CPU, 메모리, 연결, 복제 지연)을 관찰하고 업데이트 후 예상 수준으로 돌아가는지 확인합니다.

유지보수 후 업데이트 확인

유지관리 업데이트가 완료되면 프로덕션 환경에서 중요한 기능과 성능 지표를 확인합니다.

  • 주요 애플리케이션 기능: 가장 중요한 애플리케이션 기능의 스모크 테스트를 실행합니다.
  • 기본 성능 확인: 대시보드에서 지연 시간 또는 리소스 소비의 급격한 상승을 검토합니다.