Amazon CloudWatch 로그에서 다른 AWS 리전에 있는 다른 AWS 계정의 Amazon Kinesis 데이터 스트림으로 로그 데이터를 전송해야 합니다.
해결 방법
CloudWatch 로그 이벤트를 다른 AWS 계정 및 지역의 Amazon Kinesis Data Streams에 전송하려면 구독과 계정 간 로그 데이터 공유를 설정하십시오. 그런 다음 AWS 리전을 지정하려면 다음 단계를 완료하십시오.
-
AWS Identity and Access Management(IAM) 역할 및 신뢰 정책을 사용하여 Kinesis에서 데이터 수신자 계정에 대상 데이터 스트림을 생성합니다.
데이터 스트림을 생성하려면 create-stream 명령을 사용할 때 --region을 지정합니다. 이 명령의 다음 예제는 us-west-2에 YourStreamName이라는 데이터 스트림을 생성합니다.
$ aws kinesis create-stream --stream-name "YourStreamName" --shard-count 1 --region us-west-2
-
이 예시에서는 AWS 계정 ID가 111111111111인 us-east-1 리전의 CloudWatch 로그입니다. 그런 다음 CloudWatch는 999999999999의 AWS 계정 ID로 us-west-2에 있는 다른 AWS 사용자의 Kinesis 데이터 스트림에 로그인합니다.
StreamDescription.StreamStatus 속성을 확인하려면 describe-stream 명령을 사용할 때 --region을 지정하십시오. 이 명령의 다음 예제는 us-west-2에서 YourStreamName 스트림을 검사합니다.
$ kinesis describe-stream --stream-name "YourStreamName" --region us-west-2
CloudWatch 로그 대상을 생성하려면 put-destination 명령을 사용합니다. 그런 다음 --role-arn의 --region을 소스 CloudWatch 로그와 동일한 리전으로 설정합니다. 다음 예에서 이 명령은 us-east-1의 수신자 계정 999999999999에 로그 대상을 만듭니다.
>aws logs put-destination \
--destination-name "testDestination" \
--target-arn "arn:aws:kinesis:us-west-2:222222222222:stream/YourStreamName" \
--role-arn "arn:aws:iam::222222222222:role/YourIAMRoleName" --region us-east-1
-
발신자 계정에서 구독 필터를 생성합니다. 예를 들어, AWS 계정 ID는 999999999999입니다.
-
(선택 사항) 데이터 스트림이 작동하는지 확인하려면 로그 이벤트의 흐름을 검증합니다.
참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참고하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
관련 정보
역할 용어 및 개념