💬
[AWS]指定したリージョンの情報を表示するPython3スクリプト
やること
東京リージョンの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