Boto3で特定のタグが付与されたインスタンスを停止する

  • 0
    いいね
  • 2
    コメント

    以前作成した特定のインスタンスをBoto3でstop処理をパワーアップさせてみました。

    前提として
    EC2にenvタグを付与しておき値はdevとして設定したインスタンスを仕込んでおきます。

    Filtersの処理が上手く出来なかったですが、なんとか出来ました。
    記念にブログアップ。次はLambdaと連携してみる。

    # -*- coding: utf-8 -*-
    
    # import
    import boto3
    from boto3.session import Session
    
    ec2 = boto3.client('ec2')
    dev_list = []
    
    # def
    def get_list():
      instance_list = ec2.describe_instances(
        Filters=[{'Name': 'tag:env', 'Values': ['dev']}]
      )
      for Reservations in instance_list['Reservations']:
        for dev_instances in Reservations['Instances']:
          dev_list.append(dev_instances["InstanceId"])
          return dev_list
    
    def ec2_stop(dev_list):
      for instance_id in dev_list:
        response = ec2.stop_instances(
          InstanceIds=[
            instance_id
          ]
        )
    
    # Main
    if __name__ == "__main__":
      get_list()
      ec2_stop(dev_list)
    

    https://github.com/handa3/study/blob/master/aws/ec2/dev_stop.py