CloudWatch 콘솔을 사용하여 Kinesis에 대한 구독 필터를 생성 및 구성하고 문제를 해결하려면 어떻게 해야합니까?

5분 분량
0

Amazon CloudWatch 콘솔을 사용하여 Amazon CloudWatch Logs를 Amazon Kinesis로 스트리밍하기 위한 구독 필터를 만들고 싶습니다.

간략한 설명

구독 필터를 사용하면 거의 실시간으로 CloudWatch 로그를 동일한 계정이나 교차 계정 Kinesis 또는 Amazon Kinesis Data Firehose 대상으로 전송할 수 있습니다. CloudWatch Logs 콘솔은 대상 및 설정 구성을 지원합니다.

필터 패턴 구문을 사용하여 구독 필터를 구성하는 방법에 대한 자세한 내용은 필터 및 패턴 구문을 참조하십시오.

해결 방법

동일 계정 또는 현재 계정의 Kinesis 데이터 스트림에 대한 구독 구성

참고: CloudWatch 로그 그룹과 Kinesis 대상의 AWS 리전은 동일해야 합니다.

구독을 생성하기 전에 다음 작업을 완료하십시오:

사용자 지정 IAM 역할 및 역할 정책을 생성하려면 다음 단계를 완료하십시오:

1.    관리자 권한이 있는 사용자로 IAM 콘솔을 엽니다.

2.    탐색 창에서 정책을 선택합니다.

3.    콘텐츠 창에서 정책 생성을 선택합니다.

4.    다음 역할 권한 정책 문서를 JSON 탭에 삽입합니다. REGION, ACCOUNT_IDSTREAM_NAME을 자신의 세부 정보로 바꾸십시오:

{
  "Statement": \[{
    "Effect": "Allow",
    "Action": "kinesis:PutRecord",
    "Resource": "arn:aws:kinesis:REGION:ACCOUNT\_ID:stream/STREAM\_NAME"
  }\]
}

5.    IAM 콘솔을 엽니다.

  1. 탐색 창에서 역할을 선택한 다음 역할 만들기를 선택합니다.

7.    사용자 지정 신뢰 정책 역할 유형을 선택합니다.

8.    사용자 지정 신뢰 정책 섹션에서 역할에 대한 사용자 지정 신뢰 정책을 입력하거나 붙여넣습니다. 다음 예제 신뢰 정책을 참조하십시오:

{
  "Statement": {
    "Effect": "Allow",
    "Principal": {
      "Service": "logs.region.amazonaws.com"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
      "StringLike": {
        "aws:SourceArn": "arn:aws:logs:REGION:ACCOUNT\_ID:\*"
      }
    }
  }
}
  1. 다음을 선택합니다.

10.    4단계에서 생성한 사용자 지정 IAM 정책을 선택합니다.

11.    다음을 선택하고 역할 생성을 선택합니다.

Kinesis 스트림과 IAM 역할을 생성한 후 구독 필터를 생성하십시오:

1.    CloudWatch 콘솔을 엽니다.

2.    로그 그룹을 선택합니다.

3.    작업, 구독 필터를 선택합니다.

4.    대상을 구성하려면 Kinesis 구독 필터 생성을 선택합니다.

5.    현재 계정을 선택합니다.

6.    드롭다운 목록에서 Kinesis 데이터 스트림을 선택합니다.

7.    생성한 IAM 역할을 선택합니다.

8.    배포 방법을 선택합니다:
로그 스트림별:
이렇게 하면 다운스트림 소비자가 로그 스트림별로 로그 이벤트를 집계할 수 있지만 효율성이 떨어질 수 있습니다. 또한 이 방법을 사용하면 샤드가 더 많이 필요하기 때문에 스트리밍 비용이 더 많이 들 수 있습니다.
랜덤: 이렇게 하면 Kinesis 스트림 샤드에 부하가 분산되지만 다운스트림 소비자는 로그 스트림별로 로그 이벤트를 집계할 수 없습니다.

9.    로그 형식 및 필터 구성:
로그 형식을 선택합니다. 형식은 Amazon VPC 흐름 로그, AWS CloudTrail이거나, Amazon VPC, CloudTrail, Lambda에서 게시한 로그의 경우 AWS Lambda일 수 있습니다. 또는 수신되는 로그 이벤트에 따라 JSON, 공백으로 구분 또는 ** 기타**를 선택할 수 있습니다.
구독 필터 패턴 섹션에서 필터 패턴을 정의합니다.
구독 필터의 이름을 입력합니다.

10.    기존 로그 이벤트 데이터로 패턴을 확인하십시오.

  1. 확인 후 스트리밍 시작을 선택합니다.

12.    (선택 사항) 로그 이벤트 흐름을 검증하여 데이터 스트림이 작동하는지 확인합니다.

교차 계정 Kinesis 데이터 스트림 대상을 위한 구성

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하는 경우 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

다양한 AWS 계정 및 지역의 Kinesis 데이터 스트림에 CloudWatch Logs 이벤트를 전송할 수 있습니다. 이렇게 하려면 구독을 통한 교차 계정 로그 데이터 공유를 설정하고 지역을 지정해야 합니다.

다음 예에서는 us-east-1 지역의 CloudWatch 로그가 us-west-2 에 있는다른 AWS 사용자의 Kinesis 데이터 스트림으로 전송됩니다. 로그 데이터 수신자의 계정 ID는 222222222222이고 로그 데이터 발신자의 계정 ID는 111111111111입니다.

수신자 계정 222222222222에 대상 데이터 스트림 생성

IAM 역할 및 신뢰 정책을 사용하여 데이터 수신자 계정의 Kinesis에 대상 데이터 스트림을 생성합니다.

소스 계정 111111111111에서 구독 필터 만들기

구독 필터를 만들려면 다음 단계를 완료하세요:

1.    로그 그룹을 선택합니다.

2.    작업, 구독 필터를 선택합니다.

3.    대상을 선택하려면 생성을 선택한 다음 Kinesis 구독 필터 생성을 선택합니다.

4.    다른 계정을 선택합니다.

  1. 교차 계정 Kinesis 또는 Kinesis 데이터 Firehose 대상의 경우 대상 ARN을 제공하십시오.

6.    배포 방법을 선택합니다:
로그 스트림별: 이렇게 하면 다운스트림 소비자가 로그 스트림별로 로그 이벤트를 집계할 수 있지만 효율성이 떨어질 수 있습니다. 또한 이 방법을 사용하면 샤드가 더 많이 필요하기 때문에 스트리밍 비용이 더 많이 들 수 있습니다.
랜덤: 이렇게 하면 Kinesis 스트림 샤드에 부하가 분산되지만 다운스트림 소비자는 로그 스트림별로 로그 이벤트를 집계할 수 없습니다.

7.    로그 형식 및 필터 구성:
로그 형식을 선택합니다. 형식은 Amazon VPC 흐름 로그, CloudTrail이거나, Amazon VPC, CloudTrail, Lambda에서 게시한 로그의 경우 AWS Lambda일 수 있습니다. 또는 수신되는 로그 이벤트에 따라 JSON, 공백으로 구분 또는 ** 기타**를 선택할 수 있습니다.
구독 필터 패턴 섹션에서 필터 패턴을 정의합니다.
구독 필터의 이름을 입력합니다.

8.    기존 로그 이벤트 데이터로 패턴을 확인하십시오.

  1. 확인 후 스트리밍 시작을 선택합니다.

10.    (선택 사항) 로그 이벤트 흐름을 검증하여 데이터 스트림이 작동하는지 확인합니다.

문제 해결

  • Kinesis 스트림이 활성 상태인지 확인하십시오. Kinesis 콘솔에서 스트림을 보거나 DescribeStream API 호출을 사용할 수 있습니다.
  • CloudWatch 로그 그룹과 Kinesis 데이터 스트림 지역이 동일한지 확인합니다.
  • logs.yourregion.amazonaws.com에 대한 신뢰 권한이 있고 kinesis:putrecords에 대한 권한을 허용하는 IAM 역할이 있는지 확인하십시오.
  • IAM 정책의 지역 및 리소스가 올바른지 확인하십시오.
  • Kinesis 데이터 스트림에 대한 구독 필터를 구성할 때 Kinesis Firehose를 선택하지 않아야 합니다.
  • 스트리밍을 시작한 후 구독 필터 지표를 확인하여 필터 패턴이 유효하고 수신 로그 이벤트와 일치하는지 확인하십시오. 다음 지표를 검토하십시오: ForwardedBytes: 구독 대상으로 전달된 로그 이벤트의 볼륨(압축된 바이트)입니다. ForwardedLogEvents: 구독 대상에 전달된 로그 이벤트 수입니다.
  • 로그 이벤트를 대상으로 스트리밍할 때 오류가 없는지 확인하십시오. 다음 지표를 검토하십시오: DeliveryErrors: 구독 대상에 데이터를 전달할 때 CloudWatch Logs에서 오류를 수신한 로그 이벤트의 수입니다. DeliveryThrottling: 구독 대상으로 데이터를 전달할 때 CloudWatch Logs가 제한되었음을 나타내는 로그 이벤트 수입니다.
  • 전용 Kinesis 스트림이 있는 경우 스트림의 지표를 확인하여 기능을 확인하십시오.
  • 교차 계정 로깅과 관련된 문제는 CloudWatch 교차 계정 설정 문제 해결을 참조하십시오.
AWS 공식
AWS 공식업데이트됨 일 년 전
댓글 없음

관련 콘텐츠