Because the documentation for the version 2 SDK has made this incredibly unclear, here you go.

ec2 = Aws::EC2::Client.new(region: 'us-west-2')
res = Aws::EC2::Resource.new(client: ec2)

#remove dry_run: true from the parameters to actually create an instance
inst = res.create_instances(image_id:'ami-123456', min_count:1, max_count:1, instance_type: 't1.micro', dry_run: true)

Some helpful methods on the instance returned:
inst.public_ip_address
inst.state
inst.data
To stop the instance:
ec2.stop_instances(instance_ids:[inst.id])

To start the instance after stopping:
ec2.start_instances(instance_ids:[inst.id])

To terminate the instance:
ec2.terminate_instances(instance_ids:[inst.id])
Advertisement