目的
特定のEC2インスタンスが含まれているALBのターゲットグループ一覧を確認したいが、ターゲットグループの数が多く目視で確認するのが大変。
AWS CLIを使ってEC2インスタンスIDからターゲットグループ名の一覧を取得するスクリプトを作成したので備忘録として残しておく。
実行環境
AWS CLI
Windows PowerShell
スクリプト
# 変数をセット
$REGION = "REGION"
$INSTANCE_ID = "INSTANCE_ID"
$FILEPATH = "FILE PATH"
# 全てのターゲットグループを取得
$targetGroups = aws elbv2 describe-target-groups --region $REGION | ConvertFrom-Json
$targetGroupNames = @()
foreach($tg in $targetGroups.TargetGroups){
# ターゲットグループのヘルスチェック情報から紐づいているEC2インスタンスを取得
$targetHealthDescs = aws elbv2 describe-target-health --target-group-arn $tg.TargetGroupArn --region $REGION | ConvertFrom-Json
# 指定したEC2インスタンスIDが含まれているものをフィルタリング
if ($null -ne ($targetHealthDescs.TargetHealthDescriptions | Where-Object {$_.Target.Id -eq $INSTANCE_ID})){
$targetGroupNames += $tg.TargetGroupName
}
}
# 結果をファイルに出力
$targetGroupNames | Out-File -FilePath $FILEPATH
※ChatGPTにベースを作成してもらいました。
実行方法
スクリプト内のREGION, INSTANCE_ID, FILEPATHに適切な値を入力したうえでスクリプトを実行。
実行結果はFILEPATHに指定したファイルに出力される。