Elastic Beanstalk를 위한 Python 개발 환경 설정 - AWS Elastic Beanstalk

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

Elastic Beanstalk를 위한 Python 개발 환경 설정

이 주제에서는 AWS Elastic Beanstalk로 배포하기 전 로컬 컴퓨터에서 애플리케이션을 테스트하기 위해 Python 개발 환경을 설정하는 지침을 제공합니다. 또한 유용한 도구에 대한 설치 지침을 제공하는 웹 사이트도 알려 줍니다.

모든 언어에 적용되는 일반적인 설정 단계와 도구는 Elastic Beanstalk에서 사용할 수 있도록 개발 머신 구성을 참조하십시오.

이 설명서의 절차를 수행하기 위해서는 실행 명령줄을 입력할 쉘 또는 터미널이 필요합니다. 명령은 프롬프트 기호($)와 해당하는 경우 현재 디렉터리 이름 뒤에 리스트로 표시됩니다.

~/eb-project$ this is a command this is output

Linux 및 macOS의 경우 선호하는 쉘과 패키지 관리자를 사용할 수 있습니다. Windows의 경우 Linux용 Windows Subsystem을 설치하여 Ubuntu 및 Bash의 Windows 통합 버전을 가져옵니다.

모든 언어에 적용되는 일반적인 설정 단계와 도구는 Elastic Beanstalk에서 사용할 수 있도록 개발 머신 구성을 참조하십시오.

사전 조건

다음 목록에서는 Elastic Beanstalk 및 Python 애플리케이션 작업을 위한 일반적인 사전 조건을 알려 줍니다.

  • Python 언어 - 선택한 Elastic Beanstalk Python 플랫폼 버전에 포함된 Python 언어 버전을 설치합니다. 지원되는 Python 언어 버전 목록은 AWS Elastic Beanstalk 플랫폼 가이드의 지원되는 Python 플랫폼을 참조하세요. 개발 시스템에 Python이 아직 설정되어 있지 않은 경우 Python 웹 사이트의 Python 다운로드 페이지를 참조하세요.

  • pip 유틸리티 - pip 유틸리티는 Python의 패키지 설치 관리자입니다. 이 설치 관리자는 프로젝트의 종속 항목을 설치하고 나열하여 Elastic Beanstalk가 애플리케이션 환경 설정법을 알 수 있도록 합니다. pip에 대한 자세한 내용은 pip.pypa.io 웹 사이트의 pip 페이지를 참조하세요.

  • (선택 사항) Elastic Beanstalk 명령줄 인터페이스(EB CLI) - EB CLI는 필요한 배포 파일로 애플리케이션을 패키징할 수 있습니다. 또한 Elastic Beanstalk 환경을 생성하고 이 환경에 애플리케이션을 배포할 수도 있습니다. Elastic Beanstalk 콘솔을 통해 배포할 수도 있으므로 EB CLI가 반드시 필요한 것은 아닙니다.

  • 작동 중인 SSH 설치 - SSH 프로토콜을 사용하여 실행 중인 인스턴스에 연결하여 배포를 검사하거나 디버깅할 수 있습니다.

  • virtualenv 패키지 - 이 virtualenv 도구는 애플리케이션을 위한 개발 및 테스트 환경을 생성합니다. Elastic Beanstalk는 애플리케이션에서 필요하지 않은 추가 패키지를 설치하지 않고도 이 환경을 복제할 수 있습니다. 자세한 내용은 virtualenv 웹사이트를 참조하세요. Python을 설치한 후 다음 명령을 사용하여 virtualenv 패키지를 설치할 수 있습니다.

    $ pip install virtualenv

가상 환경 사용

필수 조건을 설치한 후 virtualenv으로 가상 환경을 설정하여 애플리케이션의 종속 항목을 설치합니다. 가상 환경을 사용하면 애플리케이션을 실행할 EC2 인스턴스에 설치 되어야 할 필수 패키지를 정확히 판별하여 설치할 수 있습니다.

가상 환경을 설정하려면
  1. 명령줄 창을 열고 다음을 입력합니다:

    $ virtualenv /tmp/eb_python_app

    eb_python_app을 애플리케이션에 적합한 이름으로 변경합니다(애플리케이션의 이름을 사용해도 좋습니다). virtualenv 명령은 지정된 디렉터리에 사용자 가상 환경을 생성한 후 해당 작업의 결과를 출력합니다:

    Running virtualenv with interpreter /usr/bin/python New python executable in /tmp/eb_python_app/bin/python3.7 Also creating executable in /tmp/eb_python_app/bin/python Installing setuptools, pip...done.
  2. 가상 환경이 준비되면 환경의 activate 디렉터리에 있는 bin 스크립트를 실행하여 가상 환경을 실행합니다. 예를 들어 이전 단계에서 생성한 eb_python_app 환경을 시작하려면 다음을 입력합니다:

    $ source /tmp/eb_python_app/bin/activate

    가상 환경에서는 각 명령 프롬프트의 시작 부분에서 이름을 출력(예: (eb_python_app))하여 사용자가 Python 가상 환경에 있다는 사실을 알려줍니다.

  3. 가상 환경 사용을 중단하고 설치된 모든 라이브러리를 포함하여 시스템의 기본 Python 인터프리터로 돌아가려면 deactivate 명령을 실행하세요.

    (eb_python_app) $ deactivate
참고

생성한 후에는 activate 스크립트를 다시 실행하여 언제든 가상 환경을 다시 시작할 수 있습니다.

Elastic Beanstalk에 대해 Python 프로젝트 구성

Elastic Beanstalk CLI를 사용하여 Elastic Beanstalk에 배포하도록 Python 애플리케이션을 준비할 수 있습니다.

Elastic Beanstalk에 배포하도록 Python 애플리케이션을 구성하려면
  1. 가상 환경에서 프로젝트 디렉터리 트리(python_eb_app)의 상단으로 돌아가 다음을 입력합니다.

    pip freeze >requirements.txt

    이 명령은 가상 환경에 설치된 패키지의 이름과 버전을 requirements.txt로 복사합니다. 예를 들어 PyYAML 패키지의 경우, 3.11 버전이 가상 환경에 설치되어 있으며 파일은 다음 행을 포함됩니다;

    PyYAML==3.11

    애플리케이션을 개발하고 테스트하는 데 사용하는 동일한 패키지와 버전을 통해 Elastic Beanstalk는 애플리케이션의 Python 환경을 복제할 수 있습니다.

  2. eb init 명령으로 EB CLI 리포지토리를 구성합니다. 프롬프트 메시지에 따라 리전, 플랫폼 및 기타 옵션을 선택합니다. 자세한 지침은 EB CLI를 사용하여 Elastic Beanstalk 환경 관리 단원을 참조하십시오.

기본적으로 Elastic Beanstalk는 application.py라는 파일을 찾아 애플리케이션을 시작합니다. 이 파일이 생성한 Python 프로젝트에 존재하지 않는 경우, 애플리케이션 환경을 일부 조정해야 합니다. 또한 애플리케이션의 모듈을 로드할 수 있도록 환경 변수를 설정해야 합니다. 자세한 내용은 Elastic Beanstalk Python 플랫폼 사용를 참조하십시오.