Amazon Web Services 한국 블로그

CloudWatch Metric Streams – 실시간으로 파트너 및 개인 앱에 통계치 전송 기능

2009년 Amazon CloudWatch를 출시했을 때(Amazon EC2의 새로운 기능: Elastic Load Balancing, Auto Scaling 및 Amazon CloudWatch), EC2 인스턴스에 대한 성능 지표(CPU 로드, 디스크 I/O 및 네트워크 I/O)를 추적해 1분 간격으로 롤업하고 2주 동안 저장했습니다. 당시 인스턴스 상태를 모니터링하고 Auto Scaling을 구동하는 데 사용되었습니다. 오늘날 CloudWatch는 훨씬 더 포괄적이고 정교한 서비스입니다. 가장 최근에 추가된 항목에는 모든 EBS 볼륨 유형에 대해 1분 단위로 세분화된 지표, CloudWatch Lambda InsightsMetrics Explorer가 포함됩니다.

AWS 파트너사 역시 CloudWatch 지표를 사용하여 다양한 종류의 모니터링, 알림 및 비용 관리 도구를 만들었습니다. 지표에 액세스하기 위해 파트너는 각 고객에 대해 ListMetricsGetMetricData 함수를 호출한 폴링 플릿을 만들었습니다.

이러한 집합은 각 파트너의 고객이 생성한 AWS 리소스 수와 각 리소스에 대해 검색되는 CloudWatch 지표의 수에 비례하여 확장되어야 합니다. 이 폴링은 각 파트너가 해야 할 단순하고 일상적이면서 번거로운 작업 부담입니다. 그것은 가치를 더하지 않으며, 다른 방법에 더 잘 투자할 수 있는 귀중한 시간이 걸립니다.

Metric Stream – 새 지표 스트림 전송 기능
CloudWatch Side Menu(대시보드, 경보, 지표 등) AWS 파트너 및 다른 사람들이 CloudWatch 지표에 더 빠르게 대규모로 액세스할 수 있도록 CloudWatch Metric Streams를 시작합니다. 지표는 폴링(지연 시간이 5~10분 정도 소요될 수 있음) 대신 Kinesis Data Firehose 스트림으로 전달됩니다. 이것은 확장성이 뛰어나고 훨씬 효율적이며 두 가지 중요한 사용 사례를 지원합니다.

파트너 서비스 — AWS 파트너가 소유한 엔드포인트에 데이터를 기록하는 Kinesis Data Firehose에 지표를 스트리밍 할 수 있습니다. 이를 통해 파트너는 폴링 플릿을 대폭 축소할 수 있으며, 주요 비용 또는 성과 지표가 예기치 않은 방식으로 변경될 때 보다 신속하게 대응할 수 있는 도구를 구축할 수 있습니다.

Data Lake — 지표를 Kinesis Data Firehose로 스트리밍 할 수 있습니다. 여기에서 원하는 데이터 변환을 적용한 다음 지표를 Amazon Simple Storage Service(S3) 또는 Amazon Redshift로 푸시할 수 있습니다. 그러면 S3 Select, Amazon SageMaker, Amazon EMR, Amazon Athena, Amazon Kinesis Data Analytics 등의 모든 AWS 분석 도구를 자유롭게 사용할 수 있습니다. 고객은 비용 최적화, 리소스 성능 및 리소스 사용률을 측정 및 개선하기 위해서 청구 및 성능 데이터를 결합하기 위해 이를 수행합니다.

CloudWatch Metric Streams는 완전 관리형이며 설정이 매우 쉽습니다. 스트림은 2~3분 이내에 대상에 전달하여 모든 양의 지표를 처리할 수 있도록 확장할 수 있습니다. 생성한 각 스트림에 사용 가능한 모든 지표를 전송하도록 선택하거나 사용 가능한 AWS(EC2, S3 등) 또는 사용자 지정 네임스페이스를 옵트인 할 수 있습니다.

스트림이 설정되면 1~2분 이내에 지표가 흐르기 시작합니다. 필요한 경우 흐름을 중지하고 나중에 다시 시작할 수 있어 테스트 및 디버깅에 유용할 수 있습니다. 스트림을 설정할 때 바이너리 Open Telemetry 0.7 형식과 사람이 읽을 수 있는 JSON 형식 중에서 선택합니다.

각 Metric Stream은 특정 AWS 리전에 상주하며 단일 대상에 지표를 전달합니다. 여러 파트너에게 지표를 전달하려면 각 파트너에 대한 Metric Stream을 생성해야 합니다. 여러 AWS 계정 및/또는 리전에 걸쳐 있는 중앙 집중식 데이터 레이크를 생성하는 경우 일부 IAM 역할을 설정해야 합니다 (자세한 내용은 Amazon Kinesis Data Firehose로 Controlling Access 참조).

Metric Stream 생성
Metric Stream을 사용하는 두 가지 방법을 살펴보겠습니다. 먼저 Quick S3 설정 옵션을 사용하여 Kinesis Data Firehose로 데이터를 전송하고 거기에서 S3로 데이터를 전송합니다. 둘째, AWS 파트너 New Relic의 엔드포인트에 쓰는 Firehose를 사용하겠습니다.

CloudWatch 콘솔을 열고 원하는 리전을 선택한 다음 왼쪽 탐색에서 스트림(Streams)을 클릭합니다. 페이지를 검토하고 스트림 생성(Create stream)을 클릭하여 계속 진행합니다.

콘솔의 CloudWatch Metric Streams 홈 페이지

스트리밍할 지표를 선택합니다. 모든 지표를 선택한 다음 필요 없는 지표를 제외하거나 선택한 네임스페이스(Selected namespaces)를 클릭하고 필요한 네임스페이스를 포함할 수 있습니다. 전체로 이동하지만 Firehose는 제외합니다.

Metric Stream 생성 - 1부, 전체 또는 선택

Quick S3 설정을 선택하고 이 섹션의 다른 구성 설정은 변경하지 않은 상태로 둡니다(사용 가능한 모든 옵션을 볼 수 있도록 확장했습니다).

Metric Stream 생성 - S3 버킷 및 IAM 역할에 대한 옵션

그런 다음 스트림의 이름(Mymetrics-US-east-1a)을 입력하고 생성될 리소스를 이해하는지 확인하고 Metric Stream 생성(Create metric stream)을 클릭합니다.

Metric Stream의 이름 설정 및 생성될 리소스 확인

내 스트림이 몇 초 내에 생성되고 활성화됩니다.

Metric Stream이 활성 상태임

객체가 1~2분 이내에 S3 버킷에 나타나기 시작합니다.

객체가 S3 버킷에 나타남

위에 나열된 도구를 사용하여 지표를 분석하거나 원시 데이터를 간단히 볼 수 있습니다.

NotePad ++, JSON 형식에 표시된 단일 지표 개체

각 지표 스트림은 자체 CloudWatch 지표 세트를 생성합니다.

지표 스트림에 대한 지표

실행 중인 스트림을 중지할 수 있습니다.

실행 중인 스트림을 중지하는 방법

그런 다음 시작합니다.

중지된 스트림을 시작하는 방법

CloudFormation 템플릿을 사용하여 Metric Stream을 생성할 수도 있습니다. 발췌한 내용은 다음과 같습니다.

AWSTemplateFormatVersion: 2010-09-09
Resources:
  MetricStream:
    Type: 'AWS::CloudWatch::MetricStream'
    Properties:
      OutputFormat: json
      RoleArn: !GetAtt
        - MetricStreamToFirehoseRole
        - Arn
      FirehoseArn: !GetAtt
        - FirehoseToS3Bucket
        - Arn

이제 Partner-style의 사용 사례를 살펴보겠습니다! New Relic의 팀은 필요한 IAM 역할과 Metric Stream을 생성하는 CloudFormation 템플릿을 설치했습니다. API 키와 S3 버킷 이름을 입력하기만 하면 템플릿이 모든 무거운 작업을 수행했습니다. 확인한 내용은 다음과 같습니다.

New Relic UI에 표시된 지표

주요 사항
이게 전부입니다! 몇 가지 참고할 사항을 알려드립니다.

리전 — 이제 AWS 중국(베이징) 리전 및 AWS 중국(닝샤) 리전을 제외한 모든 상용 AWS 리전에서 Metric Streams를 사용할 수 있습니다. 앞에서 언급했듯이 원하는 각 계정 및 리전에서 지표 스트림을 생성해야 합니다(이는 CloudFormation Stacksets에 대한 효과적인 활용 사례입니다).

요금 — 지표 업데이트 1,000개당 및 Kinesis Data Firehose와 관련된 모든 요금에 대해 0.003 USD를 지불하면 됩니다. 자세한 내용은 요금 페이지를 참조하세요.

지표 — CloudWatch Metric Streams는 모든 CloudWatch 지표와 호환되지만 타임스탬프가 2시간 이상 지난 지표는 전송하지 않습니다. 여기에는 S3 일일 스토리지 지표 및 일부 청구 지표가 포함됩니다.

파트너 서비스
이 기능은 Datadog, Dynatrace, New Relic, Splunk 및 Sumo Logic을 포함한 AWS 파트너가 지표에 액세스하여 파트너가 더 나은 도구를 구축할 수 있도록 보다 쉽고 효율적으로 만드는 것을 목표로 설계되었습니다. 이러한 파트너와 협력하여 CloudWatch Metric Streams를 시작할 수 있도록 지원하고 있습니다. 다음은 경험을 공유하기 위해 작성한 블로그 게시물입니다. (게시된 링크로 이 기사를 업데이트하고 있습니다.)

정식 출시
현재 CloudWatch Metric Streams를 사용할 수 있으며, 이를 사용하여 자체 또는 AWS 파트너의 Kinesis Data Firehose에 지표를 스트리밍 할 수 있습니다. 자세한 내용은 설명서를 확인하고 Amazon CloudWatch용 AWS 포럼에 피드백을 보내주세요.

Jeff;