

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

# 스트리밍 레이블링 작업 생성
<a name="sms-streaming-create-job"></a>

스트리밍 레이블 지정 작업을 사용하면 영구 실행 중인 스트리밍 레이블 지정 작업에 개별 데이터 객체를 실시간으로 전송할 수 있습니다. 스트리밍 레이블 지정 작업을 생성하려면 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html) 요청 시 `InputConfig` 파라미터에 Amazon SNS *입력 주제* ARN`SnsTopicArn`, 을 지정할 수 있습니다. 선택적으로 Amazon SNS *출력 주제*를 생성하고 레이블 데이터를 실시간으로 수신하려는 경우 `OutputConfig`에 이를 지정할 수도 있습니다.

**중요**  
Ground Truth 스트리밍 레이블 지정 작업을 처음 사용하는 경우 스트리밍 레이블 지정 작업을 생성하기 전에 [Ground Truth 스트리밍 레이블 지정 작업](sms-streaming-labeling-job.md) 섹션을 검토하는 것이 좋습니다. Ground Truth 스트리밍 레이블 지정 작업은 SageMaker API를 통해서만 지원됩니다.

다음 섹션을 사용하여 스트리밍 레이블 지정 작업을 생성하는 데 사용할 수 있는 리소스를 생성합니다.
+ [데이터 레이블 지정에 Amazon SNS 주제 사용](sms-create-sns-input-topic.md)의 단계에 따라 Ground Truth 스트리밍 레이블 지정 작업에 필요한 권한을 사용하여 SNS 주제를 생성하는 방법을 알아보세요. SNS 주제는 레이블 지정 작업과 동일한 AWS 리전에서 생성해야 합니다.
+ 레이블 지정 작업이 완료될 때마다 지정된 엔드포인트에서 레이블 지정 작업 출력 데이터를 수신하도록 엔드포인트를 설정하는 방법을 알아보려면 [엔드포인트가 Amazon SNS 출력 주제를 구독하게 등록](sms-create-sns-input-topic.md#sms-streaming-subscribe-output-topic) 섹션을 참조하세요.
+ Amazon SNS 입력 주제에 알림을 보내도록 Amazon S3 버킷을 구성하는 방법을 알아보려면 [레이블링 작업에 정의된 Amazon SNS를 기반으로 Amazon S3 기반 버킷 이벤트 알림 생성](sms-streaming-s3-setup.md) 섹션을 참조하세요.
+ 레이블 지정 작업이 시작되자마자 레이블을 지정하려는 데이터 객체를 입력 매니페스트에 추가할 수도 있습니다. 자세한 내용은 [매니페스트 파일 생성(선택 사항)](sms-streaming-manifest.md) 섹션을 참조하세요.
+ 레이블 지정 작업을 생성하는 데 필요한 다른 리소스(예: IAM 역할, Amazon S3 버킷, 작업자 태스크 템플릿, 레이블 카테고리)가 있습니다. 이러한 내용은 레이블 지정 작업 생성에 대한 Ground Truth 설명서에 설명되어 있습니다. 자세한 내용은 [레이블 지정 작업 생성](sms-create-labeling-job.md) 섹션을 참조하세요.
**중요**  
레이블 지정 작업을 생성할 때는 IAM 실행 역할을 제공해야 합니다. AWS 관리형 정책 **AmazonSageMakerGroundTruthExecution**을이 역할에 연결하여 레이블 지정 작업을 실행하는 데 필요한 권한이 있는지 확인합니다.

스트리밍 레이블 지정 작업 생성 요청을 제출하면 레이블 지정 작업의 상태는 `Initializing`이 됩니다. 레이블 지정 작업이 활성화되면 상태가 `InProgress`로 변경됩니다. 레이블 지정 작업에 새 데이터 객체를 보내거나 해당 `Initializing` 상태에 있는 동안 레이블 지정 작업을 중단하려고 시도하지 마세요. 상태가 `InProgress`로 변경되면 Amazon SNS 및 Amazon S3 구성을 사용하여 새 데이터 객체를 보내기 시작할 수 있습니다.

**Topics**
+ [데이터 레이블 지정에 Amazon SNS 주제 사용](sms-create-sns-input-topic.md)
+ [레이블링 작업에 정의된 Amazon SNS를 기반으로 Amazon S3 기반 버킷 이벤트 알림 생성](sms-streaming-s3-setup.md)
+ [매니페스트 파일 생성(선택 사항)](sms-streaming-manifest.md)
+ [예: SageMaker API를 사용하여 스트리밍 레이블 지정 작업 생성](sms-streaming-create-labeling-job-api.md)
+ [스트리밍 레이블 지정 작업 중지](sms-streaming-stop-labeling-job.md)

# 데이터 레이블 지정에 Amazon SNS 주제 사용
<a name="sms-create-sns-input-topic"></a>

스트리밍 레이블 지정 작업을 생성하려면 Amazon SNS 입력을 생성해야 합니다. 선택 사항으로 Amazon SNS 출력 주제를 제공할 수도 있습니다.

스트리밍 레이블 지정 작업에 사용할 Amazon SNS 주제를 생성할 경우 Amazon 리소스 이름(ARN)이라는 주제를 기록해 둡니다. ARN은 레이블 지정 작업을 생성할 때 `InputConfig`와 `OutputConfig`에서 `SnsTopicArn` 파라미터의 입력 값이 됩니다.

## 입력 주제 생성
<a name="sms-streaming-input-topic"></a>

입력 주제는 Ground Truth에 새 데이터 객체를 보내는 데 사용됩니다. 입력 주제를 생성하려면 Amazon Simple Notification Service 개발자 안내서의 [Amazon SNS 주제 생성](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html)을 참조하세요.

입력 주제 ARN을 메모해 두고 `InputConfig`에서 `CreateLabelingJob` 파라미터 `SnsTopicArn`의 입력으로 사용하세요.

## 출력 주제 생성
<a name="sms-streaming-output-topic"></a>

출력 주제를 제공하면 데이터 객체에 레이블이 지정될 때 알림 전송에 사용됩니다. 주제를 생성할 때 암호화 키를 추가할 수 있습니다. 이 옵션을 사용하여 주제에 AWS Key Management Service 고객 관리형 키를 추가하여 레이블 지정 작업이 출력 주제에 게시되기 전에 해당 작업의 출력 데이터를 암호화합니다.

출력 주제를 생성하려면 Amazon Simple Notification Service 개발자 안내서의 [Amazon SNS 주제 생성](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html)을 참조하세요.

암호화를 추가하는 경우 주제에 추가 권한을 부여해야 합니다. 자세한 정보는 [출력 주제에 암호화 추가(선택 사항)](#sms-streaming-encryption) 섹션을 참조하세요.

**중요**  
콘솔에서 주제를 생성할 때 출력 주제에 고객 관리형 키를 추가하려면 **(기본값) alias/aws/sns** 옵션을 사용하지 마세요. 생성한 고객 관리형 키를 선택합니다.

입력 주제 ARN을 메모해 두고 `OutputConfig`에서 `CreateLabelingJob` 파라미터 `SnsTopicArn`에 사용하세요.

### 출력 주제에 암호화 추가(선택 사항)
<a name="sms-streaming-encryption"></a>

출력 주제에 게시된 메시지를 암호화하려면 주제에 AWS KMS 고객 관리형 키를 제공해야 합니다. 다음 정책을 수정하고 고객 관리형 키에 추가하여 출력 주제에 게시하기 전에 Ground Truth에 출력 데이터를 암호화할 수 있는 권한을 부여하세요.

주제를 생성할 때 사용하는 계정의 ID로 *`<account_id>`*를 바꾸세요. AWS 계정 ID를 찾는 방법을 알아보려면 [AWS 계정 ID 찾기를 참조하세요](https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html#FindingYourAWSId).

------
#### [ JSON ]

****  

```
{
    "Id": "key-console-policy",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Enable IAM User Permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "Allow access for Key Administrators",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/Admin"
            },
            "Action": [
                "kms:Create*",
                "kms:Describe*",
                "kms:Enable*",
                "kms:List*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Get*",
                "kms:Delete*",
                "kms:TagResource",
                "kms:UntagResource",
                "kms:ScheduleKeyDeletion",
                "kms:CancelKeyDeletion"
            ],
            "Resource": "*"
        }
    ]
}
```

------

또한 레이블 지정 작업을 생성하는 데 사용하는 실행 역할(`RoleArn`에 대한 입력 값)에 다음 정책을 수정하여 추가해야 합니다.

주제를 생성할 때 사용하는 계정의 ID로 *`<account_id>`*를 바꾸세요. 레이블 지정 작업을 생성하는 데 사용 중인 AWS 리전으로 *`<region>`*을 바꾸세요. 고객 관리형 키로 `<key_id>`를 바꾸세요.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "sid1",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/your_key_id"
        }
    ]
}
```

------

키 생성 및 보안에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 [키 생성](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) 및 [키 정책 사용을](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) 참조하세요.

## 엔드포인트가 Amazon SNS 출력 주제를 구독하게 등록
<a name="sms-streaming-subscribe-output-topic"></a>

작업자가 Ground Truth 스트리밍 레이블 지정 작업에서 레이블 지정 작업을 완료하면 Ground Truth는 출력 주제를 사용하여 사용자가 지정하는 하나 이상의 엔드포인트에 출력 데이터를 게시합니다. 작업자가 레이블 지정 작업을 완료했을 때 알림을 받으려면 Amazon SNS 출력 주제를 엔드포인트로 구독해야 합니다.

출력 주제에 엔드포인트를 추가하는 방법을 알아보려면 *Amazon Simple Notification Service 개발자 안내서*에서 [AmazonSNS 주제 구독](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html)을 참조하세요.

이러한 엔드포인트에 게시되는 출력 데이터 형식에 대한 자세한 내용은 [작업 출력 데이터 레이블 지정](sms-data-output.md) 섹션을 참조하세요.

**중요**  
Amazon SNS 출력 주제에 엔드포인트를 구독 등록하지 않으면 새 데이터 객체에 레이블이 지정될 때 알림을 받지 않습니다.

# 레이블링 작업에 정의된 Amazon SNS를 기반으로 Amazon S3 기반 버킷 이벤트 알림 생성
<a name="sms-streaming-s3-setup"></a>

Amazon S3 버킷, 이벤트 알림에 대한 변경 사항은 Amazon S3 콘솔, API, 언어별 AWS SDKs 또는에서 활성화됩니다 AWS Command Line Interface. 이벤트에서는 `CreateLabelingJob` 요청의 일부로 `InputConfig` 파라미터에 지정된 Amazon SNS 입력 주제 ARN(`SnsTopicArn`)과 동일한 ARN을 사용해야 합니다.

**Amazon S3 버킷 알림 및 입력 데이터는 동일한 Amazon S3 버킷이 아니어야 합니다.**  
이벤트 알림을 생성할 때 `OutputConfig` 파라미터에서 `S3OutputPath`로 지정한 것과 동일한 Amazon S3 위치를 사용하지 마세요. 두 버킷을 연결하면 Ground Truth에서 원치 않는 데이터 객체를 레이블링 대상으로 처리할 수 있습니다.

Amazon SNS 주제로 전송할 이벤트 유형을 결정합니다. Ground Truth는 [객체 생성 이벤트](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/enable-event-notifications.html#enable-event-notifications-types)를 전송할 때 레이블 지정 작업을 생성합니다.

Amazon SNS 입력 주제로 전송되는 이벤트 구조는 [이벤트 메시지 구조](https://docs.aws.amazon.com/AmazonS3/latest/dev/notification-content-structure.html)에 있는 것과 동일한 구조를 사용하여 형식이 지정된 JSON 메시지여야 합니다.

Amazon S3 콘솔, .NET용 AWS SDK 및 Java용 AWS SDK를 사용하여 Amazon S3 버킷에 대한 이벤트 알림을 설정하는 방법의 예를 보려면 *Amazon Simple Storage Service 사용 설명서*의 연습, [연습: 알림용 버킷 구성(SNS 주제 또는 SQS 대기열)](https://docs.aws.amazon.com/AmazonS3/latest/dev/ways-to-add-notification-config-to-bucket.html)을 따르세요.

Amazon EventBridge 알림은 기본적으로 지원되지 않습니다. EventBridge 기반 알림을 사용하려면 [이벤트 메시지 구조](https://docs.aws.amazon.com/AmazonS3/latest/dev/notification-content-structure.html)에 사용된 JSON 형식과 일치하도록 출력 형식을 업데이트해야 합니다.

# 매니페스트 파일 생성(선택 사항)
<a name="sms-streaming-manifest"></a>

스트리밍 레이블 지정 작업을 생성할 때 `CreateLabelingJob`의 `ManifestS3Uri`에서 지정한 입력 매니페스트 파일에 객체(예: 이미지 또는 텍스트)를 추가할 수 있는 일회성 옵션이 있습니다. 스트리밍 레이블 지정 작업이 시작되면 이러한 객체는 작업자에게 전송되거나 총 객체 수가 `MaxConcurrentTaskCount`를 초과하는 경우 Amazon SQS 대기열에 추가됩니다. 작업자가 레이블 지정 작업을 완료함에 따라 정기적으로 레이블 지정 작업을 생성할 때 지정한 Amazon S3 경로에 결과가 추가됩니다. 출력 데이터는 출력 주제를 구독하는 모든 엔드포인트로 전송됩니다.

레이블을 지정할 초기 객체를 제공하려면 이러한 객체를 식별하는 매니페스트 파일을 생성하여 Amazon S3에 배치하세요. 이 매니페스트 파일의 S3 URI를 `InputConfig`내에서 `ManifestS3Uri`에 지정하세요.

매니페스트 파일의 형식을 지정하는 방법을 알아보려면 [입력 데이터](sms-data-input.md) 섹션을 참조하세요. SageMaker AI 콘솔을 사용하여 매니페스트 파일을 자동으로 생성하려면(3D 포인트 클라우드 태스크 유형에는 지원되지 않음), [레이블 지정 작업을 위한 데이터 설정 자동화](sms-console-create-manifest-file.md) 섹션을 참조하세요.

# 예: SageMaker API를 사용하여 스트리밍 레이블 지정 작업 생성
<a name="sms-streaming-create-labeling-job-api"></a>

다음은 미국 동부(버지니아 북부) 리전의 기본 제공 태스크 유형에 대한 스트리밍 레이블 지정 작업을 시작하는 데 사용할 수 있는 [AWS Python SDK(Boto3) 요청](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_labeling_job)의 예입니다. 각 매개변수에 대한 자세한 내용은 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html)을 참조하세요. 이 API 및 관련 언어별 SDK를 사용하여 레이블 지정 작업을 생성하는 방법을 알아보려면 [레이블 지정 작업 생성(API)](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-create-labeling-job-api.html)을 참조하세요.

이 예에는 다음 파라미터가 포함되어 있습니다.
+ `SnsDataSource`- 이 파라미터는 `InputConfig` 및 `OutputConfig`에 나타나며, 입력 및 출력의 Amazon SNS 주제를 각각 식별하는 데 사용됩니다. 스트리밍 레이블 지정 작업을 생성하려면 Amazon SNS 입력 주제를 제공해야 합니다. 선택 사항으로 Amazon SNS 출력 주제를 제공할 수도 있습니다.
+ `S3DataSource` – 이 파라미터는 선택 항목입니다. 레이블 지정 작업이 시작되는 즉시 레이블을 지정하려는 데이터 객체의 입력 매니페스트 파일을 포함하려면 이 파라미터를 사용하세요.
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html#sagemaker-CreateLabelingJob-request-StoppingConditions](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html#sagemaker-CreateLabelingJob-request-StoppingConditions) – 스트리밍 레이블 지정 작업을 생성할 때는 이 파라미터가 무시됩니다. 스트리밍 레이블 지정 작업 중지에 대한 자세한 내용은 [스트리밍 레이블 지정 작업 중지](sms-streaming-stop-labeling-job.md) 섹션을 참조하세요.
+ 스트리밍 레이블 지정 작업은 자동 데이터 레이블 지정을 지원하지 않습니다. `LabelingJobAlgorithmsConfig` 파라미터를 포함하지 않습니다.

```
response = client.create_labeling_job(
    LabelingJobName= 'example-labeling-job',
    LabelAttributeName='label',
    InputConfig={
        'DataSource': {
            'S3DataSource': {
                'ManifestS3Uri': 's3://bucket/path/manifest-with-input-data.json'
            },
            'SnsDataSource': {
                'SnsTopicArn': 'arn:aws:sns:us-east-1:123456789012:your-sns-input-topic'
            }
        },
        'DataAttributes': {
            'ContentClassifiers': [
                'FreeOfPersonallyIdentifiableInformation'|'FreeOfAdultContent',
            ]
        }
    },
    OutputConfig={
        'S3OutputPath': 's3://bucket/path/file-to-store-output-data',
        'KmsKeyId': 'string',
        'SnsTopicArn': 'arn:aws:sns:us-east-1:123456789012:your-sns-output-topic'
    },
    RoleArn='arn:aws:iam::*:role/*',
    LabelCategoryConfigS3Uri='s3://bucket/path/label-categories.json',
    HumanTaskConfig={
        'WorkteamArn': 'arn:aws:sagemaker:us-east-1:*:workteam/private-crowd/*',
        'UiConfig': {
            'UiTemplateS3Uri': 's3://bucket/path/custom-worker-task-template.html'
        },
        'PreHumanTaskLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:PRE-tasktype',
        'TaskKeywords': [
            'Example key word',
        ],
        'TaskTitle': 'Multi-label image classification task',
        'TaskDescription': 'Select all labels that apply to the images shown',
        'NumberOfHumanWorkersPerDataObject': 123,
        'TaskTimeLimitInSeconds': 123,
        'TaskAvailabilityLifetimeInSeconds': 123,
        'MaxConcurrentTaskCount': 123,
        'AnnotationConsolidationConfig': {
            'AnnotationConsolidationLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:ACS-tasktype'
            }
        },
    Tags=[
        {
            'Key': 'string',
            'Value': 'string'
        },
    ]
)
```

# 스트리밍 레이블 지정 작업 중지
<a name="sms-streaming-stop-labeling-job"></a>

[StopLabelingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopLabelingJob.html) 작업을 사용하여 스트리밍 레이블 지정 작업을 수동으로 중지할 수 있습니다.

레이블 지정 작업이 10일 이상 유휴 상태로 유지되면 Ground Truth가 자동으로 작업을 중단합니다. 이러한 맥락에서 Amazon SNS 입력 주제로 전송된 객체가 없고 Amazon SQS 대기열에 레이블 지정 대기 중인 객체가 없는 경우 레이블 지정 작업은 *유휴* 상태로 간주됩니다. 예를 들어 Amazon SNS 입력 주제에 데이터 객체를 제공하지 않고 레이블 지정 작업에 제공된 모든 객체가 이미 레이블이 지정된 경우 Ground Truth는 타이머를 시작합니다. 타이머가 시작된 후 10일 동안 항목이 수신되지 않으면 레이블 지정 작업이 중지됩니다.

레이블 지정 작업이 중지되면 해당 상태는 `STOPPING`이며, Ground Truth는 레이블 지정 작업 리소스를 정리하고 Amazon SQS 대기열에서 Amazon SNS 주제를 구독 취소합니다. Ground Truth는 Amazon SQS를 삭제하지 *않습니다*. 이 대기열에는 처리되지 않은 데이터 객체가 포함되어 있을 수 있기 때문입니다. Amazon SQS에서 추가 요금이 발생하지 않도록 하려면 대기열을 수동으로 삭제해야 합니다. 자세한 내용은 [Amazon SQS 요금](https://aws.amazon.com/sqs/pricing/)을 참조하세요.