

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

# Amazon SNS에서의 활성 추적
<a name="sns-active-tracing"></a>

Amazon SNS 주제를 통해 Amazon [Data Firehose](sns-firehose-as-subscriber.md), , Amazon [AWS Lambda](https://docs.aws.amazon.com/xray/latest/devguide/xray-services-lambda.html) [Amazon SQS](https://docs.aws.amazon.com/xray/latest/devguide/xray-services-sqs.html) 및 HTTP/S 엔드포인트 구독으로 전달되는 사용자 요청을 추적하고 분석 AWS X-Ray 하는 데 사용합니다.

X-Ray를 사용하면 각 요청을 종합적으로 볼 수 있으므로 다음을 수행할 수 있습니다.
+ Amazon SNS 주제를 직접 호출하는 항목과 구독의 다운스트림에 있는 서비스를 식별합니다.
+ 다음과 같은 지연 시간을 분석합니다.
  + 처리 전 Amazon SNS 주제에 소요된 시간.
  + 구독한 각 엔드포인트의 전송 시간.

**중요**  
구독이 많은 Amazon SNS 주제는 크기 한도에 도달하여 추적이 완전하지 않을 수 있습니다. 추적 문서 크기 제한에 대한 자세한 내용은 AWS 일반 참조의 [X-ray 서비스 할당량을 참조하세요](https://docs.aws.amazon.com/general/latest/gr/xray.html#limits_xray).

이미 추적 중인 서비스에서 Amazon SNS API를 호출하는 경우, API에서 X-Ray 추적이 활성화되어 있지 않더라도 Amazon SNS가 트레이스를 패스스루합니다.

Amazon SNS는 표준 및 FIFO 주제에 대해 X-Ray 추적을 지원합니다. [Amazon SNS 콘솔](https://console.aws.amazon.com/sns/v3/home), [Amazon SNS `SetTopicAttributes` API](https://docs.aws.amazon.com/sns/latest/api/API_SetTopicAttributes.html), [Amazon Simple Notification Service CLI 참조](https://docs.aws.amazon.com/cli/latest/reference/sns/) 또는 [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-topic.html)을 사용하여 Amazon SNS 주제에 대해 X-Ray를 활성화할 수 있습니다.

Amazon SNS를 X-Ray와 함께 사용하는 방법에 대한 자세한 내용은 AWS X-Ray 개발자 가이드의 [Amazon SNS 및  AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-services-sns.html)를 참조하세요.

## 활성 추적 권한
<a name="sns-active-tracing-permissions"></a>

Amazon SNS 콘솔을 사용할 때 Amazon SNS는 Amazon SNS 주제가 X-Ray를 호출하는 데 필요한 권한을 생성하려고 시도합니다. Amazon SNS 콘솔을 사용할 충분한 권한이 없는 경우 시도가 거부될 수 있습니다. 자세한 내용은 [Amazon SNS의 Identity and Access Management](security-iam.md) 및 [Amazon SNS 액세스 제어의 예제 사례](sns-access-policy-use-cases.md) 섹션을 참조하세요.

CLI를 사용할 때는 권한을 수동으로 구성해야 합니다. 이러한 권한은 리소스 정책을 사용하여 구성됩니다. X-Ray에서 필요한 권한을 사용하는 방법에 대한 자세한 내용은 [Amazon SNS 및  AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-services-sns.html)를 참조하세요.

## AWS 콘솔을 사용하여 Amazon SNS 주제에서 활성 추적 활성화
<a name="sns-active-tracing-enable"></a>

Amazon SNS 주제에서 활성 추적을 활성화하면 트레이스 ID를 읽고, 트레이스 ID를 기반으로 고객에게 데이터를 전송하고, 다운스트림 서비스에 트레이스 ID를 전파합니다.

1. [Amazon SNS 콘솔](https://console.aws.amazon.com/sns/home)에 로그인합니다.

1. 주제를 선택하거나 새로운 주제를 생성합니다. 주제 생성에 대한 자세한 내용은 [Amazon SNS 주제 생성](sns-create-topic.md)을 참조하세요.

1. **주제 생성** 페이지의 **세부 정보** 섹션에서 **FIFO** 또는 **표준**을 선택합니다.

   1. 주제의 **이름**을 입력합니다.

   1. (선택 사항) 주제의 **표시 이름**을 입력합니다.

1. **Active tracing**(활성 추적)을 확장하고 **Use active tracing**(액티브 트레이싱 사용)을 선택합니다.

Amazon SNS 주제에 X-Ray를 활성화한 후에는 [-Ray service map](https://docs.aws.amazon.com/xray/latest/devguide/xray-services-sns.html)(X-Ray 서비스 맵)을 사용하여 주제에 대한 엔드 투 엔드 트레이스 및 서비스 맵을 볼 수 있습니다.

## AWS SDK를 사용하여 Amazon SNS 주제에서 활성 추적 활성화
<a name="sns-enable-active-tracing-sdk"></a>

다음 코드 예제에서는 Java용 AWS SDK를 사용하여 Amazon SNS 주제에서 활성 추적을 활성화하는 방법을 보여줍니다.

```
public static void enableActiveTracing(SnsClient snsClient, String topicArn) {

        try {

            SetTopicAttributesRequest request = SetTopicAttributesRequest.builder()
                .attributeName("TracingConfig")
                .attributeValue("Active")
                .topicArn(topicArn)
                .build();

            SetTopicAttributesResponse result = snsClient.setTopicAttributes(request);
            System.out.println("\n\nStatus was " + result.sdkHttpResponse().statusCode() + "\n\nTopic " + request.topicArn()
                + " updated " + request.attributeName() + " to " + request.attributeValue());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
        }
    }
```

## AWS CLI를 사용하여 Amazon SNS 주제에서 활성 추적 활성화
<a name="sns-enable-active-tracing-cli"></a>

다음 코드 예제에서는 AWS CLI를 사용하여 Amazon SNS 주제에서 활성 추적을 활성화하는 방법을 보여줍니다.

```
aws sns set-topic-attributes \
    --topic-arn arn:aws:sns:us-west-2:123456789012:MyTopic \
    --attribute-name TracingConfig \
    --attribute-value Active
```

## 를 사용하여 Amazon SNS 주제에 대한 활성 추적 활성화 CloudFormation
<a name="sns-enable-active-tracing-cf"></a>

다음 CloudFormation 스택은 Amazon SNS 주제에서 활성 추적을 활성화하는 방법을 보여줍니다.

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  MyTopicResource:
    Type: 'AWS::SNS::Topic'
    Properties:
      TopicName: 'MyTopic'
      TracingConfig: 'Active'
```

## 주제에 활성 추적이 활성화되었는지 확인
<a name="sns-active-tracing-verify"></a>

Amazon SNS 콘솔을 사용하여 주제에 활성 추적이 활성화되어 있는지 확인하거나 리소스 정책을 추가하지 못했을 때 확인할 수 있습니다.

1. [Amazon SNS 콘솔](https://console.aws.amazon.com/sns/home)에 로그인합니다.

1. 왼쪽 탐색 창에서 **주제**를 선택합니다.

1. **Topics**(주제) 페이지에서 주제를 선택합니다.

1. **통합(Integrations)** 탭을 선택합니다.

   활성 추적이 활성화되면 녹색 **Active**(활성) 아이콘이 표시됩니다.

1. 활성 추적을 활성화했는데 리소스 정책이 추가된 것이 보이지 않는 경우 **Create policy**(정책 생성)를 선택하여 필요한 추가 권한을 추가하세요.

![\[AWS Management Console에 'SampleTopic'이라는 Amazon SNS 주제의 세부 정보를 보여주는 스크린샷입니다. 이 주제에 대해 AWS X-Ray 활성 추적이 활성화되어 있지만 Amazon SNS가 추적 데이터를 전송하도록 허용하는 리소스 정책이 누락되었음을 나타냅니다. 이 문제를 해결하기 위해 '정책 생성' 버튼이 제공됩니다.\]](http://docs.aws.amazon.com/ko_kr/sns/latest/dg/images/xray.png)


## 활성 추적 테스트
<a name="sns-active-tracing-test"></a>

1. [Amazon SNS 콘솔](https://console.aws.amazon.com/sns/home)에 로그인합니다.

1. Amazon SNS 주제를 생성합니다. 이 작업을 수행하는 자세한 방법은 [를 사용하여 주제를 생성하려면 AWS Management Console](sns-create-topic.md#create-topic-aws-console) 섹션을 참조하세요.

1. **Active tracing**(활성 추적)을 확장하고 **Use active tracing**(액티브 트레이싱 사용)을 선택합니다.

1. Amazon SNS 주제에 메시지를 게시합니다. 이 작업을 수행하는 자세한 방법은 [를 사용하여 Amazon SNS 주제에 메시지를 게시하려면 AWS Management Console](sns-publishing.md#sns-publishing-messages) 섹션을 참조하세요.

1. [X-Ray service map](https://docs.aws.amazon.com/xray/latest/devguide/xray-services-sns.html)(X-Ray 서비스 맵)을 사용하면 해당 주제에 대한 전체 트레이스 및 서비스 맵을 볼 수 있습니다.

![\[클라이언트에서 ""라는 Amazon SNS 주제로 흐르는 요청을 추적하는 AWS X-Ray 서비스 맵을 표시합니다xray-topic. 여기에서 메시지는 Amazon SQS 대기열, Lambda 함수, Kinesis Firehose 및 원격 서비스를 포함한 다양한 다운스트림 서비스에 배포됩니다. 연결마다 밀리초 지연 시간(ms) 및 분당 트랜잭션 속도(t/min) 등의 지표가 표시되므로 성능을 분석하고 메시지 전송 프로세스의 지연 시간 문제를 식별할 수 있습니다.\]](http://docs.aws.amazon.com/ko_kr/sns/latest/dg/images/xray-troubleshooting.png)
