Amazon CloudWatch Logs의 로그 데이터를 다른 AWS 리전에 있는 다른 AWS 계정의 Amazon Kinesis 데이터 스트림으로 보내야 합니다. 어떻게 해야 합니까?
해결 방법
AWS 명령줄 인터페이스(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.
중요: CloudWatch 로그 이벤트를 다른 AWS 계정과 리전의 Kinesis 데이터 스트림으로 전송하려면 AWS 리전을 지정하면서 구독으로 계정 간 로그 데이터 공유를 설정하세요.
이 예시에서는 us-east-1 리전의 CloudWatch Logs가 us-west-2에 있는 다른 AWS 사용자의 Kinesis 데이터 스트림으로 전송됩니다.
1. 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
describe-stream 명령을 사용할 때 --region을 지정하고 StreamDescription.StreamStatus 속성을 확인합니다. 예를 들어 이 명령은 us-west-2에서 YourStreamName 스트림을 확인합니다.
>aws kinesis describe-stream --stream-name "YourStreamName" --region us-west-2
put-destination 명령을 사용하여 CloudWatch Logs 대상을 생성할 때 --role-arn의 --region을 소스 CloudWatch 로그와 동일한 AWS 리전으로 설정합니다. 예를 들어 이 명령은 us-east-1의 수신자 계정(222222222222)에 로그 대상을 생성합니다.
>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
2. 계정에서 구독 필터를 생성합니다.
3. (선택 사항) 데이터 스트림이 로그 이벤트 흐름을 검증하여 작동하는지 확인합니다.
관련 정보
역할 용어 및 개념(IAM)