마이크로서비스 모니터링 가능성으로 Google Cloud에서 gRPC 애플리케이션 설정

마이크로서비스 모니터링 가능성 도구는 Google Cloud 및 기타 위치에 배포된 gRPC 워크로드에서 Cloud Monitoring, Cloud Logging, Cloud Trace의 원격 분석 데이터를 수집하고 나타내기 위해 애플리케이션을 계측하는 기능을 제공합니다. 마이크로서비스 모니터링 가능성은 마이크로서비스 API를 사용 설정하여 Monitoring, Logging, Trace에 액세스할 수 있는 권한이 부여된 모든 배포에서 작동합니다.

이 튜토리얼에서는 Compute Engine을 사용하여 Google Cloud 에서 간단한 gRPC 애플리케이션을 빌드하여 마이크로서비스 모니터링 가능성 기능을 사용하고 마이크로서비스 모니터링 가능성으로 애플리케이션을 계측하고 Monitoring 및 Logging에서 실시간으로 표시되는 마이크로서비스를 보는 방법을 알아봅니다.

목표

개략적으로 다음을 수행합니다.

  • 서비스 개발자는 다음을 수행할 수 있습니다.

    • 원하는 언어(C++, Go, Java)로 gRPC 애플리케이션을 만듭니다.
    • 애플리케이션을 선택하고 마이크로서비스 모니터링 가능성 플러그인을 제어합니다.
    • Compute Engine VM에 애플리케이션을 배포합니다.
  • 서비스 운영자는 여러 방법으로 수집된 데이터를 소비합니다.

    • Trace에서 trace 보기
    • 마이크로서비스(gRPC) 모니터링이라는 모니터링 대시보드에서 측정항목 보기
    • 측정항목 탐색기에서 측정항목 보기
    • 로그 탐색기에서 로그 항목 검사

비용

이 문서에서는 비용이 청구될 수 있는 Google Cloud구성요소를 사용합니다.

프로젝트 사용량을 기준으로 예상 비용을 산출하려면 가격 계산기를 사용합니다.

Google Cloud 신규 사용자는 무료 체험판을 사용할 수 있습니다.

이 문서에 설명된 태스크를 완료했으면 만든 리소스를 삭제하여 청구가 계속되는 것을 방지할 수 있습니다. 자세한 내용은 삭제를 참조하세요.

시작하기 전에

콘솔

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Compute Engine 및 Microservices API API를 사용 설정합니다.

    API 사용 설정에 필요한 역할

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

    API 사용 설정

  5. 서비스 계정 만들기 IAM 역할(roles/iam.serviceAccountCreator)과 프로젝트 IAM 관리자 역할(roles/resourcemanager.projectIamAdmin)이 있는지 확인합니다. 역할을 부여하는 방법 알아보기
  6. Google Cloud 콘솔에서 서비스 계정 만들기 페이지로 이동합니다.

    서비스 계정 만들기로 이동
  7. 프로젝트를 선택합니다.
  8. 서비스 계정 이름 필드에 이름을 입력합니다. Google Cloud 콘솔은 이 이름을 기반으로 서비스 계정 ID 필드를 채웁니다.

    서비스 계정 설명 필드에 설명을 입력합니다. 예를 들면 Service account for quickstart입니다.

  9. 만들고 계속하기를 클릭합니다.
  10. 서비스 계정에 다음 역할을 부여합니다. 로깅 > 로그 뷰어 > 로그 작성자, 모니터링 > 모니터링 편집자 > 측정항목 작성자, 추적 > 추적 관리자 > 추적 에이전트

    역할을 부여하려면 역할 선택 목록을 찾은 후 역할을 선택합니다.

    역할을 추가로 부여하려면 다른 역할 추가를 클릭하고 각 역할을 추가합니다.

  11. 계속을 클릭합니다.
  12. 서비스 계정 사용자 역할 필드에 서비스 계정을 Compute Engine 인스턴스와 같은 다른 리소스에 연결할 주 구성원의 식별자를 입력합니다.

    일반적으로 Google 계정의 이메일 주소입니다.

  13. 완료를 클릭하여 서비스 계정 만들기를 마칩니다.

  • In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  • Verify that billing is enabled for your Google Cloud project.

  • Compute Engine 및 Microservices API API를 사용 설정합니다.

    API 사용 설정에 필요한 역할

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

    API 사용 설정

  • 서비스 계정 만들기 IAM 역할(roles/iam.serviceAccountCreator)과 프로젝트 IAM 관리자 역할(roles/resourcemanager.projectIamAdmin)이 있는지 확인합니다. 역할을 부여하는 방법 알아보기
  • Google Cloud 콘솔에서 서비스 계정 만들기 페이지로 이동합니다.

    서비스 계정 만들기로 이동
  • 프로젝트를 선택합니다.
  • 서비스 계정 이름 필드에 이름을 입력합니다. Google Cloud 콘솔은 이 이름을 기반으로 서비스 계정 ID 필드를 채웁니다.

    서비스 계정 설명 필드에 설명을 입력합니다. 예를 들면 Service account for quickstart입니다.

  • 만들고 계속하기를 클릭합니다.
  • 서비스 계정에 다음 역할을 부여합니다. 로깅 > 로그 뷰어 > 로그 작성자, 모니터링 > 모니터링 편집자 > 측정항목 작성자, 추적 > 추적 관리자 > 추적 에이전트

    역할을 부여하려면 역할 선택 목록을 찾은 후 역할을 선택합니다.

    역할을 추가로 부여하려면 다른 역할 추가를 클릭하고 각 역할을 추가합니다.

  • 계속을 클릭합니다.
  • 서비스 계정 사용자 역할 필드에 서비스 계정을 Compute Engine 인스턴스와 같은 다른 리소스에 연결할 주 구성원의 식별자를 입력합니다.

    일반적으로 Google 계정의 이메일 주소입니다.

  • 완료를 클릭하여 서비스 계정 만들기를 마칩니다.

  • 마이크로서비스 관측 가능성 개요를 참조하세요.
  • 지원되는 두 가지 환경 변수에 대해 알아보고 사용할 항목을 결정하고 환경 변수에 필요한 값을 결정합니다.
  • CLI

    1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
    2. Google Cloud CLI를 설치합니다.

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

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

      gcloud init
    5. Google Cloud 프로젝트를 만들거나 선택합니다.

      프로젝트를 선택하거나 만드는 데 필요한 역할

      • 프로젝트 선택: 프로젝트를 선택하는 데는 특정 IAM 역할이 필요하지 않습니다. 역할이 부여된 프로젝트를 선택하면 됩니다.
      • 프로젝트 만들기: 프로젝트를 만들려면 resourcemanager.projects.create 권한이 포함된 프로젝트 생성자 역할(roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기
      • Google Cloud 프로젝트를 만듭니다.

        gcloud projects create PROJECT_ID

        PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다.

      • 생성한 Google Cloud 프로젝트를 선택합니다.

        gcloud config set project PROJECT_ID

        PROJECT_ID을 Google Cloud 프로젝트 이름으로 바꿉니다.

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

    7. Compute Engine 및 Microservices API API를 사용 설정합니다.

      API 사용 설정에 필요한 역할

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

      gcloud services enable compute.googleapis.com microservices.googleapis.com
    8. 인증을 설정합니다.

      1. 서비스 계정 만들기 IAM 역할(roles/iam.serviceAccountCreator)과 프로젝트 IAM 관리자 역할(roles/resourcemanager.projectIamAdmin)이 있는지 확인합니다. 역할 부여 방법 알아보기
      2. 서비스 계정을 만듭니다.

        gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

        SERVICE_ACCOUNT_NAME을 서비스 계정 이름으로 바꿉니다.

      3. 서비스 계정에 역할을 부여합니다. 다음 IAM 역할마다 roles/logging.logWriter, roles/monitoring.metricWriter, roles/cloudtrace.agent 명령어를 1회 실행합니다.

        gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE

        다음을 바꿉니다.

        • SERVICE_ACCOUNT_NAME: 서비스 계정의 이름입니다.
        • PROJECT_ID: 서비스 계정을 만든 프로젝트 ID입니다.
        • ROLE: 부여할 역할입니다.
      4. 서비스 계정을 다른 리소스에 연결할 주 구성원에 필요한 역할을 부여합니다.

        gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser

        다음을 바꿉니다.

        • SERVICE_ACCOUNT_NAME: 서비스 계정의 이름입니다.
        • PROJECT_ID: 서비스 계정을 만든 프로젝트 ID입니다.
        • USER_EMAIL: Google 계정의 이메일 주소입니다.
    9. Google Cloud CLI를 설치합니다.

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

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

      gcloud init
    12. Google Cloud 프로젝트를 만들거나 선택합니다.

      프로젝트를 선택하거나 만드는 데 필요한 역할

      • 프로젝트 선택: 프로젝트를 선택하는 데는 특정 IAM 역할이 필요하지 않습니다. 역할이 부여된 프로젝트를 선택하면 됩니다.
      • 프로젝트 만들기: 프로젝트를 만들려면 resourcemanager.projects.create 권한이 포함된 프로젝트 생성자 역할(roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기
      • Google Cloud 프로젝트를 만듭니다.

        gcloud projects create PROJECT_ID

        PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다.

      • 생성한 Google Cloud 프로젝트를 선택합니다.

        gcloud config set project PROJECT_ID

        PROJECT_ID을 Google Cloud 프로젝트 이름으로 바꿉니다.

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

    14. Compute Engine 및 Microservices API API를 사용 설정합니다.

      API 사용 설정에 필요한 역할

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

      gcloud services enable compute.googleapis.com microservices.googleapis.com
    15. 인증을 설정합니다.

      1. 서비스 계정 만들기 IAM 역할(roles/iam.serviceAccountCreator)과 프로젝트 IAM 관리자 역할(roles/resourcemanager.projectIamAdmin)이 있는지 확인합니다. 역할 부여 방법 알아보기
      2. 서비스 계정을 만듭니다.

        gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

        SERVICE_ACCOUNT_NAME을 서비스 계정 이름으로 바꿉니다.

      3. 서비스 계정에 역할을 부여합니다. 다음 IAM 역할마다 roles/logging.logWriter, roles/monitoring.metricWriter, roles/cloudtrace.agent 명령어를 1회 실행합니다.

        gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE

        다음을 바꿉니다.

        • SERVICE_ACCOUNT_NAME: 서비스 계정의 이름입니다.
        • PROJECT_ID: 서비스 계정을 만든 프로젝트 ID입니다.
        • ROLE: 부여할 역할입니다.
      4. 서비스 계정을 다른 리소스에 연결할 주 구성원에 필요한 역할을 부여합니다.

        gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser

        다음을 바꿉니다.

        • SERVICE_ACCOUNT_NAME: 서비스 계정의 이름입니다.
        • PROJECT_ID: 서비스 계정을 만든 프로젝트 ID입니다.
        • USER_EMAIL: Google 계정의 이메일 주소입니다.
    16. 마이크로서비스 관측 가능성 개요를 참조하세요.
    17. 지원되는 두 가지 환경 변수에 대해 알아보고 사용할 항목을 결정하고 환경 변수에 필요한 값을 결정합니다.