아마존 SNS 및 AWS X-Ray - AWS X-Ray

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

아마존 SNS 및 AWS X-Ray

Amazon Simple Notification Service (Amazon SNS) 와 AWS X-Ray 함께 사용하면 요청이 SNS 주제를 통해 SNS 지원 구독 서비스로 이동하는 요청을 추적하고 분석할 수 있습니다. Amazon SNS와 함께 X-Ray 추적을 사용하여 토픽에서 요청이 소요되는 시간, 각 토픽의 구독에 메시지를 전달하는 데 걸리는 시간 등 메시지와 해당 백엔드 서비스의 지연 시간을 분석할 수 있습니다. Amazon SNS는 표준 및 FIFO 주제에 대해 X-Ray 추적을 지원합니다.

이미 X-Ray로 계측된 서비스에서 Amazon SNS 토픽에 게시하는 경우, Amazon SNS는 게시자에서 구독자에게 추적 컨텍스트를 전달합니다. 또한 액티브 트레이싱을 활성화하여 계측된 SNS 클라이언트에서 게시된 메시지에 대해 Amazon SNS 구독에 대한 세그먼트 데이터를 X-Ray로 전송할 수 있습니다. Amazon SNS 콘솔을 사용하거나 Amazon SNS API 또는 CLI를 사용하여 Amazon SNS 주제에 대한 액티브 트레이스를 활성화합니다. SNS 클라이언트 계측에 대한 자세한 내용은 애플리케이션 계측을 참조하십시오.

Amazon SNS 활성 추적 구성하기

Amazon SNS 콘솔 또는 AWS CLI 또는 SDK를 사용하여 Amazon SNS 활성 추적을 구성할 수 있습니다.

Amazon SNS 콘솔을 사용할 때 Amazon SNS는 SNS가 X-Ray를 직접 호출하는 데 필요한 권한을 생성하려고 시도합니다. X-Ray 리소스 정책을 수정할 수 있는 충분한 권한이 없는 경우 시도가 거부될 수 있습니다. 이러한 권한에 대한 자세한 내용은 Amazon Simple Notification Service 개발자 가이드에서 Amazon SNS 신원 및 액세스 관리Amazon SNS 제어 예시를 참조하세요. Amazon SNS 콘솔을 사용하여 액티브 추적을 켜는 방법에 대한 자세한 내용은 Amazon 단순 알림 서비스 개발자 가이드의 Amazon SNS에서 액티브 추적 사용 설정 항목을 참조하세요.

AWS CLI 또는 SDK를 사용하여 활성 추적을 활성화하는 경우 리소스 기반 정책을 사용하여 권한을 수동으로 구성해야 합니다. PutResourcePolicy를 사용하여 Amazon SNS가 X-Ray로 추적을 전송할 수 있도록 필요한 리소스 기반 정책으로 X-Ray를 구성합니다.

예 Amazon SNS 활성 추적에 대한 X-Ray 리소스 기반 정책 예시

이 예시 정책 문서는 추적 데이터를 X-Ray로 전송하는 데 필요한 Amazon SNS의 권한을 지정합니다.

{ Version: "2012-10-17", Statement: [ { Sid: "SNSAccess", Effect: Allow, Principal: { Service: "sns.amazonaws.com", }, Action: [ "xray:PutTraceSegments", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], Resource: "*", Condition: { StringEquals: { "aws:SourceAccount": "account-id" }, StringLike: { "aws:SourceArn": "arn:partition:sns:region:account-id:topic-name" } } } ] }

CLI를 사용하여 추적 데이터를 X-Ray로 전송할 수 있는 Amazon SNS 권한을 부여하는 리소스 기반 정책을 생성합니다.

aws xray put-resource-policy --policy-name MyResourcePolicy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "SNSAccess", "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": [ "xray:PutTraceSegments", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "StringLike": { "aws:SourceArn": "arn:partition:sns:region:account-id:topic-name" } } } ] }'

이 예제를 사용하려면, partitionregionaccount-id, 를 특정 AWS 파티션, 지역, 계정 ID, Amazon SNS 주제 이름으로 바꾸십시오. topic-name 모든 Amazon SNS 주제가 추적 데이터를 X-Ray로 전송하도록 권한을 부여하려면 주제 이름을 *로 바꾸십시오.

X-Ray 콘솔에서 Amazon SNS 게시자 및 구독자 추적 보기

X-Ray 콘솔을 사용하여 Amazon SNS 게시자 및 구독자의 연결된 보기를 표시하는 추적 맵과 추적 세부 정보를 볼 수 있습니다. 주제에 대해 Amazon SNS 활성 추적이 켜지면 X-Ray 추적 맵 및 추적 세부 정보 맵에 Amazon SNS 게시자의 연결 노드, Amazon SNS 주제 및 다운스트림 구독자가 표시됩니다.


                Amazon SNS 퍼블리셔 및 구독자가 포함된 트레이스 맵

Amazon SNS 게시자와 구독자를 아우르는 트레이스를 선택하면 X-Ray trace details 페이지에 트레이스 세부 정보 맵과 세그먼트 타임라인이 표시됩니다.

예 Amazon SNS 게시자 및 구독자가 포함된 예제 타임라인

이 예는 Amazon SQS 게시자가 Amazon SNS 주제에 메시지를 보내는 타임라인을 보여주며, 이 메시지는 Amazon SQS 구독자가 처리합니다.


                    Amazon SNS 게시자 및 구독자의 세그먼트 타임라인

위의 예제 타임라인은 Amazon SNS 메시지 흐름에 대한 세부 정보를 제공합니다:

  • SNS 세그먼트는 클라이언트의 Publish API 직접 호출 왕복 시간을 나타냅니다.

  • myTopic 세그먼트는 게시 요청에 대한 Amazon SNS 응답의 지연 시간을 나타냅니다.

  • SQS 하위 세그먼트는 Amazon SNS가 Amazon SQS 대기열에 메시지를 게시하는 데 걸리는 왕복 시간을 나타냅니다.

  • myTopic 세그먼트와 SQS 하위 세그먼트 사이의 시간은 Amazon SNS 시스템에서 메시지가 머무는 시간을 나타냅니다.

예 일괄 처리된 Amazon SNS 메시지가 포함된 타임라인 예시

여러 개의 Amazon SNS 메시지가 하나의 추적 내에 일괄 처리되는 경우, 세그먼트 타임라인에는 처리된 각 메시지를 나타내는 세그먼트가 표시됩니다.


                    Amazon SNS 배치 메시지에 대한 세그먼트 타임라인