I think some of these intermediate variables can be pushed down into simple private methods. Something like:

```ruby
private
def auto_scaling_group_id(stack_name)
...
end

def auto_scaling_group_instances(auto_scaling_group_id)
...
end
```

Then this public method would just be something like:
```ruby
def list_stack_instances(stack)
  asg_instances = auto_scaling_group_instances(auto_scaling_group_id(stack))
  asg_instances.map { |instance| ec2.describe_instance(instance).first }
end