def launch_instances(image_id, options={})
@logger.info("Launching instance of image #{image_id} for #{@aws_access_key_id}, " +
"key: #{options[:key_name]}, groups: #{Array(options[:group_ids]).join(',')}")
options[:image_id] = image_id
options[:min_count] ||= 1
options[:max_count] ||= options[:min_count]
params = prepare_instance_launch_params(options)
link = generate_request("RunInstances", params)
instances = request_info(link, QEc2DescribeInstancesParser.new(:logger => @logger))
get_desc_instances(instances)
rescue Exception
on_exception
end