

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

# 런타임 종속성을 위한 프라이빗 리포지토리
<a name="train-remote-decorator-private"></a>

사전 실행 명령 또는 스크립트를 사용하여 작업 환경에서 pip 또는 conda와 같은 종속성 관리자를 구성할 수 있습니다. 네트워크를 격리하려면 이 두 옵션 중 하나를 사용하여 종속성 관리자를 리디렉션하여 프라이빗 리포지토리에 액세스하고 VPC 내에서 원격 기능을 실행합니다. 사전 실행 명령 또는 스크립트는 원격 함수가 실행되기 전에 실행됩니다. @remote 데코레이터, `RemoteExecutor` API를 사용하여 또는 구성 파일 내에서 정의할 수 있습니다.

다음 섹션에서는 로 관리되는 프라이빗 Python 패키지 인덱스(PyPI) 리포지토리에 액세스하는 방법을 보여줍니다 AWS CodeArtifact. 이 섹션에서는 Amazon Simple Storage Service(S3)에서 호스팅되는 사용자 지정 conda 채널에 액세스하는 방법도 보여줍니다.

## AWS CodeArtifact로 관리되는 사용자 지정 PyPI 리포지토리를 사용하는 방법
<a name="train-remote-decorator-private-pypi"></a>

CodeArtifact를 사용하여 사용자 지정 PyPI 리포지토리를 관리하려면 다음과 같은 사전 조건이 필요합니다.
+ 프라이빗 PyPI 리포지토리가 이미 생성되어 있어야 합니다. AWS CodeArtifact 를 사용하여 프라이빗 패키지 리포지토리를 생성하고 관리할 수 있습니다. CodeArtifact에 대한 자세한 내용은 [CodeArtifact 사용 설명서](https://docs.aws.amazon.com/codeartifact/latest/ug/welcome.html)를 참조하세요.
+ VPC는 CodeArtifact 리포지토리에 액세스할 수 있어야 합니다. VPC에서 CodeArtifact 리포지토리 연결을 허용하려면 다음을 수행해야 합니다.
  + [CodeArtifact의 VPC 엔드포인트를 생성합니다](https://docs.aws.amazon.com/codeartifact/latest/ug/create-vpc-endpoints.html).
  + VPC용 [Amazon S3 게이트웨이 엔드포인트를 생성](https://docs.aws.amazon.com/codeartifact/latest/ug/create-s3-gateway-endpoint.html)하여 CodeArtifact가 패키지 자산을 저장할 수 있도록 합니다.

다음 사전 실행 명령 예시는 CodeArtifact 리포지토리를 가리키도록 SageMaker AI 훈련 작업에서 pip를 구성하는 방법을 보여줍니다. 자세한 내용은 [CodeArtifact를 통한 pip 구성 및 사용](https://docs.aws.amazon.com/codeartifact/latest/ug/python-configure-pip.html)을 참조하세요.

```
# use a requirements.txt file to import dependencies
@remote(
    instance_type="ml.m5.large"
    image_uri = "my_base_python:latest", 
    dependencies = './requirements.txt',
    pre_execution_commands=[
        "aws codeartifact login --tool pip --domain my-org --domain-owner <000000000000> --repository my-codeartifact-python-repo --endpoint-url https://vpce-xxxxx.api.codeartifact.us-east-1.vpce.amazonaws.com"
    ]
)
def matrix_multiply(a, b):
    return np.matmul(a, b)
```

## Amazon S3에 호스팅된 사용자 지정 conda 채널을 사용하는 방법
<a name="train-remote-decorator-private-conda"></a>

Amazon S3를 사용하여 사용자 지정 conda 리포지토리를 관리하려면 다음과 같은 사전 조건이 필요합니다.
+ 프라이빗 conda 채널이 Amazon S3 버킷에 이미 설정되어 있어야 하고 모든 종속 패키지를 인덱싱하여 Amazon S3 버킷에 업로드해야 합니다. conda 패키지 인덱싱 방법에 대한 지침은 [사용자 지정 채널 생성](https://conda.io/projects/conda/en/latest/user-guide/tasks/create-custom-channels.html)을 참조하세요.
+ VPC는 Amazon S3 버킷에 대한 액세스 권한이 있어야 합니다. 자세한 내용은 [Amazon S3용 엔드포인트](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html)를 참조하세요.
+ 작업 이미지의 기본 conda 환경에 `boto3`이 설치되어 있어야 합니다. 환경을 확인하려면 Anaconda 프롬프트에 다음을 입력하여 생성된 결과 목록에 `boto3`이 나타나는지 확인합니다.

  ```
  conda list -n base
  ```
+ 작업 이미지는 [mamba](https://mamba.readthedocs.io/en/latest/installation.html)가 아닌 conda를 사용하여 설치해야 합니다. 환경을 점검하려면 이전 코드 프롬프트가 `mamba`를 반환하지 않는지 확인합니다.

다음 사전 실행 명령 예제는 Amazon S3의 프라이빗 채널을 가리키도록 SageMaker 훈련 작업에서 conda를 구성하는 방법을 보여줍니다. 사전 실행 명령은 기본 채널을 제거하고 `.condarc` conda 구성 파일에 사용자 지정 채널을 추가합니다.

```
# specify your dependencies inside a conda yaml file
@remote(
    instance_type="ml.m5.large"
    image_uri = "my_base_python:latest", 
    dependencies = "./environment.yml",
    pre_execution_commands=[
        "conda config --remove channels 'defaults'"
        "conda config --add channels 's3://my_bucket/my-conda-repository/conda-forge/'",
        "conda config --add channels 's3://my_bucket/my-conda-repository/main/'"
    ]
)
def matrix_multiply(a, b):
    return np.matmul(a, b)
```