チートシート代わりの記事です。
コマンドを書いている時に「AWSリソースのIDを変数に入れてっと、、、あれ、IDを取ってくる構文なんだっけ?」があまりにも多くて、どこかにまとめたいなぁっと思ってました(汗)
「NameタグからIDを変数へ」を目的に、各種AWSリソースのコマンドをこの記事へ記載していきます。
僕がよく使うものなので、偏りや不足がありますが、対象リソースは随時追加していきます。
- この記事を読むことで出来ること。
- AWSリソースのNameタグから、IDを調べて変数に格納する。
- ※ Nameタグが無いものは対象外です。
- IDだけではなくARNやIPアドレス等も対象です。
- 対象リソースは
目次
を見てみてください。
- AWSリソースのNameタグから、IDを調べて変数に格納する。
※記事は随時更新していきます。
目次
検証環境
- 検証日: 2021/10/09
- PC環境:
- Windows10 Home バージョン 21H1
- AWS CLI:
aws-cli/2.1.34 Python/3.8.8 Windows/10 exe/AMD64 prompt/off
-- profile default
: 読み取り専用-- profile aws_RW
: 書き込み権限あり- ※ 誤操作防止のため、変更操作時のみ
-- profile
オプションを付けてます。
- ※ 誤操作防止のため、変更操作時のみ
- PowerShell: Ver7.1.4
- AWS CLI:
- Windows10 Home バージョン 21H1
注意事項
- 本記事の内容は
Windows PowerShell
で検証しています。 - AWS CLIは
バージョン2
を使用しています。- 本記事のコマンド出力で
YAML
を使用してますが、これはバージョン2からの機能です。
- 本記事のコマンド出力で
- コマンド内の変数やパラメータやは検証で使用したものを記載しています。ご自身の環境に合わせ、書き換えて使用してください。
- 個人で検証しているため実行結果に責任は持てません。必ずご自身でも検証してから使用してください。
1. EC2
1.1. ID: EC2インスタンス
# ---- PowerShell ---- ${ec2_name} = "EC2インスタンス のNameタグ" ${ec2_id} = aws ec2 describe-instances ` --filters "Name=tag:Name,Values=${ec2_name}" ` --query "Reservations[].Instances[].InstanceId" ` --output text ` ; echo ${ec2_id}
1.2. ID: EBSボリューム
# ---- PowerShell ---- ${ebs_name} = "EBSボリューム のNameタグ" ${ebs_id} = aws ec2 describe-volumes ` --filters "Name=tag:Name,Values=${ebs_name}" ` --query "Volumes[].VolumeId" ` --output text ` ; echo ${ebs_id}
1.3. ID: ENI(ネットワーク・インターフェース)
# ---- PowerShell ---- ${eni_name} = "ENI のNameタグ" ${eni_id} = aws ec2 describe-network-interfaces ` --filters "Name=tag:Name,Values=${eni_name}" ` --query "NetworkInterfaces[].NetworkInterfaceId" ` --output text ` ; echo ${eni_id}
1.4. PublicIP: Elastic IP アドレス
# ---- PowerShell ---- ${eip_name} = "test-eip01" ${eip_pub_ip} = aws ec2 describe-addresses ` --filter "Name=tag:Name,Values=${eip_name}" ` --query "Addresses[].PublicIp" ` --output text ` ; echo ${eip_pub_ip}
1.5. 割り当てID: Elastic IP アドレス
# ---- PowerShell ---- ${eip_name} = "test-eip01" ${eip_allocation} = aws ec2 describe-addresses ` --filter "Name=tag:Name,Values=${eip_name}" ` --query "Addresses[].AllocationId" ` --output text ` ; echo ${eip_allocation}
2. VPC
2.1. ID: VPC
# ---- PowerShell ---- ${vpc_name} = "VPC のNameタグ" ${vpc_id} = aws ec2 describe-vpcs ` --filters "Name=tag:Name,Values=${vpc_name}" ` --query "Vpcs[].VpcId" ` --output text ` ; echo ${vpc_id}
2.2. ID: サブネット
# ---- PowerShell ---- ${sub_name} = "サブネット のNameタグ" ${sub_id} = aws ec2 describe-subnets ` --filters "Name=tag:Name,Values=${sub_name}" ` --query "Subnets[].SubnetId" ` --output text ` ; echo ${sub_id}
2.3. ID: ルートテーブル
# ---- PowerShell ---- ${rtb_name} = "ルートテーブル のNameタグ" ${rtb_id} = aws ec2 describe-route-tables ` --filters "Name=tag:Name,Values=${rtb_name}" ` --query "RouteTables[].RouteTableId" ` --output text ` ; echo ${rtb_id}
2.4. ID: インターネットゲートウェイ
# ---- PowerShell ---- ${igw_name} = "インターネットゲートウェイ のNameタグ" ${igw_id} = aws ec2 describe-internet-gateways ` --filters "Name=tag:Name,Values=${igw_name}" ` --query "InternetGateways[].InternetGatewayId" ` --output text ` ; echo ${igw_id}
2.5. ID: セキュリティグループ
# ---- PowerShell ---- ${sgr_name} = "セキュリティグループ のNameタグ" ${sgr_id} = aws ec2 describe-security-groups ` --filters "Name=tag:Name,Values=${sgr_name}" ` --query "SecurityGroups[].GroupId" ` --output text ` ; echo ${sgr_id}
2.6. ID: ネットワークACL
# ---- PowerShell ---- ${ncl_name} = "ネットワークACL のNameタグ" ${ncl_id} = aws ec2 describe-network-acls ` --filters "Name=tag:Name,Values=${ncl_name}" ` --query "NetworkAcls[].NetworkAclId" ` --output text ` ; echo ${ncl_id}
2.7. ID: DHCPオプションセット
# ---- PowerShell ---- ${dos_name} = "test_dos" ${dos_id} = aws ec2 describe-dhcp-options ` --filters "Name=tag:Name,Values=${dos_name}" ` --query "DhcpOptions[].DhcpOptionsId" ` --output text ` ; echo ${dos_id}
2.8. ID: NATゲートウェイ
# ---- PowerShell ---- ${ngw_name} = "test-ngw01" ${ngw_id} = aws ec2 describe-nat-gateways ` --filter "Name=tag:Name,Values=${ngw_name}" ` --query "NatGateways[].NatGatewayId" ` --output text ` ; echo ${ngw_id} ## ※[--filter]のスペルが他と違うので注意。他のは[--filters]で「s」が付く。
※Nameタグじゃないけど、AWSアカウント
# ---- PowerShell ---- # AWSアカウントIDを変数に入れる ${aws_account_id} = aws sts get-caller-identity ` --query "Account" ` --output text ` ; echo ${aws_account_id}