

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

# SageMaker Edge Manager 배포 API로 모델 패키지 직접 배포하기
<a name="edge-deployment-plan-api"></a>

SageMaker Edge Manager는 AWS IoT Greengrass없이 디바이스 대상에 모델 배포 시 사용할 수 있는 배포 API를 제공합니다. 펌웨어 업데이트 또는 애플리케이션 배포 메커니즘 모델을 독립적으로 업데이트하고자 하는 경우에 유용합니다. 모델 정확성 검증 후 API를 사용하여 엣지 배포를 CI/CD 워크플로에 통합하여 모델을 자동 배포할 수 있습니다. 또한 API에는 편리한 롤백 및 단계적 롤아웃 옵션이 있어 본격 롤아웃 전 특정 환경에서 모델이 잘 작동하는지 확인할 수 있습니다.

Edge Manager 배포 API를 사용하려면 먼저 모델을 컴파일하고 패키징해야 합니다. 모델 컴파일 및 패키징 방법은 [배포를 위한 모델 준비](edge-getting-started-step2.md)에서 확인하세요. 이 가이드의 다음 섹션에서는 모델을 컴파일하고 패키징한 후 SageMaker API로 엣지 배포를 생성하는 방법을 알아보겠습니다.

**Topics**
+ [엣지 배포 계획 생성하기](#create-edge-deployment-plan)
+ [엣지 배포 시작하기](#start-edge-deployment-stage)
+ [배포 작업 상태 확인하기](#describe-edge-deployment-status)

## 엣지 배포 계획 생성하기
<a name="create-edge-deployment-plan"></a>

[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEdgeDeploymentPlan.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEdgeDeploymentPlan.html) API로 엣지 배포 계획을 생성할 수 있습니다. 배포 계획에는 여러 스테이지가 있을 수 있습니다. 각 스테이지를 구성하여 엣지 디바이스 서브셋 배포를 롤아웃할 수 있습니다(비율 기준 또는 디바이스 이름 기준). 또한 각 스테이지에서 롤아웃 실패 처리 방법을 구성할 수 있습니다.

다음 코드 조각에서 1스테이지로 구성된 엣지 배포 계획을 생성하여 컴파일 및 패키지 모델을 2개의 특정 엣지 디바이스에 배포하는 방법을 알아봅시다.

```
import boto3

client = boto3.client("sagemaker")

client.create_edge_deployment_plan(
    EdgeDeploymentPlanName="edge-deployment-plan-name",
    DeviceFleetName="device-fleet-name",
    ModelConfigs=[
        {
            "EdgePackagingJobName": "edge-packaging-job-name",
            "ModelHandle": "model-handle"
        }
    ],
    Stages=[
        {
            "StageName": "stage-name",
            "DeviceSelectionConfig": {
                "DeviceSubsetType": "SELECTION",
                "DeviceNames": ["device-name-1", "device-name-2"]
            },
            "DeploymentConfig": {
                "FailureHandlingPolicy": "ROLLBACK_ON_FAILURE"
            }
        }
    ]
)
```

특정 디바이스 대신 플릿 내 디바이스의 일정 비율을 기준으로 모델을 배포하려면 위 예제에서 `DeviceSubsetType` 값을 `"PERCENTAGE"`(으)로 설정하고 `"DeviceNames": ["device-name-1", "device-name-2"]`을(를) `"Percentage": desired-percentage`(으)로 바꿉니다.

테스트 롤아웃 성공 검증 후 새 스테이지 롤아웃을 시작하고자 하는 경우, [CreateEdgeDeploymentStage](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEdgeDeploymentStage.html) API로 배포 계획 생성 후 스테이지를 추가할 수 있습니다. 배포 스테이지에 대한 자세한 정보는 [DeploymentStage](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeploymentStage.html)에서 확인하세요.

## 엣지 배포 시작하기
<a name="start-edge-deployment-stage"></a>

배포 계획과 배포 스테이지 생성 후 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StartEdgeDeploymentStage.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StartEdgeDeploymentStage.html) API로 배포를 시작할 수 있습니다.

```
client.start_edge_deployment_stage(
    EdgeDeploymentPlanName="edge-deployment-plan-name",
    StageName="stage-name"
)
```

## 배포 작업 상태 확인하기
<a name="describe-edge-deployment-status"></a>

[DescribeEdgeDeploymentPlan](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEdgeDeploymentPlan.html) API로 엣지 배포 상태를 확인할 수 있습니다.

```
client.describe_edge_deployment_plan(
    EdgeDeploymentPlanName="edge-deployment-plan-name"
)
```