ALBはターゲットグループを割り当てる形になるので、指定したターゲットグループに紐づくインスタンスを取得すればIP取れました。
require 'aws-sdk'
alb = Aws::ElasticLoadBalancingV2::Client.new(
region: 'ap-northeast-1',
access_key_id: 'xxx',
secret_access_key: 'xxx'
)
ec2 = Aws::EC2::Client.new(
region: 'ap-northeast-1',
access_key_id: 'xxx',
secret_access_key: 'xxx'
)
instance_healths = alb.describe_target_health({ target_group_arn: 'xxx' })
instance_ids = instance_healths.target_health_descriptions.map {|t| t.target.id }
ec2_instances = ec2.describe_instances({ instance_ids: instance_ids })
instance_ips = ec2_instances.reservations.map { |e| p e.instances[0].public_ip_address }