# File lib/deltacloud/drivers/ec2/ec2_driver.rb, line 212
        def create_instance(credentials, image_id, opts={})
          ec2 = new_client(credentials)
          instance_options = {}
          instance_options.merge!(:user_data => opts[:user_data]) if opts[:user_data]
          instance_options.merge!(:key_name => opts[:keyname]) if opts[:keyname]
          instance_options.merge!(:availability_zone => opts[:realm_id]) if opts[:realm_id]
          instance_options.merge!(:instance_type => opts[:hwp_id]) if opts[:hwp_id] && opts[:hwp_id].length > 0
          firewalls = opts.inject([]){|res, (k,v)| res << v if k =~ /firewalls\d+$/; res}
          instance_options.merge!(:group_ids => firewalls ) unless firewalls.empty?
          instance_options.merge!(
            :min_count => opts[:instance_count],
            :max_count => opts[:instance_count]
          ) if opts[:instance_count] and opts[:instance_count].length!=0
          if opts[:snapshot_id] and opts[:device_name]
            instance_options.merge!(:block_device_mappings => [{
              :snapshot_id => opts[:snapshot_id],
              :device_name => opts[:device_name]
            }])
          end
          safely do
            new_instance = convert_instance(ec2.launch_instances(image_id, instance_options).first)
            new_instance
          end
        end