sink 선언 - Microsoft Windows용 Amazon Kinesis 에이전트

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

sink 선언

sink 선언는 다양한 AWS 서비스로 전송해야 하는 로그, 이벤트 및 메트릭을 지정할 수 있습니다. 다음 섹션에서는 Microsoft Windows용 Amazon Kinesis 에이전트에서 사용할 수 있는 기본 제공 싱크 유형의 구성에 대해 설명합니다. Windows용 Kinesis 에이전트는 확장할 수 있으므로 사용자 정의 싱크 유형을 추가할 수 있습니다. 각 싱크 유형은 일반적으로 해당 싱크 유형과 관련된 구성 선언에서 고유 한 키 - 값 쌍을 필요로합니다.

모든 싱크 선언은 다음 키-값 페어를 포함할 수 있습니다.

Id

구성 파일 (필수) 에서 특정 싱크를 식별하는 고유한 문자열입니다.

SinkType

이 싱크에 대한 싱크 유형의 이름입니다 (필수 사항). 싱크 유형은 이 싱크에서 스트리밍되는 로그, 이벤트 또는 메트릭 데이터의 대상을 지정합니다.

AccessKey

싱크 유형과 연결된 AWS 서비스에 대한 액세스 권한을 부여할 때 사용할 AWS 액세스 키를 지정합니다. 이 키-값 페어는 선택 사항입니다. 자세한 내용은 sink 보안 구성 섹션을 참조하세요.

SecretKey

싱크 유형과 연결된 AWS 서비스에 대한 액세스 권한을 부여할 때 사용할 AWS 보안 키를 지정합니다. 이 키-값 페어는 선택 사항입니다. 자세한 내용은 sink 보안 구성 섹션을 참조하세요.

Region

스트리밍을 위한 대상 리소스가 포함된 AWS 리전을 지정합니다. 이 키-값 페어는 선택 사항입니다.

ProfileName

인증에 사용할 AWS 프로필을 지정합니다. 이 키 - 값 쌍은 선택 사항이지만, 지정된 경우, 지정된 액세스 키와 비밀 키를 재정의합니다. 자세한 내용은 sink 보안 구성 섹션을 참조하세요.

RoleARN

싱크 유형과 연결된 AWS 서비스에 액세스할 때 사용할 IAM 역할을 지정합니다. 이 옵션은 Windows용 Kinesis 에이전트가 EC2 인스턴스에서 실행 중이지만 인스턴스 프로필에서 참조하는 역할보다 다른 역할이 더 적합할 때 유용합니다. 예를 들어 교차 계정 역할을 사용하여 EC2 인스턴스와 동일한 AWS 계정에 있지 않은 리소스를 타겟팅할 수 있습니다. 이 키-값 페어는 선택 사항입니다.

Format

스트리밍 전에 로그 및 이벤트 데이터에 적용되는 직렬화 종류를 지정합니다. 유효한 값은 jsonxml입니다. 이 옵션은 데이터 파이프라인의 다운스트림 분석에서 특정 형식의 데이터를 요구하거나 선호하는 경우에 유용합니다. 이 키-값 쌍은 선택 사항이며, 지정하지 않으면 소스의 일반 텍스트가 싱크에서 싱크 유형과 연결된 AWS 서비스로 스트리밍됩니다.

TextDecoration

없는 경우Format가 지정되어 있는 경우TextDecoration는 로그 또는 이벤트 레코드를 스트리밍할 때 포함할 추가 텍스트를 지정합니다. 자세한 내용은 싱크 장식 구성 섹션을 참조하세요. 이 키-값 페어는 선택 사항입니다.

ObjectDecoration

일시Format가 지정되어 있는 경우ObjectDecoration는 직렬화 및 스트리밍 전에 로그 또는 이벤트 레코드에 포함될 추가 데이터를 지정합니다. 자세한 내용은 싱크 장식 구성 섹션을 참조하세요. 이 키-값 페어는 선택 사항입니다.

BufferInterval

싱크 유형과 연결된 AWS 서비스에 대한 API 호출을 최소화하기 위해 Windows용 Kinesis 에이전트는 스트리밍하기 전에 여러 로그, 이벤트 또는 메트릭 레코드를 버퍼링합니다. 이를 통해 API 호출당 청구되는 서비스에 대한 비용을 절감할 수 있습니다.BufferInterval는 AWS 서비스로 스트리밍하기 전에 레코드가 버퍼링되어야 하는 최대 시간 (초) 을 지정합니다. 이 키 - 값 쌍은 선택 사항이며, 지정된 경우 값을 나타내는 문자열을 사용합니다.

BufferSize

싱크 유형과 연결된 AWS 서비스에 대한 API 호출을 최소화하기 위해 Windows용 Kinesis 에이전트는 스트리밍하기 전에 여러 로그, 이벤트 또는 메트릭 레코드를 버퍼링합니다. 이를 통해 API 호출당 청구되는 서비스에 대한 비용을 절감할 수 있습니다.BufferSize는 AWS 서비스로 스트리밍하기 전에 버퍼링할 최대 레코드 수를 지정합니다. 이 키 - 값 쌍은 선택 사항이며, 지정된 경우 값을 나타내는 문자열을 사용합니다.

MaxAttempts

일관되게 스트리밍이 실패할 경우 Kinesis Agent가 일련의 로그, 이벤트 및 메트릭 레코드를 AWS 서비스로 스트리밍하려고 시도하는 최대 횟수를 지정합니다. 이 키-값 페어는 선택 사항입니다. 지정된 경우 문자열을 사용하여 값을 나타냅니다. 기본값은”3“.

다양한 종류의 싱크를 사용하는 전체 구성 파일의 예는Windows 응용 프로그램 이벤트 로그에서 싱크로 스트리밍.

KinesisStreamsink 구성

KinesisStream싱크 유형은 Kinesis Data Streams 서비스에 기록과 이벤트를 기록합니다. 일반적으로 Kinesis 데이터 스트림으로 스트리밍되는 데이터는 다양한 AWS 서비스를 사용하여 실행되는 하나 이상의 사용자 지정 애플리케이션에 의해 처리됩니다. 데이터는 Kinesis 데이터 스트림을 사용하여 구성된 명명된 스트림으로 스트리밍됩니다. 자세한 내용은 단원을 참조하십시오.Amazon Kinesis Data Streams 개발자 가이드.

다음은 Kinesis Data Streams 싱크 선언의 예입니다.

{ "Id": "TestKinesisStreamSink", "SinkType": "KinesisStream", "StreamName": "MyTestStream", "Region": "us-west-2" }

모두KinesisStream싱크 선언은 다음과 같은 추가 키-값 페어를 제공할 수 있습니다.

SinkType

을 지정해야 하며 값은 리터럴 문자열이어야 합니다.KinesisStream.

StreamName

에서 스트리밍된 데이터를 수신하는 Kinesis 데이터 스트림의 이름을 지정합니다.KinesisStream싱크 유형 (필수). 데이터를 스트리밍하기 전에 AWS 관리 콘솔, AWS CLI에서 또는 Kinesis 데이터 스트림 API를 사용하는 애플리케이션을 통해 스트림을 구성합니다.

RecordsPerSecond

초당 Kinesis Data Streams 으로 스트리밍되는 최대 레코드 수를 지정합니다. 이 키-값 페어는 선택 사항입니다. 지정된 경우 정수를 사용하여 값을 나타냅니다. 기본 값은 1000 개 레코드입니다.

BytesPerSecond

Kinesis Data Streams 으로 스트리밍되는 초당 최대 바이트 수를 지정합니다. 이 키-값 페어는 선택 사항입니다. 지정된 경우 정수를 사용하여 값을 나타냅니다. 기본값은 1MB입니다.

기본 설정BufferInterval이 싱크 유형의 경우 1 초이고 기본BufferSize은 500개의 레코드입니다.

KinesisFirehosesink 구성

KinesisFirehose싱크 유형은 Kinesis Data Firehose 서비스에 로그 레코드와 이벤트를 스트리밍합니다. Kinesis Data Firehose 는 스트리밍된 데이터를 스토리지용으로 다른 서비스로 제공합니다. 일반적으로 저장된 데이터는 데이터 파이프라인의 후속 단계에서 분석됩니다. 데이터는 Kinesis Data Firehose 를 사용하여 구성된 명명된 전송 스트림으로 스트리밍됩니다. 자세한 내용은 단원을 참조하십시오.Amazon Kinesis Data Firehose se를 개발자 가이드.

다음은 Kinesis Data Firehose 싱크 선언의 예입니다.

{ "Id": "TestKinesisFirehoseSink", "SinkType": "KinesisFirehose", "StreamName": "MyTestFirehoseDeliveryStream", "Region": "us-east-1", "CombineRecords": "true" }

모두KinesisFirehose싱크 선언은 다음과 같은 추가 키-값 페어를 제공할 수 있습니다.

SinkType

을 지정해야 하며 값은 리터럴 문자열이어야 합니다.KinesisFirehose.

StreamName

에서 스트리밍된 데이터를 수신하는 Kinesis Data Firehose 전송 스트림의 이름을 지정합니다.KinesisStream싱크 유형 (필수). 데이터를 스트리밍하기 전에 AWS 관리 콘솔, AWS CLI를 사용하거나 Kinesis Data Firehose API를 사용하는 애플리케이션을 통해 전송 스트림을 구성합니다.

CombineRecords

로 설정된 경우true는 여러 개의 작은 레코드를 최대 크기가 5KB인 큰 레코드로 결합하도록 지정합니다. 이 키-값 페어는 선택 사항입니다. 이 함수를 사용하여 결합 된 레코드는\n. AWS Lambda 를 사용하여 Kinesis Data Firehose 레코드를 변환하는 경우 Lambda 함수에서 구분 문자를 고려해야 합니다.

RecordsPerSecond

초당 Kinesis Data Streams 으로 스트리밍되는 최대 레코드 수를 지정합니다. 이 키-값 페어는 선택 사항입니다. 지정된 경우 정수를 사용하여 값을 나타냅니다. 기본값은 5000개 레코드입니다.

BytesPerSecond

초당 Kinesis Data Streams 으로 스트리밍되는 최대 바이트 수를 지정합니다. 이 키-값 페어는 선택 사항입니다. 지정된 경우 정수를 사용하여 값을 나타냅니다. 기본값은 5MB입니다.

기본 설정BufferInterval이 싱크 유형의 경우 1 초이고 기본BufferSize은 500개의 레코드입니다.

CloudWatch 싱크 구성

CloudWatch싱크 유형은 메트릭을 CloudWatch 서비스로 스트리밍합니다. AWS Management Console에서 지표를 볼 수 있습니다. 자세한 내용은 Amazon CloudWatch 사용 설명서를 참조하십시오.

다음은 예제입니다.CloudWatchsink 선언:

{ "Id": "CloudWatchSink", "SinkType": "CloudWatch" }

모두CloudWatch싱크 선언은 다음과 같은 추가 키-값 페어를 제공할 수 있습니다.

SinkType

을 지정해야 하며 값은 리터럴 문자열이어야 합니다.CloudWatch.

Interval

Windows용 Kinesis 에이전트가 메트릭을 CloudWatch 서비스에 보고하는 빈도 (초) 를 지정합니다. 이 키-값 페어는 선택 사항입니다. 지정된 경우 정수를 사용하여 값을 나타냅니다. 기본 값은 60초입니다. 고해상도 CloudWatch 메트릭을 원할 경우 1초를 지정합니다.

Namespace

지표 데이터가 보고되는 CloudWatch 네임스페이스를 지정합니다. CloudWatch 네임스페이스는 지표 집합을 함께 그룹화합니다. 이 키-값 페어는 선택 사항입니다. 기본 값은 KinesisTap입니다.

Dimensions

네임스페이스 내에서 메트릭 집합을 격리하는 데 사용되는 CloudWatch 차원을 지정합니다. 예를 들어 각 데스크톱 또는 서버에 대해 별도의 메트릭 데이터 세트를 제공하는 데 유용할 수 있습니다. 이 키-값 쌍은 선택 사항이며, 지정된 경우 값은 다음 형식을 준수해야 합니다."키1=Value1;키 2=Value2...". 기본 값은 "ComputerName={computername};InstanceId={instance_id}"입니다. 이 값은 싱크 변수 대체를 지원합니다. 자세한 내용은 싱크 변수 대체 구성 섹션을 참조하세요.

MetricsFilter

내장된 Windows용 Kinesis 에이전트 메트릭 소스에서 CloudWatch 로 스트리밍되는 메트릭을 지정합니다. 이 키-값 쌍의 값 구문 세부 정보를 포함하여 기본 제공 Kinesis Windows용 에이전트 메트릭 소스에 대한 자세한 내용은Windows용 Kinesis 에이전트 기본 제공 메트릭 소스.

CloudWatchLogssink 구성

CloudWatchLogs싱크 유형은 Amazon CloudWatch Logs Logs로 기록과 이벤트를 스트림합니다. AWS Management Console에서 로그를 보거나 데이터 파이프라인의 추가 단계를 통해 로그를 처리할 수 있습니다. 데이터는 CloudWatch Logs 로그에 구성된 명명된 로그 스트림으로 스트리밍됩니다. 로그 스트림은 명명된 로그 그룹으로 구성됩니다. 자세한 내용은 단원을 참조하십시오.Amazon CloudWatch Logs.

다음은 CloudWatch Logs 싱크 선언의 예입니다.

{ "Id": "MyCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "BufferInterval": "60", "BufferSize": "100", "Region": "us-west-2", "LogGroup": "MyTestLogGroup", "LogStream": "MyTestStream" }

모두CloudWatchLogs싱크 선언은 다음과 같은 추가 키-값 페어를 제공해야 합니다.

SinkType

리터럴 문자열이어야 합니다.CloudWatchLogs.

LogGroup

에서 스트리밍되는 로그 스트림과 이벤트 레코드를 수신하는 로그 스트림이 들어 있는 CloudWatch Logs 그룹의 이름을 지정합니다.CloudWatchLogssink 타입입니다. 지정된 로그 그룹이 존재하지 않는 경우 Windows용 Kinesis 에이전트가 해당 그룹을 생성하려고 합니다.

LogStream

CloudWatch Logs 스트림의 이름을 지정합니다.CloudWatchLogssink 타입입니다. 이 값은 싱크 변수 대체를 지원합니다. 자세한 내용은 싱크 변수 대체 구성 섹션을 참조하세요. 지정된 로그 스트림이 존재하지 않는 경우 Windows용 Kinesis 에이전트가 해당 스트림을 생성하려고 합니다.

기본 설정BufferInterval이 싱크 유형의 경우 1 초이고 기본BufferSize은 500개의 레코드입니다. 최대 버퍼 크기는 10,000개 레코드입니다.

로컬FileSystemsink 구성

싱크 타입FileSystem는 로그 및 이벤트 레코드를 AWS 서비스로 스트리밍하지 않고 로컬 파일 시스템의 파일에 저장합니다.FileSystem싱크는 테스트 및 진단에 유용합니다. 예를 들어, 이 싱크 유형을 사용하여 레코드를 AWS 로 보내기 전에 레코드를 검사할 수 있습니다.

다음으로 바꿉니다.FileSystem싱크의 경우 구성 파라미터를 사용하여 일괄 처리, 제한 및 오류 발생 시 재시도를 시뮬레이션하여 실제 AWS 싱크의 동작을 모방할 수도 있습니다.

에 연결된 모든 소스의 모든 레코드FileSystem싱크는 다음과 같이 지정된 단일 파일에 저장됩니다.FilePath. 다음의 경우,FilePath지정하지 않으면 레코드가 라는 파일에 저장됩니다.SinkId.txt%TEMP%디렉토리로, 일반적으로C:\Users\UserName\AppData\Local\Temp를 참조하십시오.SinkId은 싱크의 고유 식별자입니다.UserName은 활성 사용자의 Windows 사용자 이름입니다.

이 싱크 유형은 텍스트 장식 속성을 지원합니다. 자세한 내용은 싱크 장식 구성 섹션을 참조하세요.

예제FileSystem싱크 유형 구성은 다음 예시와 같이 표시됩니다.

{ "Id": "LocalFileSink", "SinkType": "FileSystem", "FilePath": "C:\\ProgramData\\Amazon\\local_sink.txt", "Format": "json", "TextDecoration": "", "ObjectDecoration": "" }

FileSystem구성은 다음과 같은 키-값 페어입니다.

SinkType

리터럴 문자열이어야 합니다.FileSystem.

FilePath

레코드가 저장되는 경로와 파일을 지정합니다. 이 키-값 페어는 선택 사항입니다. 지정하지 않은 경우 기본값은 입니다.TempPath\\SinkId.txt를 참조하십시오.TempPath에 저장된 폴더입니다.%TEMP%및 변수SinkId은 싱크의 고유 식별자입니다.

Format

이벤트의 형식이 될 지정합니다.json또는xml. 이 키 값 쌍은 선택 사항이며 대/소문자를 구분하지 않습니다. 생략하면 이벤트가 일반 텍스트로 파일에 기록됩니다.

TextDecoration

일반 텍스트로 작성된 이벤트에만 적용됩니다. 이 키-값 페어는 선택 사항입니다.

ObjectDecoration

이벤트에만 적용됩니다.Format다음의 경우 이 로 설정됩니다.json. 이 키-값 페어는 선택 사항입니다.

고급 사용 — 스로틀링 및 실패 시뮬레이션 기록

FileSystem는 레코드 제한을 시뮬레이션하여 AWS 싱크의 동작을 모방할 수 있습니다. 다음 키-값 페어를 사용하여 레코드 제한 및 실패 시뮬레이션 속성을 지정할 수 있습니다.

대상 파일에 대한 잠금을 획득하고 쓰기를 방지하여FileSystem싱크를 사용하여 네트워크 실패 시 AWS 싱크의 동작을 시뮬레이션하고 검사합니다.

다음 예제는FileSystem구성을 시뮬레이션 속성과 함께 사용합니다.

{ "Id": "LocalFileSink", "SinkType": "FileSystem", "FilePath": "C:\\ProgramData\\Amazon\\local_sink.txt", "TextDecoration": "", "RequestsPerSecond": "100", "BufferSize": "10", "MaxBatchSize": "1024" }
RequestsPerSecond

선택 사항이며 문자열 유형으로 지정됩니다. 생략할 경우 기본값은 입니다."5". 레코드 수가 아니라 싱크가 처리하는 요청 속도 (즉, 파일에 쓰기) 를 제어합니다. Windows용 Kinesis 에이전트는 AWS 엔드포인트에 일괄 요청을 하므로 요청에 여러 레코드가 포함될 수 있습니다.

BufferSize

선택 사항이며 문자열 유형으로 지정됩니다. 싱크가 파일에 저장하기 전에 배치되는 최대 이벤트 레코드 수를 지정합니다.

MaxBatchSize

선택 사항이며 문자열 유형으로 지정됩니다. 싱크가 파일에 저장하기 전에 배치되는 최대 이벤트 레코드 데이터 양 (바이트) 을 지정합니다.

최대 레코드 속도 제한은BufferSize은 요청 당 최대 레코드 수를 결정하고RequestsPerSecond. 다음 공식을 사용하여 초당 레코드 속도 제한을 계산할 수 있습니다.

레코드레이트=BufferSize*RequestsPerSecond

위의 예에서 구성 값을 감안할 때 초당 1000 레코드의 최대 레코드 속도가 있습니다.

sink 보안 구성

인증 구성

Windows용 Kinesis 에이전트가 로그, 이벤트 및 메트릭을 AWS 서비스에 스트리밍하려면 액세스를 인증해야 합니다. Windows용 Kinesis 에이전트에 인증을 제공하는 데에는 다음과 같은 몇 가지 방법이 있습니다. 실행 방법은 Windows용 Kinesis 에이전트가 실행 중인 상황과 특정 조직에 대한 특정 보안 요구 사항에 따라 다릅니다.

  • Windows용 Kinesis 에이전트가 Amazon EC2 호스트에서 실행 중인 경우 인증을 제공하는 가장 안전하고 간단한 방법은 필수 AWS 서비스에 필요한 작업에 충분한 액세스 권한을 가진 IAM 역할과 해당 역할을 참조하는 EC2 인스턴스 프로필을 생성하는 것입니다. 인스턴스 프로필 생성에 대한 자세한 내용은 단원을 참조하십시오.인스턴스 프로파일 사용. IAM 역할에 추가해야 하는 정책에 대한 자세한 내용은 단원을 참조하십시오. 권한 부여 구성.

    인스턴스 프로필을 생성한 후 Windows용 Kinesis 에이전트를 사용하는 EC2 인스턴스와 연결할 수 있습니다. 인스턴스에 이미 연결된 인스턴스 프로필이 있는 경우 해당 인스턴스 프로필과 연결된 역할에 적절한 정책을 연결할 수 있습니다.

  • Windows용 Kinesis 에이전트가 한 계정의 EC2 호스트에서 실행되지만 싱크의 대상인 리소스가 다른 계정에 상주하는 경우 교차 계정 액세스를 위한 IAM 역할을 생성할 수 있습니다. 자세한 내용은 단원을 참조하십시오.자습서: IAM 역할을 사용하여 AWS 계정 간 액세스 권한 위임. 교차 계정 역할을 생성한 후 교차 계정 역할의 Amazon 리소스 이름 (ARN) 을RoleARN싱크 선언에서 키-값 페어입니다. 그런 다음 Windows용 Kinesis 에이전트는 해당 싱크의 싱크 유형과 연결된 AWS 리소스에 액세스할 때 지정된 교차 계정 역할을 수임하려고 시도합니다.

  • Windows용 Kinesis 에이전트가 Amazon EC2 외부에서 실행 중인 경우 (예: 온프레미스) 다음과 같은 몇 가지 옵션이 있습니다.

    • 온프레미스 서버 또는 데스크톱 시스템을 Amazon EC2 Systems Manager 관리 인스턴스로 등록할 수 있는 경우 다음 프로세스를 사용하여 인증을 구성합니다.

      1. 에 설명된 프로세스를 사용하십시오.하이브리드 환경에서 AWS Systems Manager 설정를 사용하여 서비스 역할을 만들고, 관리되는 인스턴스에 대한 활성화를 만들고, SSM 에이전트를 설치합니다.

      2. 적절한 정책을 서비스 역할에 연결하여 Kinesis Agent가 구성된 싱크에서 데이터를 스트리밍하는 데 필요한 리소스에 액세스할 수 있도록 합니다. IAM 역할에 추가해야 하는 정책에 대한 자세한 내용은 단원을 참조하십시오. 권한 부여 구성.

      3. 에 설명된 프로세스를 사용하십시오.구성ProfileRefreshingAWSCredentialProviderAWS 자격 증명 새로 고침AWS 자격 증명을 새로 고칩니다.

      SSM 및 AWS 에서 자격 증명을 안전하게 관리하므로 비 EC2 인스턴스에 권장되는 접근 방식입니다.

    • 기본 시스템 계정 대신 특정 사용자로 Kinesis Windows용 에이전트용 AWSkinesistap 서비스를 실행할 수 있는 경우 다음 프로세스를 사용합니다.

      1. AWS 서비스를 사용할 AWS 계정에서 IAM 사용자를 생성합니다. 생성 프로세스 중에 이 사용자의 액세스 키와 보안 키를 캡처합니다. 이 프로세스의 이후 단계를 위해 이 정보가 필요합니다.

      2. 필요한 서비스에 필요한 작업에 대한 액세스 권한을 부여하는 정책을 IAM 사용자에게 연결합니다. IAM 사용자에게 연결할 정책에 대한 자세한 내용은 권한 부여 구성.

      3. 각 데스크톱 또는 서버에서 AWSkinesistap 서비스를 변경하여 기본 시스템 계정이 아닌 특정 사용자에서 실행되도록 합니다.

      4. 앞에서 기록한 액세스 키와 보안 키를 사용하여 SDK 저장소에 프로필을 생성합니다. 자세한 내용은 AWS 자격 증명 구성을 참조하십시오.

      5. 업데이트AWSKinesisTap.exe.config파일의%PROGRAMFILES%\Amazon\AWSKinesisTap디렉토리를 클릭하여 이전 단계에서 생성된 프로파일의 이름을 지정합니다. 자세한 내용은 AWS 자격 증명 구성을 참조하십시오.

      이는 특정 호스트 및 특정 사용자에 대해 자격 증명이 암호화되므로 관리할 수 없는 비 EC2 호스트에 권장되는 방법입니다.

    • 기본 시스템 계정에서 Windows용 Kinesis 에이전트용 AWSkinesisTap 서비스를 실행해야 하는 경우 공유 자격 증명 파일을 사용해야 합니다. 이는 시스템 계정에 SDK 저장소를 사용하도록 설정하기 위한 Windows 사용자 프로필이 없기 때문입니다. 공유 자격 증명 파일은 암호화되지 않으므로 이 방법을 사용하지 않는 것이 좋습니다. 공유 구성 파일을 사용하는 방법에 대한 자세한 내용은AWS 자격 증명 구성.NET용 AWS SDK. 이 방법을 사용하는 경우 NTFS 암호화 및 공유 구성 파일에 대한 제한된 파일 액세스를 사용하는 것이 좋습니다. 키는 관리 플랫폼에 의해 교체되어야 하며, 키 순환이 발생할 때 공유 구성 파일을 업데이트해야 합니다.

싱크 선언에 액세스 키와 비밀 키를 직접 제공 할 수는 있지만 선언이 암호화되지 않기 때문에이 방법은 권장되지 않습니다.

권한 부여 구성

다음 정책을 따르는 적절한 정책을 Windows용 Kinesis 에이전트가 AWS 서비스로 데이터를 스트리밍하는 데 사용할 IAM 사용자 또는 역할에 연결합니다.

Kinesis Data Streams

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kinesis:PutRecord", "kinesis:PutRecords" ], "Resource": "arn:aws:kinesis:*:*:stream/*" } ] }

특정 리전, 계정 또는 스트림 이름으로 권한을 제한하려면 ARN 의 적절한 별표를 특정 값으로 바꿉니다. 자세한 내용은 의 “Kinesis Data Streams 의 Amazon 리소스 이름 (ARN) 을 참조하십시오.IAM을 사용하여 Amazon Kinesis Data Streams 리소스에 대한 액세스 제어.

Kinesis Data Firehose

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Resource": "arn:aws:firehose:*:*:deliverystream/*" } ] }

특정 리전, 계정 또는 전송 스트림 이름으로 권한을 제한하려면 ARN 의 적절한 별표를 특정 값으로 바꿉니다. 자세한 내용은 단원을 참조하십시오.Amazon Kinesis Data Firehose 를 통한 액세스 제어Amazon Kinesis Data Firehose se를 개발자 가이드.

CloudWatch

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor2", "Effect": "Allow", "Action": "cloudwatch:PutMetricData", "Resource": "*" } ] }

자세한 내용은 단원을 참조하십시오.CloudWatch 리소스에 대한 액세스 권한 관리 개요Amazon CloudWatch Logs.

기존 로그 그룹 및 로그 스트림이 있는 CloudWatch 로그

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor3", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:*" }, { "Sid": "VisualEditor4", "Effect": "Allow", "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:*:*:log-group:*:*:*" } ] }

특정 리전, 계정, 로그 그룹 또는 로그 스트림에 대한 액세스를 제한하려면 ARN의 적절한 별표를 적절한 값으로 바꿉니다. 자세한 내용은 단원을 참조하십시오.CloudWatch Logs 리소스에 대한 액세스 권한 관리 개요Amazon CloudWatch Logs.

Kinesis 에이전트에서 로그 그룹 및 로그 스트림을 생성할 수 있는 추가 권한이 있는 CloudWatch 로그

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor5", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:*" }, { "Sid": "VisualEditor6", "Effect": "Allow", "Action": "logs:PutLogEvents", "Resource": "arn:aws:logs:*:*:log-group:*:*:*" }, { "Sid": "VisualEditor7", "Effect": "Allow", "Action": "logs:CreateLogGroup", "Resource": "*" } ] }

특정 리전, 계정, 로그 그룹 또는 로그 스트림에 대한 액세스를 제한하려면 ARN의 적절한 별표를 적절한 값으로 바꿉니다. 자세한 내용은 단원을 참조하십시오.CloudWatch Logs 리소스에 대한 액세스 권한 관리 개요Amazon CloudWatch Logs.

EC2 태그 변수 확장에 필요한 권한

함께 변수 확장을 사용하여ec2tag변수 접두사에는ec2:Describe*권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "VisualEditor8", "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "*" } ] }
참고

여러 명령문을 단일 정책으로 결합할 수 있습니다.Sid는 해당 정책 내에서 고유합니다. 정책 생성에 대한 자세한 내용은 단원을 참조하십시오.IAM 정책 생성IAM 사용 설명서.

구성ProfileRefreshingAWSCredentialProviderAWS 자격 증명 새로 고침

하이브리드 환경에 AWS Systems Manager 사용하여 AWS 자격 증명을 관리하는 경우 시스템 관리자는c:\Windows\System32\config\systemprofile\.aws\credentials. 하이브리드 환경을 위한 Systems Manager 에 대한 자세한 내용은하이브리드 환경을 위한 AWS Systems Manager 설정AWS Systems Manager 사용자 가이드.

AWS .net SDK는 새 자격 증명을 자동으로 선택하지 않으므로ProfileRefreshingAWSCredentialProvider플러그인을 사용하여 자격 증명을 새로 고칩니다.

다음을 수행할 수 있습니다.CredentialRef속성을 참조할 수 있는 모든 AWS 동기화 구성의Credentials정의를 참조하십시오.CredentialType속성이 로 설정되어 있습니다.ProfileRefreshingAWSCredentialProvider다음 예제에 표시된 대로 를 사용합니다.

{ "Sinks": [{ "Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "CredentialRef": "ssmcred", "Region": "us-west-2", "LogGroup": "myLogGroup", "LogStream": "myLogStream" }], "Credentials": [{ "Id": "ssmcred", "CredentialType": "ProfileRefreshingAWSCredentialProvider", "Profile": "default", "FilePath": "%USERPROFILE%//.aws//credentials", "RefreshingInterval": 300 }] }

자격 증명 정의는 키-값 페어로 다음과 같은 특성으로 구성됩니다.

Id

싱크 정의를 사용하여 지정할 수있는 문자열을 정의CredentialRef을 클릭하여 이 자격 증명 구성을 참조합니다.

CredentialType

리터럴 문자열로 설정ProfileRefreshingAWSCredentialProvider.

Profile

선택 사항입니다. 기본값은 default입니다.

FilePath

선택 사항입니다. AWS 자격 증명 파일 경로를 지정합니다. 지정하지 않을 경우, %USERPROFILE%/.aws/credentials이 기본값입니다.

RefreshingInterval

선택 사항입니다. 자격 증명이 새로 고쳐지는 빈도 (초) 입니다. 지정하지 않을 경우, 300이 기본값입니다.

싱크 장식 구성

싱크 선언에는 소스에서 수집한 레코드를 향상시키기 위해 다양한 AWS 서비스로 스트리밍할 추가 데이터를 지정하는 키-값 쌍이 선택적으로 포함될 수 있습니다.

TextDecoration

이 키-값 페어를 사용합니다.Format은 싱크 선언에 지정됩니다. 이 값은 변수 대체가 발생하는 특수 형식 문자열입니다. 예를 들어,TextDecoration"{ComputerName}:::{timestamp:yyyy-MM-dd HH:mm:ss}:::{_record}"싱크대 용으로 제공됩니다. 원본이 텍스트를 포함하는 로그 레코드를 내보내는 경우The system has resumed from sleep.이고 해당 소스가 파이프를 통해 싱크에 연결되면MyComputer1:::2017-10-26 06:14:22:::The system has resumed from sleep.는 싱크 유형과 연결된 AWS 서비스로 스트리밍됩니다. 이{_record}변수는 원본에서 전달한 원본 텍스트 레코드를 참조합니다.

ObjectDecoration

이 키-값 페어를 사용합니다.Format레코드 직렬화 전에 추가 데이터를 추가하기 위해 싱크 선언에 지정됩니다. 예를 들어,ObjectDecoration"ComputerName={ComputerName};DT={timestamp:yyyy-MM-dd HH:mm:ss}"JSON을 지정하는 싱크에 대해 제공됩니다.Format. 싱크 유형과 연결된 AWS 서비스로 스트리밍된 결과 JSON에는 원본의 원본 데이터 외에 다음 키-값 쌍이 포함됩니다.

{ ComputerName: "MyComputer2", DT: "2017-10-17 21:09:04" }

ObjectDecoration 사용 예는 자습서: 윈도우용 Kinesis 에이전트를 사용하여 JSON 로그 파일을 Amazon S3 로 스트리밍 단원을 참조하십시오.

ObjectDecorationEx

에 비해 더 유연한 데이터 추출 및 형식을 허용하는 식을 지정합니다ObjectDecoration. 이 필드는 싱크의 형식이 될 때 사용할 수 있습니다json. 표현식 구문은 다음과 같습니다.

"ObjectDecorationEx": "attribute1={expression1};attribute2={expression2};attribute3={expression3}(;...)"

예를 들어 다음과 같습니다.ObjectDecorationEx속성을 사용합니다.

"ObjectDecorationEx": "host={env:ComputerName};message={upper(_record)};time={format(_timestamp, 'yyyyMMdd')}"

리터럴 레코드를 변환합니다.

System log message

표현식에 의해 반환 된 값과 함께 다음과 같이 JSON 객체로:

{ "host": "EC2AMAZ-1234", "message": "SYSTEM LOG MESSAGE", "time": "20210201" }

표현식 수식에 대한 자세한 내용은 단원을 참조하십시오.표현식 쓰기 팁. 대부분의 경우ObjectDecoration선언은 타임 스탬프 변수를 제외하고 새로운 구문을 사용하여 작동해야합니다. A{timestamp:yyyyMMdd}의 필드를 입력합니다.ObjectDecoration로 표현됩니다.{format(_timestamp,'yyyyMMdd')}inObjectDecorationEx.

TextDecorationEx

에 비해 더 유연한 데이터 추출 및 형식을 허용하는 식을 지정합니다TextDecoration다음 예제에 표시된 대로 을 사용합니다.

"TextDecorationEx": "Message '{lower(_record)}' at {format(_timestamp, 'yyyy-MM-dd')}"

다음을 수행할 수 있습니다.TextDecorationEx를 사용하여 JSON 객체를 작성할 수 있습니다. 다음 예제와 같이 '@ {'를 사용하여 열린 중괄호를 이스케이프합니다.

"TextDecorationEx": "@{ \"var\": \"{upper($myvar1)}\" }"

싱크에 연결된 소스의 소스 유형이DirectorySource이면 싱크는 세 가지 추가 변수를 사용할 수 있습니다.

_FilePath

로그 파일의 전체 경로입니다.

_FileName

파일의 파일 이름 및 파일 이름 확장명입니다.

_Position

로그 파일에서 레코드가 있는 위치를 나타내는 정수입니다.

이러한 변수는 모든 레코드를 단일 스트림으로 스트리밍하는 싱크에 연결된 여러 파일에서 로그 레코드를 수집하는 원본을 사용할 때 유용합니다. 이러한 변수의 값을 스트리밍 레코드에 주입하면 데이터 파이프라인의 다운스트림 분석이 파일 및 각 파일 내의 위치별로 레코드를 정렬할 수 있습니다.

표현식 쓰기 팁

표현식은 다음 중 하나일 수 있습니다.

  • 변수 표현식입니다.

  • 상수 표현식 (예:'hello',1,1.21,null,true,false.

  • 다음 예제와 같이 함수를 호출하는 호출 표현식입니다.

    regexp_extract('Info: MID 118667291 ICID 197973259 RID 0 To: <jd@acme.com>', 'To: (\\\\S+)', 1)

특수 문자

특수 문자를 이스케이프하려면 두 개의 백 슬래시가 필요합니다.

Nesting

다음 예제와 같이 함수 호출은 중첩될 수 있습니다.

format(date(2018, 11, 28), 'MMddyyyy')

Variables

로컬, 메타, 글로벌: 변수의 세 가지 유형이 있습니다.

  • 로컬 변수로 시작$와 같은$message. 이벤트 객체의 속성, 이벤트가 사전인 경우 항목 또는 이벤트가 JSON 객체 인 경우 속성을 해결하는 데 사용됩니다. 지역 변수에 공백이나 특수 문자가 포함 된 경우 다음과 같은 인용 된 지역 변수를 사용$'date created'.

  • 메타 변수밑줄로 시작합니다 (_) 로 설정되며 이벤트의 메타 데이터를 확인하는 데 사용됩니다. 모든 이벤트 유형은 다음 메타 변수를 지원합니다.

    _timestamp

    이벤트의 타임스탬프입니다.

    _record

    이벤트의 원시 텍스트 표현입니다.

    로그 이벤트는 다음과 같은 추가 메타 변수를 지원합니다.

    _filepath

    _filename

    _position

    _linenumber

  • 전역 변수는 환경 변수, EC2 인스턴스 메타데이터 또는 EC2Tag로 해석됩니다. 성능을 높이려면 접두사를 사용하여 검색 범위를 제한하는 것이 좋습니다.{env:ComputerName},{ec2:InstanceId}, 및{ec2tag:Name}.

기본 제공 함수 함수

Windows용 Kinesis 에이전트는 다음과 같은 기본 제공 기능을 지원합니다. 인수 중 하나라도NULL이 함수는 처리하도록 설계되지 않았습니다.NULL,NULL객체가 반환됩니다.

//string functions int length(string input) string lower(string input) string lpad(string input, int size, string padstring) string ltrim(string input) string rpad(string input, int size, string padstring) string rtrim(string input) string substr(string input, int start) string substr(string input, int start, int length) string trim(string input) string upper(string str) //regular expression functions string regexp_extract(string input, string pattern) string regexp_extract(string input, string pattern, int group) //date functions DateTime date(int year, int month, int day) DateTime date(int year, int month, int day, int hour, int minute, int second) DateTime date(int year, int month, int day, int hour, int minute, int second, int millisecond) //conversion functions int? parse_int(string input) decimal? parse_decimal(string input) DateTime? parse_date(string input, string format) string format(object o, string format) //coalesce functions object coalesce(object obj1, object obj2) object coalesce(object obj1, object obj2, object obj3) object coalesce(object obj1, object obj2, object obj3, object obj4) object coalesce(object obj1, object obj2, object obj3, object obj4, object obj5) object coalesce(object obj1, object obj2, object obj3, object obj4, object obj5, object obj6)

싱크 변수 대체 구성

KinesisStream,KinesisFirehose, 및CloudWatchLogs싱크 선언에는LogStream또는StreamName키-값 페어를 입력합니다. 이러한 키-값의 값에는 Windows용 Kinesis 에이전트에 의해 자동으로 해석되는 변수 참조가 포함될 수 있습니다. 용CloudWatchLogs,LogGroup키-값 쌍도 필요하며 Windows용 Kinesis 에이전트에 의해 자동으로 해석되는 변수 참조를 포함할 수 있습니다. 변수는 템플릿을 사용하여 지정됩니다{prefix:variablename}여기서 각 항목은 다음과 같습니다.prefix:는 선택 사항입니다. 지원되는 접두사는 다음과 같습니다.

  • env— 변수 참조가 같은 이름의 환경 변수 값으로 해석됩니다.

  • ec2— 변수 참조가 같은 이름의 EC2 인스턴스 메타데이터로 확인됩니다.

  • ec2tag— 변수 참조가 같은 이름의 EC2 인스턴스 태그 값으로 확인됩니다. 이ec2:Describe*권한은 인스턴스 태그에 액세스하는 데 필요합니다. 자세한 내용은 EC2 태그 변수 확장에 필요한 권한 섹션을 참조하세요.

접두사를 지정하지 않으면 다음과 같은 이름의 환경 변수가있는 경우variablename이면 변수 참조가 환경 변수 값으로 해석됩니다. 그렇지 않을 경우 입니다.variablename확장하는 데instance_id또는hostname로 설정하면 변수 참조가 동일한 이름의 EC2 메타데이터 값으로 확인됩니다. 그렇지 않으면 변수 참조가 확인되지 않습니다.

다음은 변수 참조를 사용하는 유효한 키-값 페어의 예입니다.

"LogStream": "LogStream_{instance_id}" "LogStream": "LogStream_{hostname}" "LogStream": "LogStream_{ec2:local-hostname}" "LogStream": "LogStream_{computername}" "LogStream": "LogStream_{env:computername}"

CloudWatchLogs싱크 선언은 원본의 원래 로그 또는 이벤트 레코드의 타임 스탬프가 로그 스트림의 이름을 변경할 수 있도록 허용하는 특수 형식 타임 스탬프 변수를 지원합니다. 형식은 {timestamp:timeformat}입니다. 다음 예를 참조하십시오.

"LogStream": "LogStream_{timestamp:yyyyMMdd}"

로그 또는 이벤트 레코드가 2017년 6월 5일에 생성된 경우LogStream이전 예제에서 키-값 페어는"LogStream_20170605".

권한이 있는 경우CloudWatchLogs싱크 유형은 생성 된 이름을 기반으로 필요한 경우 자동으로 새 로그 스트림을 만들 수 있습니다. 다른 싱크 유형에서는 스트림 이름 이외의 추가 구성이 필요하기 때문에 이 작업을 수행할 수 없습니다.

텍스트 및 개체 장식에서 발생하는 특수 변수 대체가 있습니다. 자세한 내용은 싱크 장식 구성 섹션을 참조하세요.

싱크대 대기열 구성

KinesisStream,KinesisFirehose, 및CloudWatchLogs싱크 선언은 일시적인 연결 문제로 인해 이러한 싱크 유형과 연결된 AWS 서비스로 스트리밍하지 못한 레코드의 대기열을 선택적으로 활성화할 수 있습니다. 연결이 복원될 때 큐 및 자동 스트리밍 재시도를 활성화하려면 싱크 선언에서 다음 키-값 쌍을 사용합니다.

QueueType

사용할 대기열 메커니즘의 종류를 지정합니다. 지원되는 유일한 값은file는 레코드가 파일에서 대기열에 있어야 함을 나타냅니다. 이 키-값 쌍은 Windows용 Kinesis 에이전트의 큐 기능을 활성화하기 위해 필요합니다. 지정되지 않은 경우 기본 동작은 메모리에만 대기하고 메모리 대기열 제한에 도달하면 스트리밍에 실패합니다.

QueuePath

대기 중인 레코드의 파일이 들어 있는 폴더 경로를 지정합니다. 이 키-값 페어는 선택 사항입니다. 기본값은 입니다.%PROGRAMDATA%\KinesisTap\Queue\신키드여기서 각 항목은 다음과 같습니다.신키드의 값으로 할당 된 식별자입니다Id싱크 선언에 대한.

QueueMaxBatches

스트리밍을 위해 레코드를 대기열에 넣을 때 Kinesis Windows용 에이전트가 사용할 수 있는 총 공간을 제한합니다. 공간의 양은 이 키-값 쌍의 값에 일괄 처리당 최대 바이트 수를 곱한 값으로 제한됩니다. 에 대 한 일괄 처리 당 최대 바이트KinesisStream,KinesisFirehose, 및CloudWatchLogs싱크 유형은 각각 5MB, 4MB 및 1MB입니다. 이 제한에 도달하면 스트리밍 실패가 대기열에 추가되지 않고 복구할 수 없는 실패로 보고됩니다. 이 키-값 페어는 선택 사항입니다. 기본값은 10,000개의 배치입니다.

싱크에 대한 프록시 구성

AWS 서비스에 액세스하는 모든 Windows용 Kinesis 에이전트 싱크 유형에 대한 프록시를 구성하려면%Program Files%\Amazon\KinesisTap\AWSKinesisTap.exe.config. 지침은 다음 () 을 참조하십시오.proxy의 섹션을 참조하십시오..NET용 AWS SDK에 대한 구성 파일 참조.NET용 AWS SDK 개발자 안내서.

더 많은 싱크 속성에서 해석 변수 구성

다음 예제에서는 사용하는 싱크 구성을 보여 줍니다.Region환경 변수의 값에 대한Region속성 키-값 페어를. 용RoleARN, 그것은 EC2 태그 키를 지정MyRoleARN은 해당 키와 연관된 값으로 평가됩니다.

"Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "LogGroup": "EC2Logs", "LogStream": "logs-{instance_id}" "Region": "{env:Region}" "RoleARN": "{ec2tag:MyRoleARN}"

AWS 싱크에서 RoleARN 속성을 사용할 때 AWS STS 리전 엔드포인트 구성

이 기능은 Amazon EC2 KinesisPap을 사용하고RoleARN속성을 사용하여 대상 AWS 서비스를 인증할 외부 IAM 역할을 가정할 수 있습니다.

설정함으로써UseSTSRegionalEndpointstotrue에서 에이전트가 지역 끝점을 사용하도록 지정할 수 있습니다 (예:https://sts.us-east-1.amazonaws.com) 대신 전역 끝점 (예:https://sts.amazonaws.com). 지역 STS 끝점을 사용하면 작업에 대한 왕복 대기 시간이 줄어들고 글로벌 끝점 서비스에서 실패의 영향이 제한됩니다.

AWS 싱크용 VPC 엔드포인트 구성

싱크 구성에서 VPC 엔드포인트를 지정할 수 있습니다.CloudWatchLogs,CloudWatch,KinesisStreams, 및KinesisFirehosesink 유형. VPC 엔드포인트를 이용하면 인터넷 게이트웨이, NAT 디바이스, VPN 연결 또는 AWS Direct Connect 연결 없이도 AWS PrivateLink로 지원하는 지원되는 AWS 서비스 및 VPC 엔드포인트 서비스에 비공개로 연결할 수 있습니다. VPC의 인스턴스는 서비스의 리소스와 통신하는 데 퍼블릭 IP 주소를 필요로 하지 않습니다. VPC와 기타 서비스 간의 트래픽은 Amazon 네트워크를 벗어나지 않습니다. 자세한 내용은 단원을 참조하십시오.VPC 엔드포인트Amazon VPC 사용 설명서.

VPC 엔드포인트는ServiceURL속성의 다음 예제에 표시된 대로CloudWatchLogssink 구성을 선택합니다. 값을 설정합니다.ServiceURL에 표시된 값으로VPC 엔드포인트 정보탭에서 Amazon VPC 콘솔을 사용합니다.

{ "Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "LogGroup": "EC2Logs", "LogStream": "logs-{instance_id}", "ServiceURL":"https://vpce-ab1c234de56-ab7cdefg.logs.us-east-1.vpce.amazonaws.com" }

대체 프록시 수단 구성

이 기능을 사용하면 .NET 대신 AWS SDK에 내장된 프록시 지원을 사용하여 싱크 구성으로 프록시 서버를 구성할 수 있습니다. 이전에는 프록시를 사용하도록 에이전트를 구성하는 유일한 방법은.NET의 기본 기능을 사용하는 것이었습니다. 이 기능은 프록시 파일에 정의된 프록시를 통해 모든 HTTP/S 요청을 자동으로 라우팅했습니다.

현재 프록시 서버에서 에이전트를 사용 중인 경우 이 방법을 사용하기 위해 오버를 변경할 필요가 없습니다.

다음을 수행할 수 있습니다.ProxyHostProxyPort속성을 사용하여 다음 예제와 같이 대체 프록시를 구성합니다.

{ "Id": "myCloudWatchLogsSink", "SinkType": "CloudWatchLogs", "LogGroup": "EC2Logs", "LogStream": "logs-{instance_id}", "Region": "us-west-2", "ProxyHost": "myproxy.mydnsdomain.com", "ProxyPort": "8080" }