Amazon Linux 2에서 Boto 3 라이브러리를 사용하여 Python 3 가상 환경을 생성하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 2월 7일

Amazon Linux 2를 실행하는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 또는 온프레미스 솔루션에 Boto 3 라이브러리를 사용하여 격리된 Python 3 가상 환경을 생성하려면 어떻게 해야 합니까?

간략한 설명

Amazon Linux 2를 위한 격리된 Python 환경을 생성하려면 다음을 수행해야 합니다.

1.    Amazon Linux 2용 Python 3을 설치합니다.

2.    ec2-user 홈 디렉터리 아래에 가상 환경을 설치합니다.

3.    환경을 활성화한 다음 Boto 3을 설치합니다.

해결 방법

Amazon Linux 2용 Python 3 설치

1.    SSH를 사용하여 EC2 Linux 인스턴스에 연결합니다. 자세한 내용은 SSH를 사용하여 Linux 인스턴스에 연결을 참조하십시오.

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

3.    list installed를 실행하여 Python 3이 호스트에 이미 설치되어 있는지 확인합니다.

[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와 상호 작용할 수 있도록 올바른 권한 정책을 사용하여 AWS Identity and Access Management(IAM) 역할을 EC2 인스턴스에 연결합니다. 다른 인증 방법은 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.    pip 명령을 사용하여 가상 환경 내에 Boto 3 라이브러리를 설치합니다.

(env) [ec2-user ~]$ pip install boto3

5.    python 실행 파일을 사용하여 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.    Boto 3 라이브러리를 가져온 다음 작동하는지 확인합니다. 이 단계를 수행하려면 1단계에서 구성된 권한 정책이 있어야 합니다. 다음 예제 출력은 계정 내 모든 Amazon Simple Storage Service(Amazon 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 ~]$

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?