필수 요구 파일을 통한 종속 파일 지정 - AWS Elastic Beanstalk

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

필수 요구 파일을 통한 종속 파일 지정

일반적으로 Python 애플리케이션은 타사 Python 패키지에 대한 종속 파일을 가지고 있습니다. Elastic Beanstalk Python 플랫폼에서는 애플리케이션에 필요한 Python 패키지를 지정하는 몇 가지 방법을 제공합니다.

piprequirements.txt 사용

Python 패키지를 설치하기 위한 표준 도구는 pip입니다. 이는 단일 필수 요구 파일에 필요한 모든 패키지(버전 포함)를 지정할 수 있는 기능을 보유하고 있습니다. 필수 요구 파일에 대한 자세한 내용은 필수 요구 파일 형식을 참조하십시오.

requirements.txt이라는 파일을 생성하고 소스 번들의 최상위 디렉터리에 배치합니다. 다음은 Django requirements.txt 파일의 예입니다.

Django==2.2 mysqlclient==2.0.3

개발 환경에서 pip freeze 명령을 통해 필수 요구 파일을 생성할 수 있습니다.

~/my-app$ pip freeze > requirements.txt

필수 요구 파일에 애플리케이션에서 실제 사용되는 패키지만 포함되었는지 여부를 확인하려면 설치된 패키지만 포함하는 가상 환경을 사용합니다. 가상 환경 외부에서 pip freeze 출력에는 운영 체제와 함께 제공되는 패키지 등 개발 장치에 설치된 모든 pip 패키지가 포함됩니다.

참고

Elastic Beanstalk는 Amazon Linux AMI Python 플랫폼 버전에서 기본적으로 Pipenv 또는 Pipfiles를 지원하지 않습니다. Pipenv를 통해 애플리케이션 종속 파일을 관리하는 경우 다음 명령을 사용하여 requirements.txt 파일을 생성합니다.

~/my-app$ pipenv lock -r > requirements.txt

자세한 내용은 Pipenv 설명서의 requirements.txt 생성을 참조하십시오.

Pipenv 및 Pipfile 사용

Pipenv는 최신 Python 패키징 도구입니다. 이 도구는 종속 파일의 생성 및 관리에, 애플리케이션 virtualenv에 패키지 설치를 결합합니다. 자세한 내용은 Pipenv: 인간 Python 개발 워크플로(Python Dev Workflow for Humans)를 참조하십시오.

Pipenv는 두 개의 파일을 유지 관리합니다:

  • Pipfile— 이 파일에는 다양한 유형의 종속 파일 및 필수 요구가 포함되어 있습니다.

  • Pipfile.lock— 이 파일에는 결정적 빌드를 지원하는 버전 스냅샷이 포함되어 있습니다.

해당 파일들을 개발 환경에서 생성한 후, Elastic Beanstalk에 배포하는 소스 번들에 포함시킵니다. 이 두 파일에 대한 자세한 내용은 Pipfile 및 Pipfile.lock 예제를 참조하십시오.

다음의 예제에서는 Pipenv를 통해 Django 및 Django REST 프레임워크를 설치합니다. 이 명령을 통해 PipfilePipfile.lock파일을 생성합니다.

~/my-app$ pipenv install django ~/my-app$ pipenv install djangorestframework

우선 순위

본 설명의 필수 요구 파일 중 하나 이상이 포함될 경우 Elastic Beanstalk는 해당 파일 중 하나만 사용합니다. 다음 목록은 우선 순위를 내림차순으로 보여 줍니다.

  1. requirements.txt

  2. Pipfile.lock

  3. Pipfile

참고

2023년 3월 7일 Amazon Linux 2 플랫폼 릴리스부터 이러한 파일이 두 개 이상 제공 될 경우, Elastic Beanstalk는 배포 과정에서 복수 개의 파일 중 어떤 종속 파일이 사용되었는지를 콘솔 메시지에 표시합니다.

다음 단계에서는 인스턴스를 배포할 시 Elastic Beanstalk가 종속 파일을 설치하는 로직을 설명합니다.

  • requirements.txt파일이 있으면 pip install -r requirements.txt명령을 사용합니다.

  • 2023년 3월 7일 Amazon Linux 2 플랫폼 릴리스부터 requirements.txt 파일이 없지만 Pipfile.lock파일이 있는 경우 pipenv sync명령을 사용해야 합니다. 해당 릴리스 이전에는 pipenv install --ignore-pipfile을 사용했습니다.

  • requirements.txt 파일도 Pipfile.lock 파일도 없지만 Pipfile이 있는 경우 pipenv install --skip-lock명령을 사용합니다.

  • 세 가지 필구 요구 파일을 찾을 수 없는 경우 모든 애플리케이션 종속 파일을 설치하지 않습니다.