Class: AWS::EC2::Instance
- Inherits:
-
Resource
- Object
- Resource
- AWS::EC2::Instance
- Includes:
- TaggedItem
- Defined in:
- lib/aws/ec2/instance.rb
Overview
Represents an EC2 instance.
Instance Attribute Summary collapse
-
#ami_launch_index ⇒ Integer
readonly
The AMI launch index, which can be used to find this instance within the launch group.
-
#api_termination_disabled ⇒ Boolean
True if the instance cannot be terminated using the #terminate method.
-
#architecture ⇒ Symbol
readonly
The architecture of the image.
-
#client_token ⇒ String
readonly
Idempotency token you provided when you launched the instance.
-
#dns_name ⇒ String
(also: #public_dns_name)
readonly
The DNS name of the instance on the internet.
-
#hypervisor ⇒ Symbol
readonly
The instance’s hypervisor type.
-
#id ⇒ String
readonly
Returns the instance id.
-
#image_id ⇒ String
readonly
Image ID of the AMI used to launch the instance.
-
#instance_initiated_shutdown_behavior ⇒ String
Valid values are:.
-
#instance_type ⇒ String
The instance type, e.g.
-
#ip_address ⇒ String
(also: #public_ip_address)
readonly
The IP address of the instance.
-
#kernel_id ⇒ String
The ID of the kernel that the image currently uses.
-
#key_name ⇒ String
readonly
The name of the key pair with which this instance was associated at launch.
-
#launch_time ⇒ Time
readonly
The time at which the instance was launched.
-
#monitoring ⇒ Symbol
readonly
The status of CloudWatch monitoring for the instance.
-
#owner_id ⇒ String
readonly
ID of the AWS account that owns the reservation in which the instance was launched.
-
#platform ⇒ String
readonly
A string describing the platform of the image (e.g. “windows”).
-
#private_dns_name ⇒ String
readonly
The DNS name of the instance within the EC2 network.
-
#private_ip_address ⇒ String
readonly
The private IP address assigned to the instance.
-
#ramdisk_id ⇒ String
The ID of the RAM disk that the image currently uses.
-
#requester_id ⇒ String
readonly
ID of the requester that launched the instance on your behalf (e.g., AWS Management Console, Auto Scaling).
-
#reservation_id ⇒ String
readonly
The ID of the reservation in which this instance was launched.
-
#root_device_name ⇒ String
readonly
The name of the root device.
-
#root_device_type ⇒ Symbol
readonly
The root device type used by the AMI.
-
#state_transition_reason ⇒ String
readonly
A string describing the reason for the last state transition.
-
#user_data ⇒ String
Arbitrary metadata that is available to the instance while it is running.
-
#virtualization_type ⇒ Symbol
readonly
The instance’s virtualization type.
Instance Method Summary collapse
-
#associate_elastic_ip(elastic_ip) ⇒ nil
(also: #ip_address=)
Associates the elastic IP address with this instance.
-
#availability_zone ⇒ String
The availability zone where the instance is running.
-
#block_device_mappings ⇒ Hash
A hash in which each key is the name of a device that is mapped to an EBS volume.
-
#create_image(name, options = {}) ⇒ Image
Creates an AMI from this instance.
-
#disassociate_elastic_ip ⇒ Object
Disassociates an attached elastic IP address from this instance.
-
#elastic_ip ⇒ ElasticIp?
Returns an elastic IP address if one is associated with this instance, nil otherwise.
-
#exists? ⇒ Boolean
True if the instance exists according to EC2.
-
#has_elastic_ip? ⇒ Boolean
Returns true if an elastic IP address is associated with this instance, false otherwise.
-
#image ⇒ Image
The AMI used to launch the instance.
-
#initialize(instance_id, opts = {}) ⇒ Instance
constructor
Creates an object that represents the instance with the given ID.
-
#key_pair ⇒ KeyPair
The key pair with which this instance was associated at launch.
-
#monitoring_enabled=(value) ⇒ Object
Enables or disables monitoring for this instance.
-
#monitoring_enabled? ⇒ Boolean
True if CloudWatch monitoring is enabled for this instance.
-
#reboot ⇒ nil
Reboots the instance.
-
#reset_kernel_id ⇒ Object
Resets the kernel to its default value.
-
#reset_ramdisk_id ⇒ Object
Resets the RAM disk to its default value.
-
#security_groups ⇒ Array
(also: #groups)
A list of security groups the instance is in.
-
#spot_instance? ⇒ Boolean
True if the instance is a Spot instance.
-
#start ⇒ nil
Starts the instance, assuming it is in a stopped state.
-
#status ⇒ Symbol
The status of the instance.
-
#stop ⇒ nil
Stops the instance, eventually putting it into a stopped state.
-
#terminate ⇒ nil
(also: #delete)
Terminates the instance.
Methods included from TaggedItem
Constructor Details
#initialize(instance_id, opts = {}) ⇒ Instance
Creates an object that represents the instance with the given ID. It’s usually easier to get an instance of this class by calling AWS::EC2::InstanceCollection#[] or AWS::EC2::InstanceCollection#each.
150 151 152 153 154 |
# File 'lib/aws/ec2/instance.rb', line 150 def initialize(instance_id, opts = {}) super @id = instance_id @reservation_attributes = {} end |
Instance Attribute Details
#ami_launch_index ⇒ Integer (readonly)
The AMI launch index, which can be used to find this instance within the launch group.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def ami_launch_index @ami_launch_index end |
#api_termination_disabled ⇒ Boolean
True if the instance cannot be terminated using the #terminate method. This attribute can be changed at any time.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def api_termination_disabled @api_termination_disabled end |
#architecture ⇒ Symbol (readonly)
The architecture of the image.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def architecture @architecture end |
#client_token ⇒ String (readonly)
Idempotency token you provided when you launched the instance.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def client_token @client_token end |
#dns_name ⇒ String (readonly) Also known as: public_dns_name
The DNS name of the instance on the internet.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def dns_name @dns_name end |
#hypervisor ⇒ Symbol (readonly)
The instance’s hypervisor type. Valid values:
-
:ovm
-
:xen
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def hypervisor @hypervisor end |
#id ⇒ String (readonly)
Returns the instance id.
157 158 159 |
# File 'lib/aws/ec2/instance.rb', line 157 def id @id end |
#image_id ⇒ String (readonly)
Image ID of the AMI used to launch the instance.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def image_id @image_id end |
#instance_initiated_shutdown_behavior ⇒ String
Valid values are:
- “stop”
-
When the instance shuts down, it will go into a “stopped” state.
- “terminate”
-
When the instance shuts down, it will be terminated.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def instance_initiated_shutdown_behavior @instance_initiated_shutdown_behavior end |
#instance_type ⇒ String
The instance type, e.g. “m1.small”. The instance must be in a stopped state to change the instance type.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def instance_type @instance_type end |
#ip_address ⇒ String (readonly) Also known as: public_ip_address
The IP address of the instance.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def ip_address @ip_address end |
#kernel_id ⇒ String
The ID of the kernel that the image currently uses. The instance must be in a stopped state to change this attribute.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def kernel_id @kernel_id end |
#key_name ⇒ String (readonly)
The name of the key pair with which this instance was associated at launch.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def key_name @key_name end |
#launch_time ⇒ Time (readonly)
The time at which the instance was launched.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def launch_time @launch_time end |
#monitoring ⇒ Symbol (readonly)
The status of CloudWatch monitoring for the instance. Valid values:
-
:enabled
-
:disabled
-
:pending
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def monitoring @monitoring end |
#owner_id ⇒ String (readonly)
ID of the AWS account that owns the reservation in which the instance was launched.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def owner_id @owner_id end |
#platform ⇒ String (readonly)
A string describing the platform of the image (e.g. “windows”).
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def platform @platform end |
#private_dns_name ⇒ String (readonly)
The DNS name of the instance within the EC2 network.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def private_dns_name @private_dns_name end |
#private_ip_address ⇒ String (readonly)
The private IP address assigned to the instance.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def private_ip_address @private_ip_address end |
#ramdisk_id ⇒ String
The ID of the RAM disk that the image currently uses. The instance must be in a stopped state to change this attribute.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def ramdisk_id @ramdisk_id end |
#requester_id ⇒ String (readonly)
ID of the requester that launched the instance on your behalf (e.g., AWS Management Console, Auto Scaling).
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def requester_id @requester_id end |
#reservation_id ⇒ String (readonly)
The ID of the reservation in which this instance was launched.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def reservation_id @reservation_id end |
#root_device_name ⇒ String (readonly)
The name of the root device.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def root_device_name @root_device_name end |
#root_device_type ⇒ Symbol (readonly)
The root device type used by the AMI. The AMI can use an Amazon EBS or instance store root device. Valid values:
-
:ebs
-
:instance_store
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def root_device_type @root_device_type end |
#state_transition_reason ⇒ String (readonly)
A string describing the reason for the last state transition.
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def state_transition_reason @state_transition_reason end |
#user_data ⇒ String
Arbitrary metadata that is available to the instance while it is running. This interface handles the details of encoding the user data for transmission; you should set the user data exactly as you want it to be made available to the instance.
The instance must be in a stopped state to change user data; for example:
i.user_data # => "HELLO"
i.status # => :running
i.user_data = "GOODBYE" # raises an exception
i.stop; sleep 1 until i.status == :stopped
i.user_data = "GOODBYE" # => "GOODBYE"
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def user_data @user_data end |
#virtualization_type ⇒ Symbol (readonly)
The instance’s virtualization type. Valid values:
-
:paravirtual
-
:hvm
142 143 144 |
# File 'lib/aws/ec2/instance.rb', line 142 def virtualization_type @virtualization_type end |
Instance Method Details
#associate_elastic_ip(elastic_ip) ⇒ nil Also known as: ip_address=
Associates the elastic IP address with this instance.
421 422 423 424 425 426 |
# File 'lib/aws/ec2/instance.rb', line 421 def associate_elastic_ip elastic_ip client.associate_address( :public_ip => elastic_ip.to_s, :instance_id => self.id) nil end |
#availability_zone ⇒ String
Returns The availability zone where the instance is running.
260 261 262 263 264 |
# File 'lib/aws/ec2/instance.rb', line 260 def availability_zone if p = placement p.availability_zone end end |
#block_device_mappings ⇒ Hash
Returns A hash in which each key is the name of a device that is mapped to an EBS volume. The value of each entry is an object describing the volume, including the following fields:
- status
-
The status of the attachment (e.g. “attached”).
- volume_id
-
The ID of the EBS volume.
- attach_time
-
The time at which the volume was attached.
- delete_on_termination?
-
True if the volume will be automatically deleted when the instance terminates.
390 |
# File 'lib/aws/ec2/instance.rb', line 390 def block_device_mappings; end |
#create_image(name, options = {}) ⇒ Image
Creates an AMI from this instance.
309 310 311 312 313 |
# File 'lib/aws/ec2/instance.rb', line 309 def create_image(name, = {}) ImageCollection.new(:config => config). create(.merge(:instance_id => id, :name => name)) end |
#disassociate_elastic_ip ⇒ Object
Disassociates an attached elastic IP address from this instance. Raises an exception if there is no elastic IP address associated with this instance.
433 434 435 436 437 438 439 |
# File 'lib/aws/ec2/instance.rb', line 433 def disassociate_elastic_ip if ip = self.elastic_ip ip.disassociate else raise "instance #{id} does not have an associated elastic ip" end end |
#elastic_ip ⇒ ElasticIp?
Returns an elastic IP address if one is associated with this instance, nil otherwise.
449 450 451 452 |
# File 'lib/aws/ec2/instance.rb', line 449 def elastic_ip ElasticIpCollection.new(:config => config). filter('instance-id', id).first end |
#exists? ⇒ Boolean
Returns True if the instance exists according to EC2.
161 162 163 164 165 166 167 |
# File 'lib/aws/ec2/instance.rb', line 161 def exists? client.describe_instances(:filters => [{ :name => "instance-id", :values => [id] }]).instance_index.key?(id) end |
#has_elastic_ip? ⇒ Boolean
Returns true if an elastic IP address is associated with this instance, false otherwise.
443 444 445 |
# File 'lib/aws/ec2/instance.rb', line 443 def has_elastic_ip? !elastic_ip.nil? end |
#image ⇒ Image
Returns The AMI used to launch the instance.
274 275 276 |
# File 'lib/aws/ec2/instance.rb', line 274 def image Image.new(image_id, :config => config) end |
#key_pair ⇒ KeyPair
Returns The key pair with which this instance was associated at launch.
282 283 284 |
# File 'lib/aws/ec2/instance.rb', line 282 def key_pair KeyPair.new(key_name, :config => config) if key_name end |
#monitoring_enabled=(value) ⇒ Object
Enables or disables monitoring for this instance.
215 216 217 218 219 220 221 222 223 |
# File 'lib/aws/ec2/instance.rb', line 215 def monitoring_enabled=(value) if value client.monitor_instances(:instance_ids => [id]) true else client.unmonitor_instances(:instance_ids => [id]) false end end |
#monitoring_enabled? ⇒ Boolean
Returns true if CloudWatch monitoring is enabled for this instance.
210 211 212 |
# File 'lib/aws/ec2/instance.rb', line 210 def monitoring_enabled? monitoring == :enabled end |
#reboot ⇒ nil
Reboots the instance.
185 |
# File 'lib/aws/ec2/instance.rb', line 185 def reboot; end |
#reset_kernel_id ⇒ Object
Resets the kernel to its default value.
358 359 360 361 |
# File 'lib/aws/ec2/instance.rb', line 358 def reset_kernel_id client.reset_instance_attribute(:instance_id => id, :attribute => "kernel").return end |
#reset_ramdisk_id ⇒ Object
Resets the RAM disk to its default value.
368 369 370 371 |
# File 'lib/aws/ec2/instance.rb', line 368 def reset_ramdisk_id client.reset_instance_attribute(:instance_id => id, :attribute => "ramdisk").return end |
#security_groups ⇒ Array Also known as: groups
Returns A list of security groups the instance is in. Each member is an instance of SecurityGroup.
228 229 230 |
# File 'lib/aws/ec2/instance.rb', line 228 def security_groups group_set end |
#spot_instance? ⇒ Boolean
Returns true if the instance is a Spot instance.
250 251 252 |
# File 'lib/aws/ec2/instance.rb', line 250 def spot_instance? instance_lifecycle == :spot end |
#start ⇒ nil
Starts the instance, assuming it is in a stopped state.
191 |
# File 'lib/aws/ec2/instance.rb', line 191 def start; end |
#status ⇒ Symbol
Returns The status of the instance. Valid values:
-
:pending
-
:running
-
:shutting_down
-
:terminated
-
:stopping
-
:stopped
.
409 410 411 412 413 |
# File 'lib/aws/ec2/instance.rb', line 409 def status retrieve_attribute(:status) do client.describe_instances(:instance_ids => [id]) end end |
#stop ⇒ nil
Stops the instance, eventually putting it into a stopped state.
196 |
# File 'lib/aws/ec2/instance.rb', line 196 def stop; end |
#terminate ⇒ nil Also known as: delete
Terminates the instance.
179 |
# File 'lib/aws/ec2/instance.rb', line 179 def terminate; end |