2017-01-18 18:19:44 +01:00
---
layout: "aws"
page_title: "AWS: aws_instance"
sidebar_current: "docs-aws-datasource-instance"
description: |-
2017-02-04 17:00:46 +01:00
Get information on an Amazon EC2 Instance.
2017-01-18 18:19:44 +01:00
---
# aws\_instance
2017-02-04 17:00:46 +01:00
Use this data source to get the ID of an Amazon EC2 Instance for use in other
2017-01-18 18:19:44 +01:00
resources.
## Example Usage
2017-04-07 17:54:28 +02:00
```hcl
2017-01-18 18:19:44 +01:00
data "aws_instance" "foo" {
instance_id = "i-instanceid"
2017-02-18 23:48:50 +01:00
2017-01-18 18:19:44 +01:00
filter {
2017-02-18 23:48:50 +01:00
name = "image-id"
2017-01-18 18:19:44 +01:00
values = ["ami-xxxxxxxx"]
}
2017-02-18 23:48:50 +01:00
2017-01-18 18:19:44 +01:00
filter {
2017-02-18 23:48:50 +01:00
name = "tag:Name"
2017-01-18 18:19:44 +01:00
values = ["instance-name-tag"]
}
}
```
## Argument Reference
2017-02-04 17:00:46 +01:00
* `instance_id` - (Optional) Specify the exact Instance ID with which to populate the data source.
2017-01-18 19:14:49 +01:00
2017-02-18 23:48:50 +01:00
* `instance_tags` - (Optional) A mapping of tags, each pair of which must
2017-01-18 19:14:49 +01:00
exactly match a pair on the desired Instance.
2017-01-18 18:19:44 +01:00
2017-02-04 17:00:46 +01:00
* `filter` - (Optional) One or more name/value pairs to use as filters. There are
2017-01-18 18:19:44 +01:00
several valid keys, for a full reference, check out
[describe-instances in the AWS CLI reference][1].
2017-01-18 19:14:49 +01:00
~> **NOTE:** At least one of `filter` , `instance_tags` , or `instance_id` must be specified.
2017-01-18 18:19:44 +01:00
2017-02-04 17:00:46 +01:00
~> **NOTE:** If anything other than a single match is returned by the search,
2017-01-18 18:19:44 +01:00
Terraform will fail. Ensure that your search is specific enough to return
a single Instance ID only.
## Attributes Reference
`id` is set to the ID of the found Instance. In addition, the following attributes
are exported:
~> **NOTE:** Some values are not always set and may not be available for
interpolation.
2017-02-04 17:00:46 +01:00
* `associate_public_ip_address` - Whether or not the Instance is associated with a public IP address or not (Boolean).
* `availability_zone` - The availability zone of the Instance.
* `ebs_block_device` - The EBS block device mappings of the Instance.
2017-01-18 18:19:44 +01:00
* `delete_on_termination` - If the EBS volume will be deleted on termination.
* `device_name` - The physical name of the device.
* `encrypted` - If the EBS volume is encrypted.
* `iops` - `0` If the EBS volume is not a provisioned IOPS image, otherwise the supported IOPS count.
* `snapshot_id` - The ID of the snapshot.
* `volume_size` - The size of the volume, in GiB.
* `volume_type` - The volume type.
2017-02-04 17:00:46 +01:00
* `ebs_optimized` - Whether the Instance is EBS optimized or not (Boolean).
* `ephemeral_block_device` - The ephemeral block device mappings of the Instance.
2017-01-18 18:19:44 +01:00
* `device_name` - The physical name of the device.
* `no_device` - Whether the specified device included in the device mapping was suppressed or not (Boolean).
2017-02-04 17:00:46 +01:00
* `virtual_name` - The virtual device name.
2017-04-11 15:57:15 +02:00
* `iam_instance_profile` - The name of the instance profile associated with the Instance.
2017-05-14 22:42:18 +02:00
* `ipv6_addresses` - The IPv6 addresses associated to the Instance, if applicable. **NOTE** : Unlike the IPv4 address, this doesn't change if you attach an EIP to the instance.
2017-02-04 17:00:46 +01:00
* `instance_type` - The type of the Instance.
* `key_name` - The key name of the Instance.
* `monitoring` - Whether detailed monitoring is enabled or disabled for the Instance (Boolean).
* `network_interface_id` - The ID of the network interface that was created with the Instance.
* `placement_group` - The placement group of the Instance.
* `private_dns` - The private DNS name assigned to the Instance. Can only be
2017-02-18 23:48:50 +01:00
used inside the Amazon EC2, and only available if you've enabled DNS hostnames
2017-01-18 18:19:44 +01:00
for your VPC.
2017-02-04 17:00:46 +01:00
* `private_ip` - The private IP address assigned to the Instance.
2017-02-18 23:48:50 +01:00
* `public_dns` - The public DNS name assigned to the Instance. For EC2-VPC, this
2017-01-18 18:19:44 +01:00
is only available if you've enabled DNS hostnames for your VPC.
2017-02-04 17:00:46 +01:00
* `public_ip` - The public IP address assigned to the Instance, if applicable. **NOTE** : If you are using an [`aws_eip` ](/docs/providers/aws/r/eip.html ) with your instance, you should refer to the EIP's address directly and not use `public_ip` , as this field will change after the EIP is attached.
* `root_block_device` - The root block device mappings of the Instance
2017-01-18 18:19:44 +01:00
* `delete_on_termination` - If the root block device will be deleted on termination.
* `iops` - `0` If the volume is not a provisioned IOPS image, otherwise the supported IOPS count.
* `volume_size` - The size of the volume, in GiB.
* `volume_type` - The type of the volume.
* `security_groups` - The associated security groups.
* `source_dest_check` - Whether the network interface performs source/destination checking (Boolean).
* `subnet_id` - The VPC subnet ID.
2017-02-18 23:48:50 +01:00
* `user_data` - The User Data supplied to the Instance.
2017-02-04 17:00:46 +01:00
* `tags` - A mapping of tags assigned to the Instance.
* `tenancy` - The tenancy of the instance: `dedicated` , `default` , `host` .
* `vpc_security_group_ids` - The associated security groups in a non-default VPC.
2017-01-18 18:19:44 +01:00
[1]: http://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html