Boto3을 사용하여 시작 중인 인스턴스 목록을 확인하는 방법

1743 단어 AWSEC2boto3tech
EC2 실례를 틀어놓고 상관하지 않는다는 말을 자주 들었는데, 결과적으로 예상치 못한 비용이 징수되었다.
저도 제 인증 계정으로 상응하는 높은 등급의 실례를 시작하기 때문에 무서워요.
이번에는 SDK의 보토3이 가동 중인 EC2 실례 일람표를 얻는 방법을 소개하겠습니다. 그런 저를 포함해서.
한편 이 글은 시리즈의 일부가 될 것으로 예상되며 램바다와 클라우드워치 이벤트를 조합한 뒤 정기적으로 슬랙을 통해 알리는 기능을 구현할 예정이다.

차리다


EC2 읽기 권한이 있는 환경에서 Python을 실행합니다.
EC2에서 실행하든 AWS configure에서 설정한 로컬 환경에서든 가능합니다.
IAM 역할을 EC2에 첨부하는 경우 적어도 AmazonEC2 ReadOnlyAccess가 첨부되어야 합니다.
로컬이라면 pip으로 Boto3을 설치하세요.
내 환경은 pipenv를 사용하기 때문에 pipenv로 지정해서 설치합니다.
$ pipenv install boto3
$ pipenv shell

실행 중인 EC2 인스턴스 ID 확인


이번에는 보토3 실행 중인 실례 ID를 취득할 예정이니 미리 확인해 보겠습니다.
AWS 콘솔에서 실행 중인 EC2 인스턴스의 인스턴스 ID를 확인합니다.

일부는 마스크를 착용하고 있었지만'i-06e1a 7eaXXXXX'의 실례 ID가 작동 중이다.

코드


파일 이름은 무엇이든지 괜찮지만, 나는 'get running instance id.py' 처럼 파일을 만들 것이다.
다음은 설치 예입니다.
4
import boto3

client = boto3.client('ec2')
running_instances = client.describe_instances(
  Filters=[
    {
      'Name': 'instance-state-name',
      'Values': ['running']
    }
  ]
)

# 必要な情報を抜粋する処理
for reservation in running_instances['Reservations']:
  for instance in reservation['Instances']:
    # インスタンスIDを取得する
    instance_id = instance.get('InstanceId')
    print(instance_id)
그럼 상기 코드를 이동해 보세요.
4
$ python get_running_instance_id.py
i-06e1a7eaXXXXXXXXXX
방금 확인한 실례 ID를 얻을 수 있습니다.
Name 태그의 가시성을 가져오는 것이 좋지만, 향후 구현 중 장시간 지속되는 EC2가 자동으로 정지될 수 있도록 실례 ID를 얻기로 결정했습니다.

좋은 웹페이지 즐겨찾기