$ aws ec2 describe-instances { "Reservations": [ { "Groups": [], "Instances": [ { "AmiLaunchIndex": 0, "ImageId": "ami-xxxxxxxxxx", "InstanceId": "i-xxxxxxxxxxxxxx", "InstanceType": "t2.large", "KeyName": "hogehoge.pem", "LaunchTime": "2022-04-11T07:08:47+00:00", "Monitoring": { "State": "disabled" }, // EC2情報の取得 ec2Input := &ec2.DescribeInstancesInput{} ec2Output, err := client.DescribeInstances(context.TODO(), ec2Input) ec2InfoMap := map[string]*Ec2Info{} for _, reservation := range ec2Output.Reservations { // インスタンスごとの情報取得 if reservation.Instances != nil { for _, ec2 := range reservation.Instances { ec2InfoMap[*ec2.InstanceId] = &Ec2Info{} ・CLIだとJSONで返却されてくるような値が、 SDKだとオブジェクトとして返却 ・リストやオブジェクトで階層構造になってるので、ループ処理で欲しい値を掘り出してくる ・取得した情報を元に、 if文で設定内容をチェックして OK/NGを返す