【AWS를 코드로 조종한다】 Python boto3로 AWS EC2 인스턴스를 제어한다

5962 단어 EC2파이썬boto3AWS

tl;dr



Mac에서 Python을 AWS를 제어하는 ​​프로그램의 시작 편입니다.
이 기사에서는 EC2 인스턴스를 AWS EC2 인스턴스 시작 → 중지합니다.

준비하는 것·환경


  • macOS Mojave 10.14.6
  • Python 3.7(ANACONDA3)
  • PyCharm 2019.2
  • boto3

  • 개발 환경의 구축은 아래의 기사를 참고해 주세요.

    【이것조차 읽으면 OK】Mac에서 Python을 사용하여 개발할 준비
    h tps:// 퀵했다. 작은 m / 루이치로 001 / MS / 35 A 232 A 430 C41 D512

    AWS



    AWS는 Amazon Web Services의 약자입니다.

    AWS는 공식 사이트가 충실하기 때문에 다음을 읽는 것이 좋습니다.

    아마존 웹 서비스(AWS)란?
    htps : // 아 ws. 아마존. 이 m/jp/아보 t-ws/

    Boto3



    AWS를 Python으로 제어하기 위한 패키지입니다.
    AWS가 공식적으로 제공합니다.

    이 기사에서는 EC2만 제어하지만 다른 AWS 서비스도 제어할 수 있습니다.

    준비하는 것



    Boto3 설치



    pip 명령으로 설치할 수 있습니다.
    
    % pip install boto3
    

    AWS API 키



    AWS를 외부 프로그램에서 제어하려면 API 키를 준비해야 합니다.

    API 키 가져오기
    htps : // 아 ws. 아마존. 이 m / jp /로

    API 키는 다음과 같습니다.
  • 액세스 키 ID (access_key_id)
  • 비밀 액세스 키 (secret_access_key)

  • 이것은 공개하지 마십시오.

    API 키가 있으면 누구나 조작을 할 수 있습니다.

    Python으로 EC2 인스턴스 시작 → 종료



    Boto3에서 사용할 수 있는 서비스는 다음과 같습니다.
    htps : // 보토 3. 아마조나 ws. 이 m/v1/도쿠멘들 온/아피/ㅁ st/레후 렌세/세 rゔ ぃ세 s/ 어서 x. HTML

    이번에는 EC2 인스턴스를 제어하므로 "ec2"를 지정합니다.

    EC2 인스턴스 시작


    
    ec2 = boto3.resource('ec2')
    
    # インスタンス作成
    AMI_ID = 'ami-0c3fd0f5d33134a76' # AMI-IDを指定
    SUBNET_ID = 'subnet-xxx'  # サブネットIDを指定(事前に作成しておく)
    
    instances = ec2.create_instances(ImageId=AMI_ID,
                                     MaxCount=1, MinCount=1,
                                     InstanceType='t2.micro',
                                     SubnetId=SUBNET_ID)
    

    ec2.create_instances로 시작할 수 있습니다.

    ec2.create_instances 에는 기재된 파라미터 이외에 다음이 필요합니다.
  • 액세스 키 ID (access_key_id)
  • 비밀 액세스 키 (secret_access_key)
  • 부팅 대상 영역

  • 하지만 API 키를 프로그램 중에 기재하는 것은 위험하므로 환경 변수로 관리하는 것이 좋습니다.

    서브넷을 지정하지 않으면 기본값이 사용되는 것 같지만 내 환경에서는 작동하지 않았습니다.
    ID를 지정하면 문제없이 시작되었습니다.

    환경 변수



    아래 환경 변수로 설정하면 자동으로 boto3을 읽어줍니다.
    - 액세스 키 ID(access_key_id) → AWS_ACCESS_KEY_ID
    - 비밀 액세스 키 (secret_access_key) → AWS_SECRET_ACCESS_KEY
    - 시작할 리전 → AWS_DEFAULT_REGION

    PyCharm을 사용하면 실행할 때 환경 변수를 지정할 수 있으므로 편리합니다.



    AMI-ID



    AMI는 Amazon Machine Image의 약자로, EC2 인스턴스는 AMI를 기반으로 생성합니다.
    AMI에는 고유 ID가 있으며 AWS 콘솔에서 가져올 수 있습니다.



    인스턴스 종료


    
    # インスタンスを終了する
    tm = instance.terminate()
    

    instance.terminate로 종료할 수 있습니다.

    실제 프로그램



    EC2를 시작하고 종료하는 프로그램을 GitHub에 게시하고 있습니다.
    htps : // 기주 b. 코 m / 료타 k / 보토 3_ mp ぇ

    추천 파이썬 공부법



    Udemy의 동영상을 추천합니다.

    현역 실리콘 밸리 엔지니어가 가르치는 Python 3 입문 + 응용 + 미국 실리콘 밸리 흐름 코드 스타일


    참고 사이트



    Python boto3에서 AWS를 자유자재로 조종하자 ~입문편~
    htps : // 코 m/키미히로_응/있어 ms/f3세 86472152b2676004

    Pycharm의 스크립트 실행에서 환경 변수 PATH 지정
    htp // y0m0r. 는 bぉ. jp/엔트리/20131207/1386416022

    좋은 웹페이지 즐겨찾기