Method: AWS::EC2::Image#run_instance
- Defined in:
- lib/aws/ec2/image.rb
#run_instance(options = {}) ⇒ Instance or Array
Runs a single instance of this image.
Parameters:
- options (Hash) (defaults to: {})
Options Hash (options):
-
:count
(Integer)
—
How many instances to request. By default one instance is requested. You can specify this either as an integer or as a Range, to indicate the minimum and maximum number of instances to run. Note that for a new account you can request at most 20 instances at once.
-
:iam_instance_profile
(String)
—
The name or ARN of an IAM instance profile. This provides credentials to the EC2 instance(s) via the instance metadata service.
-
:block_device_mappings
(Hash)
—
This must be a hash; the keys are device names to map, and the value for each entry determines how that device is mapped. Valid values include:
-
A string, which is interpreted as a virtual device name.
-
The symbol :no_device, which overrides the default mapping for a device so that it is not mapped to anything.
-
A hash with any of the following options. One of
:snapshot
,:snapshot_id
or:volume_size
is required.- :snapshot
-
A snapshot to use when creating the block device.
- :snapshot_id
-
The ID of a snapshot to use when creating the block device.
- :volume_size
-
The size of volume to create, in gigabytes.
- :delete_on_termination
-
Setting this to true causes EC2 to delete the volume when the instance is terminated.
-
-
:monitoring_enabled
(Boolean)
—
Setting this to
true
enables CloudWatch monitoring on the instances once they are started. -
:availability_zone
(String)
—
Specifies the availability zone where the instance should run. Without this option, EC2 will choose an availability zone for you.
-
:image_id
(String)
—
ID of the AMI you want to launch.
-
:key_name
(String)
—
The name of the key pair to use. Note: Launching public images without a key pair ID will leave them inaccessible.
-
:key_pair
(KeyPair)
—
A KeyPair that should be used when launching an instance.
-
:security_groups
(Array)
—
Security groups are used to determine network access rules for the instances.
:security_groups
can be a single value or an array of values. Values should be group name strings or SecurityGroup objects. -
:security_group_ids
(Array<String>)
—
Security groups are used to determine network access rules for the instances.
:security_group_ids
accepts a single ID or an array of security group IDs. -
:user_data
(String)
—
Arbitrary user data. You do not need to encode this value.
-
:instance_type
(String)
—
The type of instance to launch, for example “m1.small”.
-
:kernel_id
(String)
—
The ID of the kernel with which to launch the instance.
-
:ramdisk_id
(String)
—
The ID of the RAM disk to select. Some kernels require additional drivers at launch. Check the kernel requirements for information on whether you need to specify a RAM disk. To find kernel requirements, refer to the Resource Center and search for the kernel ID.
-
:disable_api_termination
(Boolean)
—
Specifies whether you can terminate the instance using the EC2 API. A value of true means you can’t terminate the instance using the API (i.e., the instance is “locked”); a value of false means you can. If you set this to true, and you later want to terminate the instance, you must first enable API termination. For example:
i = ec2.instances.create(:image_id => "ami-8c1fece5", :disable_api_termination => true) i.api_termination_disabled? # => true i.terminate # raises an exception i.api_termination_disabled = false i.terminate # terminates the instance
-
:instance_initiated_shutdown_behavior
(String)
—
Determines whether the instance stops or terminates on instance-initiated shutdown.
-
:subnet
(Subnet, String)
— default:
nil
—
The VPC Subnet (or subnet id string) to launch the instance in.
-
:private_ip_address
(String)
— default:
nil
—
If you’re using VPC, you can optionally use this option to assign the instance a specific available IP address from the subnet (e.g., ‘10.0.0.25’). This option is not valid for instances launched outside a VPC (i.e. those launched without the :subnet option).
-
:dedicated_tenancy
(Boolean)
— default:
false
—
Instances with dedicated tenancy will not share physical hardware with instances outside their VPC. NOTE: Dedicated tenancy incurs an additional service charge. This option is not valid for instances launched outside a VPC (e.g. those launched without the :subnet option).
Returns:
-
(Instance or Array)
—
If a single instance is being created, this returns an AWS::EC2::Instance to represent the newly created instance. Otherwise it returns an array of instance objects.
181 182 183 184 |
# File 'lib/aws/ec2/image.rb', line 181 def run_instance options = {} instances = InstanceCollection.new(:config => config) instances.create(options.merge(:image => self)) end |