Amazon Linux 2에서 Boto 3 라이브러리를 사용해 Python 3 가상 환경을 만들려면 어떻게 해야 하나요?

3분 분량
0

Amazon Linux 2에서 실행되는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 사용 중입니다. 인스턴스에 Boto 3 라이브러리를 사용해 격리된 Python 3 가상 환경을 만들고 싶습니다.

해결 방법

Amazon Linux 2용 Python 3 설치

  1. SSH를 사용해 EC2 Linux 인스턴스에 연결합니다. 자세한 내용은 SSH를 사용해 Linux 또는 macOS에서 Linux 인스턴스에 연결을 참고하세요.

  2. yum check-update를 실행해 패키지 인덱스를 새로 고칩니다. check-update에서 다른 사용할 수 있는 업데이트도 찾습니다. Python 3 환경을 생성할 때는 다른 패키지를 업데이트할 필요가 없습니다.

  3. 호스트에 이미 Python 3이 설치되어 있는지 확인하려면 list installed:>를 실행하세요.

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

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

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

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

    [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
  4. Python 3이 설치되어 있지 않은 경우 yum 패키지 관리자를 사용해 패키지를 설치하세요.

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

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

다음 명령을 사용하면 가상 환경이 포함된 앱 디렉터리를 만듭니다. my_app을 다른 이름으로 변경할 수 있습니다. my_app을 다른 이름으로 변경하는 경우 나머지 해결 단계에서 변경한 이름으로 참조하세요.

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

가상 환경 활성화 및 Boto 3 설치

  1. Boto 3가 AWS API와 상호 작용할 수 있도록 권한 정책을 사용해 EC2 인스턴스에 AWS Identity and Access Management(IAM) 역할을 연결합니다. 다른 인증 방법은 Boto 3 설명서를 참고하세요.

  2. 환경을 활성화하려면 프로젝트 디렉터리에 있는 bin 디렉터리에서 activate 파일을 소싱합니다.

    [ec2-user ~]$ source ~/my_app/env/bin/activate(env) [ec2-user ~]$
  3. 환경에 최신 pip 모듈이 설치되어 있는지 확인하세요.

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

    (env) [ec2-user ~]$ pip install boto3
  5. Python 실행:

    (env) [ec2-user ~]$ pythonPython 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. Boto 3 라이브러리를 가져와 제대로 작동하는지 확인합니다. 이 단계를 실행하려면 1단계로 돌아가 권한 정책을 구성해야 합니다. 다음 예제 출력에는 해당 계정 내 Amazon Simple Storage Service(S3) 버킷 전체 목록이 나와있습니다.

    >>> import boto3           # no error>>> s3 = boto3.resource('s3')
    >>> for bucket in s3.buckets.all():
    print(bucket.name)
    >>> exit()
  7. 가상 환경을 종료하려면 deactivate 명령을 실행합니다.

    (env) [ec2-user ~]$ deactivate
    [ec2-user ~]$
  8. 로그인할 때 가상 환경을 자동으로 활성화하려면 ~/.bashrc 파일에 가상 환경을 추가합니다.

    [ec2-user ~]$ echo "source ${HOME}/my_app/env/bin/activate" >> ${HOME}/.bashrc
  9. 홈 디렉터리에서 ~/.bashrc 파일을 소싱해 환경의 bash 환경을 다시 로드하세요. 그러면 가상 환경이 자동으로 활성화됩니다. 프롬프트가 변경 사항(env)을 반영합니다. 이 변경 사항은 향후 모든 SSH 세션에도 적용됩니다.

    [ec2-user ~]$ source ~/.bashrc
    (env) [ec2-user ~]$

관련 정보

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

인스턴스 시작 마법사를 사용해 인스턴스 시작

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

AWS 공식
AWS 공식업데이트됨 8달 전