내용으로 건너뛰기

AL2 또는 AL2023에서 Boto 3 라이브러리를 사용해 Python 3 가상 환경을 만들려면 어떻게 해야 합니까?

3분 분량
0

Amazon Linux 2(AL2) 또는 Amazon Linux 2023(AL2023)에서 실행되는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스가 있습니다. 인스턴스에 AWS SDK for Python(Boto3)을 사용해 격리된 Python 3 가상 환경을 만들고 싶습니다.

해결 방법

Python 3 설치

다음 단계를 완료하십시오.

  1. SSH를 사용해 EC2 Linux 인스턴스에 연결합니다.

  2. 패키지 인덱스를 새로 고치려면 다음 명령을 실행합니다.

    yum check-update

    참고: 위의 명령은 사용 가능한 업데이트도 찾습니다. Python 3 환경을 생성할 때는 다른 패키지를 업데이트할 필요가 없습니다.

  3. 호스트에 이미 Python 3이 설치되어 있는지 확인하려면 다음 명령을 실행합니다.

    [ec2-user ~]$ yum list installed | grep -i python3

    Python 3이 설치되어 있지 않으면 다음과 같은 결과가 출력됩니다.

    [ec2-user ~]$ yum list installed | grep -i python3
    [ec2-user ~]$ python3
    -bash: python3: command not found

    Python 3이 설치된 경우 배포를 기반으로 다음과 같은 결과가 출력됩니다.
    AL2:

    [ec2-user ~]$ yum list installed | grep -i python3
    python3.x86_64                        3.7.4-1.amzn2.0.4              @amzn2-core
    python3-libs.x86_64                   3.7.4-1.amzn2.0.4              @amzn2-core
    python3-pip.noarch                    9.0.3-1.amzn2.0.1              @amzn2-core
    python3-setuptools.noarch             38.4.0-3.amzn2.0.6             @amzn2-core
    
    [ec2-user ~]$ whereis python3
    python3: //usr/bin/python3 /usr/bin/python3.7 /usr/bin/python3.7m /usr/lib/python3.7 /usr/lib64/python3.7 /usr/include/python3.7m /usr/share/man/man1/python3.1.gz

    AL2023:

    [ec2-user ~]$ yum list installed | grep -i python3
    python3.x86_64                         3.9.21-1.amzn2023.0.3              @System
    python3-pip-wheel.noarch               21.3.1-2.amzn2023.0.11             @System
    python3-libs.x86_64                    3.9.21-1.amzn2023.0.3              @System
    python3-setuptools.noarch              59.6.0-2.amzn2023.0.5              @System
    
    [ec2-user ~]$ whereis python3
    python3: /usr/bin/python3 /usr/share/man/man1/python3.1.gz
    
  4. Python 3이 설치되어 있지 않은 경우 다음 명령을 실행하여 yum 패키지 관리자로 패키지를 설치합니다.

    [ec2-user ~]$ sudo yum install python3 -y

ec2-user 홈 디렉터리에 가상 환경 생성

가상 환경이 포함된 앱 디렉터리를 생성하려면 다음 명령을 실행합니다.

[ec2-user ~]$ python3 -m venv my_app/env

참고: my_app을 애플리케이션 디렉터리 이름으로 대체하십시오.

가상 환경을 활성화하고 Boto3 라이브러리 설치

다음 단계를 완료하십시오.

  1. AWS Identity and Access Management(AWS IAM) 역할을 인스턴스에 연결합니다. 역할에는 SDK for Python(Boto3)이 구성에 필요한 작업을 수행할 수 있도록 허용하는 권한 정책이 있어야 합니다. 다른 인증 방법은 Boto3 웹 사이트의 ](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html)Configuration[을 참조하십시오.

  2. 환경을 활성화하려면 다음 명령을 실행합니다.

    [ec2-user ~]$ source ~/my_app/env/bin/activate
    (env) [ec2-user ~]$

    참고: my_app을 애플리케이션 디렉터리 이름으로 대체하십시오.

  3. 환경에 최신 pip 모듈이 설치되어 있는지 확인하려면 다음 명령을 실행합니다.

    (env) [ec2-user ~]$ pip install pip --upgrade
  4. 가상 환경에 Boto3 라이브러리를 설치하려면 다음 명령을 실행합니다.

    (env) [ec2-user ~]$ pip install boto3
  5. Python을 실행하려면 다음 명령을 실행합니다.

    (env) [ec2-user ~]$ python
    Python 3.7.4 (default, Dec 13 2019, 01:02:18)[GCC 7.3.1 20180712 (Red Hat 7.3.1-6)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>>>
  6. Boto3 라이브러리를 가져와서 제대로 작동하는지 확인하려면 다음 명령을 실행합니다.

    >>> import boto3                          # no error    

    다음 예제 출력에는 AWS 계정 내 Amazon Simple Storage Service(S3) 버킷의 전체 목록이 나와 있습니다.

    >>> import boto3                          # no error
    >>> s3 = boto3.resource('s3')
    >>> for bucket in s3.buckets.all():
    ...     print(bucket.name)
    ...                                       # Press Enter twice to execute the loop
    >>> exit()                                # Then type exit() to quit Python shell
  7. 가상 환경을 종료하려면 다음 명령을 실행합니다.

    (env) [ec2-user ~]$ deactivate
    [ec2-user ~]$
  8. 로그인할 때 가상 환경을 자동으로 활성화하려면 다음 명령을 실행하여 ~/.bashrc 파일을 업데이트합니다.

    [ec2-user ~]$ echo "source ${HOME}/my_app/env/bin/activate" >> ${HOME}/.bashrc

    참고: my_app을 애플리케이션 디렉터리 이름으로 대체하십시오. 위의 명령은 가상 환경을 자동으로 활성화합니다.

  9. 환경의 bash 환경을 다시 로드하려면 다음 명령을 실행합니다.

    [ec2-user ~]$ source ~/.bashrc

    출력 예시:

    (env) [ec2-user ~]$

    참고: **(env)**는 가상 환경을 올바르게 활성화했음을 보여줍니다. 이제 향후 모든 SSH 세션에서 그리고 source ~/bashrc 명령을 실행할 때 기본적으로 Python 환경을 사용할 수 있습니다.

관련 정보

AL2 인스턴스에서 인스턴스 소프트웨어 업데이트

콘솔에서 인스턴스 시작 마법사를 사용하여 EC2 인스턴스 시작

Python Packaging Authority(PYPA) 웹 사이트의 Virtualenv

AWS 공식업데이트됨 7달 전