AWS Glue에서 PyPI에 연결하도록 VPC 설정 - AWS Glue

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

AWS Glue에서 PyPI에 연결하도록 VPC 설정

Python Package Index(PyPI)는 Python 프로그래밍 언어용 소프트웨어 리포지토리입니다. 이 주제에서는 pip 설치 패키지(세션 생성자가 --additional-python-modules 플래그를 사용하여 지정함) 사용을 지원하는 데 필요한 세부 정보를 다룹니다.

커넥터와 함께 AWS Glue 대화형 세션을 사용하면 커넥터에 지정된 서브넷을 통해 VPC 네트워크를 사용하게 됩니다. 따라서 특별 구성을 설정하지 않으면 AWS 서비스 및 기타 네트워크 대상을 사용할 수 없습니다.

이 문제의 해결 방법은 다음과 같습니다.

  • 세션에서 연결할 수 있는 인터넷 게이트웨이 사용.

  • 패키지 세트의 종속성에서 전이 폐쇄 특성을 포함하는 PyPI/simple 리포지토리로 S3 버킷의 설정 및 사용.

  • PyPI를 미러링하고 VPC에 연결하는 CodeArtifact 리포지토리 사용.

인터넷 게이트웨이 설정

기술적 측면은 NAT 게이트웨이 사용 사례에 자세히 설명되어 있지만 --additional-python-modules 사용에 관한 다음 요구 사항도 참고하세요. 특히, VPC의 구성에 따라 결정되는 pypi.org에 대한 액세스 권한이 --additional-python-modules에 필요합니다. 다음과 같은 요구 사항을 확인합니다.

  1. 사용자 세션의 경우 pip install을 통해 추가 python 모듈을 설치해야 합니다. 세션에서 커넥터를 사용하는 경우 구성이 영향을 받을 수 있습니다.

  2. --additional-python-modules에서 커넥터를 사용할 때 세션이 시작되면 커넥터의 PhysicalConnectionRequirements에 연결된 서브넷이 pypi.org에 도달하기 위한 네트워크 경로를 제공해야 합니다.

  3. 구성이 올바른지 확인해야 합니다.

대상 PyPI/simple 리포지토리를 호스팅하도록 Amazon S3 버킷 설정

이 예제는 Amazon S3에서 패키지 세트 및 해당 종속성에 대한 PyPI 미러를 설정합니다.

패키지 세트에 대한 PyPI 미러를 설정하려면:

# pip download all the dependencies pip download -d s3pypi --only-binary :all: plotly gglplot pip download -d s3pypi --platform manylinux_2_17_x86_64 --only-binary :all: psycopg2-binary # create and upload the pypi/simple index and wheel files to the s3 bucket s3pypi -b test-domain-name --put-root-index -v s3pypi/*

기존 아티팩트 리포지토리가 이미 있는 경우, 위와 같이 Amazon S3 버킷의 예제 URL 대신 제공할 수 있는 pip 사용을 위한 인덱스 URL이 있을 것입니다.

몇 가지 예제 패키지에서 사용자 지정 indexx-url을 사용하려면:

%%configure { "--additional-python-modules": "psycopg2_binary==2.9.5", "python-modules-installer-option": "--no-cache-dir --verbose --index-url https://test-domain-name.s3.amazonaws.com/ --trusted-host test-domain-name.s3.amazonaws.com" }

VPC에 연결된 pypi의 CodeArtifact 미러 설정

미러를 설정하려면:

  1. 커넥터에서 사용하는 서브넷과 동일한 리전에서 리포지토리를 생성합니다.

    Public upstream repositories를 선택하고 pypi-store를 선택합니다.

  2. 서브넷에 VPC에서 리포지토리로의 액세스를 제공합니다.

  3. python-modules-installer-option을 사용하여 올바른 --index-url을 지정합니다.

    %%configure { "--additional-python-modules": "psycopg2_binary==2.9.5", "python-modules-installer-option": "--no-cache-dir --verbose --index-url https://test-domain-name.s3.amazonaws.com/ --trusted-host test-domain-name.s3.amazonaws.com" }

자세한 내용은 VPC에서 CodeArtifact 사용을 참조하세요.