Google Cloud Observability를 사용하는 분석 작업 정의

이 문서에서는 Google Cloud Observability를 모니터링 시스템으로 사용하는 경우 배포 파이프라인에서 분석을 구성하는 방법을 설명합니다.

다른 모니터링 제공업체를 사용하는 경우 제공업체의 측정항목 및 기타 데이터를 수집하고 평가하는 컨테이너를 만드는 것을 포함하는 맞춤 분석을 정의해야 합니다.

시작하기 전에

  1. Google 계정에 로그인합니다.

    아직 계정이 없으면 새 계정을 등록하세요.

  2. Google Cloud CLI를 설치합니다.

  3. 외부 ID 공급업체 (IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

  4. gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.

    gcloud init
  5. 이 가이드를 완료하는 데 필요한 권한이 있는지 확인합니다.

  6. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  7. 아직 사용 설정되지 않은 Compute Engine, Cloud Deploy API를 사용 설정합니다.

    API 사용 설정에 필요한 역할

    API를 사용 설정하려면 serviceusage.services.enable 권한이 필요합니다. 프로젝트를 만든 경우 소유자 역할 (roles/owner)을 통해 이 권한이 이미 있을 수 있습니다. 그렇지 않은 경우 서비스 사용량 관리자 역할 (roles/serviceusage.serviceUsageAdmin)을 통해 이 권한을 얻을 수 있습니다. 역할을 부여하는 방법 알아보기

    gcloud services enable clouddeploy.googleapis.com  compute.googleapis.com
  8. Google Cloud CLI를 설치합니다.

  9. 외부 ID 공급업체 (IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

  10. gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.

    gcloud init
  11. 이 가이드를 완료하는 데 필요한 권한이 있는지 확인합니다.

  12. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  13. 아직 사용 설정되지 않은 Compute Engine, Cloud Deploy API를 사용 설정합니다.

    API 사용 설정에 필요한 역할

    API를 사용 설정하려면 serviceusage.services.enable 권한이 필요합니다. 프로젝트를 만든 경우 소유자 역할 (roles/owner)을 통해 이 권한이 이미 있을 수 있습니다. 그렇지 않은 경우 서비스 사용량 관리자 역할 (roles/serviceusage.serviceUsageAdmin)을 통해 이 권한을 얻을 수 있습니다. 역할을 부여하는 방법 알아보기

    gcloud services enable clouddeploy.googleapis.com  compute.googleapis.com

필요한 역할

분석 작업을 만들고 사용하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트 계정에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

Cloud Deploy 서비스 계정에 자동화를 만들고 사용하는 데 필요한 권한이 있는지 확인하려면 관리자에게 프로젝트의 Cloud Deploy 서비스 계정에 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

관리자는 커스텀 역할이나 다른 사전 정의된 역할을 통해 Cloud Deploy 서비스 계정에 필요한 권한을 부여할 수도 있습니다.

Cloud Deploy에서 분석 설정

배포 분석 구성은 다음 단계로 구성됩니다.

  1. 하나 이상의 알림 정책을 정의합니다.

  2. 배포 파이프라인에서 분석 작업을 구성합니다.

  3. 파이프라인을 실행하여 분석을 실행합니다.

알림 정책 정의

Google Cloud Observability에서 측정항목을 수신하도록 알림 정책을 정의합니다. Google Cloud Observability 알림 정책은 모니터링 데이터가 지정된 기준을 충족할 때 알림을 받을 시기와 방법을 설명합니다.

Cloud Deploy 분석은 이러한 알림을 사용하여 알림이 나타내는 상황에 따라 실행합니다.

예를 들어 HTTP 응답 지연 시간이 너무 길면 알림을 전송하도록 프로덕션의 애플리케이션에 알림 정책을 설정할 수 있으며, 이 알림을 기반으로 분석 작업에서 repairRolloutRule 자동화를 트리거하여 출시를 롤백할 수 있습니다.

또 다른 예시로 스테이징 환경에 배포된 애플리케이션에 유사한 알림 정책을 만들 수 있으며 분석 작업 기간 동안 알림이 트리거되지 않으면 해당 작업이 promoteReleaseRule 자동화를 트리거하여 출시 버전을 프로덕션으로 승격할 수 있습니다.

분석 만들기

애플리케이션의 전송 파이프라인에 대한 분석 작업을 만들려면 파이프라인의 구성 내에서 해당 분석을 구성한 다음 해당 구성 파일을 적용합니다.

분석 작업 구성

이 섹션에서는 Google Cloud Observability와 함께 사용할 Cloud Deploy 분석 작업을 구성하는 방법을 설명합니다.

분석 작업은 배포 파이프라인 정의의 일부로 strategy 스탠자 내에 구성됩니다. 이는 canary 또는 standard 전략 내에 있을 수 있습니다. 단계별로 분석을 구성하려면 커스텀 카나리아 (strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis)를 사용합니다.

분석 작업은 다음 요소로 구성됩니다.

  • 기간

    이 기간은 분석 작업이 실행되는 기간을 지정합니다. 기간이 만료되고 Google Cloud Observability에서 알림이 감지되지 않으면 분석이 성공한 것으로 간주되고 출시가 계속됩니다.

  • 모니터링 시스템의 알림 정책에 해당하는 하나 이상의 검사

    각 검사에는 다음이 포함됩니다.

    • ID

    • 하나 이상의 알림 정책

    즉, 하나 이상의 Google Cloud Observability 알림 정책에 대한 참조입니다.

    • 특정 알림 정책을 식별하는 데 사용되는 하나 이상의 라벨입니다. Google Cloud Observability 알림 정책은 여러 애플리케이션을 모니터링할 수 있으므로 이러한 라벨을 사용하면 하나 이상의 특정 애플리케이션으로 검사를 제한할 수 있습니다.

    여기에서 시스템 매개변수를 라벨의 키로 사용할 수 있습니다.

standard 배포 전략을 사용할 때 분석 작업을 구성하는 구문은 다음과 같습니다.


strategy:
  standard:
    analysis:
      duration: DURATION
      googleCloud:
        alertPolicyChecks:
        - id: CHECK_ID
          alertPolicies:
          - [ALERT_POLICY_ID]
          labels:
            [KEY: VALUE]

각 항목의 의미는 다음과 같습니다.

  • DURATION

    분석 작업을 실행할 시간(초)입니다. 기간이 만료되면 작업이 완료됩니다. 분석이 실패하면 (컨테이너가 0이 아닌 종료 코드를 반환함) 기간이 만료되기 전에 작업이 종료됩니다 (FAILED).

  • CHECK_ID

    분석의 개별 검사 ID입니다. 각 ID는 이 분석 작업 내에서 고유해야 합니다. 분석 작업에 하나 이상의 검사를 포함할 수 있습니다.

  • ALERT_POLICY_ID

    검사에 사용하는 Google Cloud Observability 알림 정책의 정책 ID입니다. gcloud monitoring policies list를 실행하여 알림 정책 ID를 찾을 수 있습니다. 다음과 같은 정규화된 ID가 필요합니다.

    projects/project-redacted/alertPolicies/01234567890123456789

    반환된 식별자에는 정책 ID 뒤에 /conditions/13842666848149128276가 포함될 수 있습니다. 정책 ID의 일부로 포함하지 마세요.

  • KEY 및 VALUE

    특정 알림만 고려하는 데 사용되는 라벨의 키-값 쌍입니다. 예를 들어 라벨을 사용하면 검사에서 특정 워크로드의 알림만 고려할 수 있습니다.

    여기서는 값을 위해 시스템 매개변수를 사용할 수 있습니다.

    다음은 시스템 매개변수를 사용하는 예시입니다.

    labels:
     service_name: '${{render.metadata.cloud_run.service.name}}'
    

이 구성은 분석 작업을 만듭니다. 검사는 여러 개이지만 이 구성은 작업을 하나만 만듭니다.

구성된 알림 정책 중 알림을 전송하는 정책이 없으면 이 작업은 성공하고 출시가 계속됩니다. 정책에서 알림이 실행되면 작업이 FAILED 상태로 중지되고 출시가 실패합니다 (작업 실패를 무시하도록 선택하지 않는 한 FAILED 상태).

전달 파이프라인 구성 파일 적용

분석 작업으로 전송 파이프라인을 만들려면 다음 명령어를 사용하여 구성 파일을 적용합니다.

gcloud deploy apply FILE \
       --region=REGION \
       --project=PROJECT_ID

다음을 바꿉니다.

  • FILE

    배포 파이프라인 구성 파일의 이름(clouddeploy.yaml 또는 사용자가 지정한 이름)

  • REGION

    전달 파이프라인을 만들 리전입니다.

  • PROJECT_ID

    이 배포 파이프라인을 만드는 프로젝트의 ID입니다.

이제 프로젝트에 배포 파이프라인이 있고 출시 버전을 만들 때 파이프라인의 일부가 될 분석 작업이 있습니다.

다음 단계