1. 소개
Eventarc를 사용하면 다양한 소스의 이벤트와 Google Cloud 서비스를 쉽게 연결할 수 있습니다. 마이크로서비스가 느슨하게 결합 및 분산된 이벤트 기반 아키텍처를 빌드할 수 있습니다. 또한 이벤트 수집, 전송, 보안, 승인, 오류 처리를 처리하여 개발자의 민첩성과 애플리케이션 복원력을 향상시킵니다.
Datadog는 클라우드 애플리케이션용 모니터링 및 보안 플랫폼입니다. 엔드 투 엔드 trace, 측정항목, 로그를 한데 모아 애플리케이션, 인프라, 서드 파티 서비스를 관측할 수 있도록 합니다.
이 첫 번째 Codelab에서는 Eventarc를 사용하여 간단한 Datadog 모니터링 알림을 Google Cloud로 라우팅하는 방법을 알아봅니다.
학습할 내용
- Datadog 제공자를 검색하는 방법
- Datadog 제공업체에 대한 채널을 설정하는 방법
- 이벤트를 로깅하는 워크플로를 만드는 방법
- 채널로 Eventarc 트리거를 만드는 방법
- Datadog 모니터를 만드는 방법
- Datadog 모니터, Eventarc 트리거, 워크플로를 테스트하는 방법
2. 설정 및 요구사항
자습형 환경 설정
- Google Cloud Console에 로그인하여 새 프로젝트를 만들거나 기존 프로젝트를 재사용합니다. 아직 Gmail이나 Google Workspace 계정이 없는 경우 계정을 만들어야 합니다.
- 프로젝트 이름은 이 프로젝트 참가자의 표시 이름입니다. 이는 Google API에서 사용하지 않는 문자열이며 언제든지 업데이트할 수 있습니다.
- 프로젝트 ID는 모든 Google Cloud 프로젝트에서 고유해야 하며, 변경할 수 없습니다(설정된 후에는 변경할 수 없음). Cloud 콘솔이 고유한 문자열을 자동으로 생성합니다. 보통은 그게 뭔지 상관하지 않습니다. 대부분의 Codelab에서는 프로젝트 ID (일반적으로
PROJECT_ID
로 식별됨)를 참조해야 합니다. 생성된 ID가 마음에 들지 않으면 무작위로 다른 ID를 생성할 수 있습니다. 또는 직접 시도해 보고 사용 가능한지 확인할 수도 있습니다. 이 단계 이후에는 변경할 수 없으며 프로젝트 기간 동안 유지됩니다. - 참고로 세 번째 값은 일부 API에서 사용하는 프로젝트 번호입니다. 이 세 가지 값에 대한 자세한 내용은 문서를 참고하세요.
- 다음으로 Cloud 리소스/API를 사용하려면 Cloud 콘솔에서 결제를 사용 설정해야 합니다. 이 Codelab 실행에는 많은 비용이 들지 않습니다. 이 튜토리얼이 끝난 후에 요금이 청구되지 않도록 리소스를 종료하려면 만든 리소스를 삭제하거나 전체 프로젝트를 삭제하면 됩니다. Google Cloud 새 사용자에게는 미화 $300 상당의 무료 체험판 프로그램에 참여할 수 있는 자격이 부여됩니다.
Cloud Shell 시작
Google Cloud를 노트북에서 원격으로 실행할 수 있지만, 이 Codelab에서는 Cloud에서 실행되는 명령줄 환경인 Google Cloud Shell을 사용합니다.
Google Cloud Console의 오른쪽 상단 툴바에 있는 Cloud Shell 아이콘을 클릭합니다.
환경을 프로비저닝하고 연결하는 데 몇 분 정도 소요됩니다. 완료되면 다음과 같이 표시됩니다.
가상 머신에는 필요한 개발 도구가 모두 들어있습니다. 영구적인 5GB 홈 디렉터리를 제공하고 Google Cloud에서 실행되므로 네트워크 성능과 인증이 크게 개선됩니다. 이 Codelab의 모든 작업은 브라우저 내에서 수행할 수 있습니다. 아무것도 설치할 필요가 없습니다.
gcloud 설정
Cloud Shell에서 프로젝트 ID를 설정하고 PROJECT_ID
변수로 저장합니다.
또한 REGION
변수를 us-central1
로 설정합니다. 나중에 리소스를 만들 리전입니다.
PROJECT_ID=[YOUR-PROJECT-ID] REGION=us-central1 gcloud config set core/project $PROJECT_ID
API 사용 설정
필요한 모든 서비스를 사용 설정합니다.
gcloud services enable \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
3. Datadog 제공업체 살펴보기
Eventarc 제공업체는 Google Cloud로 직접 이벤트를 내보낸 후 프로젝트로 라우팅될 수 있는 서비스 또는 항목입니다. Datadog와 같은 서드 파티 제공업체는 Eventarc를 통해 Google Cloud와 통합된 Google Cloud 이외의 제공업체입니다.
Cloud Shell에서 다음 명령어를 실행하여 Google Cloud 및 서드 파티 제공업체의 목록을 확인합니다.
gcloud eventarc providers list
여기에는 Google Cloud 및 서드 파티 제공업체와 이러한 제공업체가 제공되는 위치가 나와 있습니다.
NAME: storage.googleapis.com LOCATION: asia NAME: cloudaudit.googleapis.com LOCATION: asia NAME: pubsub.googleapis.com LOCATION: asia ...
다음 명령어를 사용하여 목록의 범위를 서드 파티 제공업체로 좁힐 수 있습니다.
gcloud eventarc providers list --filter='eventTypes.type!~^google*'
목록에 Datadog가 표시됩니다.
NAME: datadog LOCATION: us-central1
Datadog 제공업체를 설명하여 지원하는 이벤트를 확인할 수도 있습니다.
gcloud eventarc providers describe datadog --location $REGION displayName: Datadog eventTypes: - type: datadog.v1.alert name: projects/project-id/locations/us-central1/providers/datadog
4. 채널 설정
프로젝트를 제공업체와 통합하려면 채널을 설정해야 합니다. 여기에는 채널을 만들고 채널 세부정보를 검색한 다음 제공자에게 전송하는 작업이 포함됩니다. 제공자가 채널에 대한 연결을 초기화하면 해당 제공자는 귀하의 프로젝트에 이벤트를 보내기 시작할 수 있습니다.
채널 만들기
gcloud
를 사용하여 Datadog 제공업체의 채널을 만들 수 있습니다.
CHANNEL_NAME=datadog-channel gcloud eventarc channels create $CHANNEL_NAME \ --provider datadog \ --location $REGION
Google Cloud 콘솔에 있는 Eventarc 페이지의 채널 섹션에서도 만들 수 있습니다.
채널 세부정보 가져오기
채널이 생성되면 gcloud
에서 채널의 세부정보를 가져옵니다.
gcloud eventarc channels describe $CHANNEL_NAME --location $REGION
출력은 다음과 유사해야 합니다.
activationToken: so5g4Kdasda7y2MSasdaGn8njB2 createTime: '2022-03-09T09:53:42.428978603Z' name: projects/project-id/locations/us-central1/channels/datadog-channel provider: projects/project-id/locations/us-central1/providers/datadog pubsubTopic: projects/project-id/topics/eventarc-channel-us-central1-datadog-channel-077 state: PENDING uid: 183d3323-8cas-4e95-8d72-7d8c8b27cf9e updateTime: '2022-03-09T09:53:48.290217299Z'
마찬가지로 Google Cloud 콘솔에서 채널을 확인할 수 있습니다.
채널 상태는 채널의 상태를 나타냅니다. 다음 중 하나일 수 있습니다.
PENDING
: 채널이 성공적으로 생성되었으며 제공업체와의 연결을 만드는 데 사용할 수 있는 활성화 토큰이 있습니다. 채널 상태를PENDING
에서ACTIVE
로 변경하려면 토큰을 제공업체에 제공하고 채널 생성 후 24시간 이내에 채널을 연결하는 데 사용해야 합니다.ACTIVE
: 채널이 제공업체와 성공적으로 연결되었습니다.ACTIVE
채널이 제공자로부터 이벤트를 수신하고 라우팅할 준비가 되었습니다.INACTIVE
—채널이 이벤트를 수신하거나 다시 활성화할 수 없습니다. 제공업체가 이 채널에서 연결 해제되었거나 채널 활성화 토큰이 만료되어 제공업체가 연결되어 있지 않습니다. 제공업체와의 연결을 다시 설정하려면 제공업체에 대한 새 채널을 만들어야 합니다.
활성화 토큰은 시간이 제한된 일회용 토큰으로, 제공업체와 구독자 프로젝트 간의 연결을 만드는 데 사용됩니다. 채널 생성 프로세스 중에 선택된 특정 제공업체만 토큰을 사용할 수 있습니다. 토큰은 채널 생성 후 24시간 동안 유효합니다. 24시간이 지나면 채널이 INACTIVE
로 변경됩니다.
제공업체에 채널 세부정보 보내기
Datadog 제공업체에 다음 채널 세부정보를 전송해야 합니다.
- 채널 이름 (예:
projects/project-id/locations/us-central1/channels/datadog-channel
) - 활성화 토큰 (예:
so5g4Kdasda7y2MSasdaGn8njB2
)
Datadog에 로그인하고 통합 페이지로 이동하여 Google Eventarc 통합이 설치되어 있는지 확인합니다.
Google Eventarc의 구성 섹션에 전체 채널 이름과 활성화 토큰을 입력합니다.
이제 채널 목록에 채널이 표시되고 몇 초 후 Google Cloud 콘솔에서도 채널이 활성화된 것을 확인할 수 있습니다.
이제 채널을 사용할 준비가 되었습니다.
5. 워크플로 만들기
제공업체의 이벤트를 수신하려면 Google Cloud에 대상이 필요합니다. Eventarc는 Cloud Run, Workflows, Kubernetes 서비스 등 다양한 이벤트 대상을 지원합니다. 이 경우 수신된 이벤트를 기록하는 워크플로를 배포하세요.
다음 콘텐츠로 workflow-datadog1.yaml
이라는 파일을 만듭니다.
main: params: [event] steps: - logStep: call: sys.log args: data: ${event}
워크플로는 이벤트를 매개변수로 수신합니다. 이 이벤트는 Eventarc를 통한 Datadog 모니터링에서 가져옵니다. 이벤트가 수신되면 워크플로는 수신된 이벤트를 간단히 기록합니다.
워크플로를 배포합니다.
WORKFLOW_NAME=workflow-datadog1 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog1.yaml \ --location $REGION
워크플로가 배포되었지만 아직 실행되고 있지 않습니다. Datadog 알림이 수신되면 Eventarc 트리거에 의해 실행됩니다.
6. Eventarc 트리거 만들기
이제 Eventarc 트리거를 사용하여 Datadog 제공업체의 이벤트를 Workflows에 연결할 수 있습니다.
서비스 계정 구성
트리거를 만들 때 eventarc.eventReceiver
역할을 가진 서비스 계정이 필요합니다. 전용 서비스 계정을 만들거나 기본 컴퓨팅 서비스 계정을 사용할 수 있습니다.
편의상 기본 컴퓨팅 서비스 계정을 사용하고 eventarc.eventReceiver
역할을 부여합니다.
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)') gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role roles/eventarc.eventReceiver
트리거 만들기
Datadog 채널, 이벤트 유형, 워크플로 대상을 사용하여 트리거를 만듭니다.
gcloud eventarc triggers create datadog-trigger1 \ --location $REGION \ --destination-workflow $WORKFLOW_NAME \ --destination-workflow-location $REGION \ --channel $CHANNEL_NAME \ --event-filters type=datadog.v1.alert \ --service-account $PROJECT_NUMBER-compute@developer.gserviceaccount.com
트리거를 나열하여 새로 생성된 트리거가 활성 상태인지 확인할 수 있습니다.
gcloud eventarc triggers list --location $REGION NAME: datadog-trigger1 TYPE: datadog.v1.alert DESTINATION: Workflows: workflow-datadog1 ACTIVE: Yes
7. Datadog 모니터 만들기
이제 Datadog 모니터를 만들어 Eventarc에 연결합니다.
기본값이 있는 Hello World 유형 모니터입니다. 수동으로 트리거하여 모니터링 알림을 생성하고 Google Cloud에 Eventarc 이벤트를 생성합니다.
Datadog에서 모니터를 만들려면 Datadog에 로그인합니다. 기본 메뉴에서 Monitors
위로 마우스를 가져간 후 하위 메뉴에서 New Monitor
을 클릭합니다. 모니터에는 여러 유형이 있습니다. Metric
모니터 유형을 선택합니다.
New Monitor
페이지에서 1단계와 2단계의 기본값을 그대로 둡니다.
- 3단계에서
Alert threshold
를 1로 설정합니다. - 4단계에서
Test monitor for Eventarc
를 모니터 이름으로 설정하고Notify your team
를@eventarc_<your-project-id>_<your-region>_<your-channel-name>
로 설정합니다.
모니터를 테스트하는 다음 단계를 위해 모니터 페이지를 열어둡니다.
8. 모니터 및 트리거 테스트
Datadog 모니터와 Eventarc 트리거를 테스트하려면 모니터를 수동으로 트리거합니다.
모니터 만들기 페이지 하단에서 Test Notifications
버튼을 클릭합니다.
그런 다음 Run Test
버튼을 클릭합니다.
그러면 모니터에서 상태 전환이 시뮬레이션되고 Eventarc 이벤트가 트리거됩니다.
workflow-datadog1
워크플로를 확인합니다. 새 실행이 표시됩니다.
실행 세부정보를 확인합니다. 워크플로 입력과 로그에 모니터링 알림에서 생성된 Datadog 이벤트 유형 datadog.v1.alert
가 표시됩니다.
9. 축하합니다
축하합니다. Codelab을 완료했습니다. 계속해서 두 번째 Codelab에서 Workflows로 Datadog 모니터링 알림에 응답하는 방법을 알아볼 수 있습니다.
학습한 내용
- Datadog 제공자를 검색하는 방법
- Datadog 제공업체에 대한 채널을 설정하는 방법
- 이벤트를 로깅하는 워크플로를 만드는 방법
- 채널로 Eventarc 트리거를 만드는 방법
- Datadog 모니터를 만드는 방법
- Datadog 모니터, Eventarc 트리거, 워크플로를 테스트하는 방법