# File lib/deltacloud/drivers/ec2/ec2_driver.rb, line 173
  def create_instance(credentials, image_id, opts)
    ec2 = new_client( credentials )
    realm_id = opts[:realm_id]
    safely do
      image = image(credentials, :id => image_id )
      hwp = find_hardware_profile(credentials, opts[:hwp_id], image.id)
      ec2_instances = ec2.run_instances(
        :image_id => image.id,
        :user_data => opts[:user_data],
        :key_name => opts[:keyname],
        :availability_zone => realm_id,
        :monitoring_enabled => true,
        :instance_type => hwp.name,
        :disable_api_termination => false,
        :instance_initiated_shutdown_behavior => 'terminate',
        :security_group => opts[:security_group]
      )
      new_instance = convert_instance( ec2_instances.instancesSet.item.first, 'pending' )
      if opts[:load_balancer_id] and opts[:load_balancer_id]!=""
        elb = new_client(credentials, :elb)
        elb.register_instances_with_load_balancer({
          :instances => [new_instance.id],
          :load_balancer_name => opts[:load_balancer_id]
        })
      end
      return new_instance
    end
  end