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를 사용 설정하려면 역할 (roles/serviceusage.serviceUsageAdmin)이 포함된 서비스 사용량 관리자 IAM serviceusage.services.enable 권한이 필요합니다. 역할 부여 방법 알아보기.

    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를 사용 설정하려면 역할 (roles/serviceusage.serviceUsageAdmin)이 포함된 서비스 사용량 관리자 IAM serviceusage.services.enable 권한이 필요합니다. 역할 부여 방법 알아보기.

    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의 일부로 포함하지 마세요.

  • KEYVALUE

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

    여기에서 값으로 시스템 매개변수 를 사용할 수 있습니다.

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

    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로 바꿉니다.

이제 프로젝트에 배포 파이프라인과 분석 작업이 있습니다. 분석 작업은 출시를 만들 때 파이프라인의 일부가 됩니다.

다음 단계