

# 사용자 지정 모델 배포
<a name="deploying-custom-model"></a>

사용자 지정 모델은 Amazon Bedrock 콘솔, AWS Command Line Interface 또는 AWS를 사용하여 배포할 수 있습니다. 배포를 추론에 활용하는 방법에 대한 자세한 내용은 [온디맨드 추론용 배포 사용](https://docs.aws.amazon.com/bedrock/latest/userguide/use-custom-model-on-demand.html)을 참조하세요.

**Topics**
+ [사용자 지정 모델 배포(콘솔)](#deploy-custom-model-console)
+ [사용자 지정 모델 배포(AWS Command Line Interface)](#deploy-custom-model-cli)
+ [사용자 지정 모델 배포(AWS SDK)](#deploy-custom-model-sdk)

## 사용자 지정 모델 배포(콘솔)
<a name="deploy-custom-model-console"></a>

사용자 지정 모델은 **사용자 지정 모델** 페이지에서 다음과 같이 배포할 수 있습니다. 동일한 필드를 사용하여 **온디맨드 사용자 지정 모델** 페이지에서도 모델을 배포할 수 있습니다. 이 페이지를 찾으려면 탐색 창에서 **추론 및 평가** 아래의 **온디맨드 사용자 지정 모델**을 선택합니다.

**사용자 지정 모델 배포 방법**

1. [Amazon Bedrock 권한이 있는 IAM 역할](https://docs.aws.amazon.com//bedrock/latest/userguide/getting-started.html)을 사용하여 AWS Management Console에 로그인하고 [https://console.aws.amazon.com/nova/](https://console.aws.amazon.com/nova/)에서 Amazon Bedrock 콘솔을 엽니다.

1. 왼쪽 탐색 창의 **파운데이션 모델**에서 **사용자 지정 모델**을 선택합니다.

1. **모델** 탭에서 배포할 모델의 라디오 버튼을 선택합니다.

1. **추론 설정**과 **온디맨드 배포**를 차례로 선택합니다.

1. **배포 세부 정보**에서 다음 정보를 입력합니다.
   + **배포 이름**(필수) – 배포의 고유 이름을 입력합니다.
   + **설명**(선택 사항) – 배포에 대한 설명을 입력합니다.
   + **태그**(선택 사항) - 비용 할당 및 리소스 관리를 위해 태그를 추가합니다.

1. **생성(Create)**을 선택합니다. 배포 상태가 `Completed`가 되면, 사용자 지정 모델을 온디맨드 추론에 사용할 준비가 완료된 것입니다. 사용자 지정 모델 사용 방법에 대한 자세한 내용은 [온디맨드 추론용 배포 사용](https://docs.aws.amazon.com/bedrock/latest/userguide/use-custom-model-on-demand.html)을 참조하세요.

## 사용자 지정 모델 배포(AWS Command Line Interface)
<a name="deploy-custom-model-cli"></a>

AWS Command Line Interface를 사용하여 사용자 지정 모델을 온디맨드 추론용으로 배포하려면, 사용자 지정 모델의 Amazon 리소스 이름(ARN)을 사용하여 `create-custom-model-deployment` 명령어를 실행합니다. 이 명령은 [CreateCustomModelDeployment](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateCustomModelDeployment.html) API 작업을 사용합니다. 실행 결과로 반환되는 배포의 ARN을 추론 요청 시 `modelId`로 사용할 수 있습니다. 배포를 추론에 활용하는 방법에 대한 자세한 내용은 [온디맨드 추론용 배포 사용](https://docs.aws.amazon.com/bedrock/latest/userguide/use-custom-model-on-demand.html)을 참조하세요.

```
aws bedrock create-custom-model-deployment \
--model-deployment-name "Unique name" \
--model-arn "Custom Model ARN" \
--description "Deployment description" \
--tags '[
    {
        "key": "Environment",
        "value": "Production"
    },
    {
        "key": "Team",
        "value": "ML-Engineering"
    },
    {
        "key": "Project",
        "value": "CustomerSupport"
    }
]' \
--client-request-token "unique-deployment-token" \
--region region
```

## 사용자 지정 모델 배포(AWS SDK)
<a name="deploy-custom-model-sdk"></a>

온디맨드 추론을 위해 사용자 지정 모델을 배포하려면, 사용자 지정 모델의 Amazon 리소스 이름(ARN)과 함께 [CreateCustomModelDeployment](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateCustomModelDeployment.html) API 작업을 사용합니다. 실행 결과로 반환되는 배포의 ARN을 추론 요청 시 `modelId`로 사용할 수 있습니다. 배포를 추론에 활용하는 방법에 대한 자세한 내용은 [온디맨드 추론용 배포 사용](https://docs.aws.amazon.com/bedrock/latest/userguide/use-custom-model-on-demand.html)을 참조하세요.

다음 코드는 Python용 SDK(Boto3)를 사용하여 사용자 지정 모델을 배포하는 방법을 보여줍니다.

```
def create_custom_model_deployment(bedrock_client):
    """Create a custom model deployment
    Args:
        bedrock_client: A boto3 Bedrock client for making API calls
 
    Returns:
        str: The ARN of the created custom model deployment
 
    Raises:
        Exception: If there is an error creating the deployment
    """
 
    try:
        response = bedrock_client.create_custom_model_deployment(
            modelDeploymentName="Unique deployment name",
            modelArn="Custom Model ARN",
            description="Deployment description",
            tags=[
                {'key': 'Environment', 'value': 'Production'},
                {'key': 'Team', 'value': 'ML-Engineering'},
                {'key': 'Project', 'value': 'CustomerSupport'}
            ],
            clientRequestToken=f"deployment-{uuid.uuid4()}"
        )
 
        deployment_arn = response['customModelDeploymentArn']
        print(f"Deployment created: {deployment_arn}")
        return deployment_arn
 
    except Exception as e:
        print(f"Error creating deployment: {str(e)}")
        raise
```