💬

[AWS]指定したリージョンの情報を表示するPython3スクリプト

2024/06/08に公開

やること

東京リージョンのCloudShellで、指定したリージョンの情報を表示するスクリプトのサンプルです。いつか作ることになりそうなので備忘録としてここに残します。

方法

別リージョンのリソースにアクセスするには以下のようにregion_nameでリージョンを指定します。以下は、大阪リージョンap-northeast-3を指定しています。

ec2_client = boto3.client('ec2', region_name='ap-northeast-3')

スクリプト

今回つくったスクリプトです。東京リージョン、大阪リージョンの他にスクリプト実行時に指定したリージョンの情報を表示します。

test.py
import boto3
import argparse

parser = argparse.ArgumentParser(description='引数の説明')
parser.add_argument('-r','--region', required=True, type=str, help='リージョン')
args = parser.parse_args()

region_info = args.region  # 引数からリージョン情報を取得

# 引数で指定されたリージョンのEC2クライアントを作成
ec2_client_any = boto3.client('ec2', region_name=region_info)

# 大阪リージョンのEC2クライアントを作成
ec2_client_osaka = boto3.client('ec2', region_name='ap-northeast-3')

# 東京リージョンのEC2クライアントを作成
ec2_client_tokyo = boto3.client('ec2', region_name='ap-northeast-1')

# サブネットの一覧を取得
response_any = ec2_client_any.describe_subnets()
response_osaka = ec2_client_osaka.describe_subnets()
response_tokyo = ec2_client_tokyo.describe_subnets()


# サブネットの情報を表示
print(f"引数で指定されたリージョン: {region_info}")
for subnet in response_any['Subnets']:
            print(f"\tSubnet ID: {subnet['SubnetId']} - Available IP Count: {subnet['AvailableIpAddressCount']}")


print(f"大阪リージョン")
for subnet in response_osaka['Subnets']:
        print(f"\tSubnet ID: {subnet['SubnetId']} - Available IP Count: {subnet['AvailableIpAddressCount']}")

print(f"東京リージョン")
for subnet in response_tokyo['Subnets']:
            print(f"\tSubnet ID: {subnet['SubnetId']} - Available IP Count: {subnet['AvailableIpAddressCount']}")

print(f"DONE")

実行例

スクリプトを東京リージョンのCloudShellで実行したときの出力結果です。期待通り、指定したリージョンのサブネットワークの情報が表示されました。

[cloudshell-user@ip-xxx-xxx-xxx-xxx ~]$ python test.py --region ap-northeast-1
引数で指定されたリージョン: ap-northeast-1
        Subnet ID: subnet-12345678 - Available IP Count: 4091
        Subnet ID: subnet-abcde123 - Available IP Count: 4091
        Subnet ID: subnet-00011122 - Available IP Count: 4091
大阪リージョン
        Subnet ID: subnet-ababababababababa - Available IP Count: 4091
        Subnet ID: subnet-cdcdcdcdcdcdcdcdc - Available IP Count: 4091
        Subnet ID: subnet-00110011001100110 - Available IP Count: 4091
東京リージョン
        Subnet ID: subnet-12345678 - Available IP Count: 4091
        Subnet ID: subnet-abcde123 - Available IP Count: 4091
        Subnet ID: subnet-00011122 - Available IP Count: 4091
DONE

Discussion