» Data Source: aws_instances

Use this data source to get IDs or IPs of Amazon EC2 instances to be referenced elsewhere, e.g. to allow easier migration from another management solution or to make it easier for an operator to connect through bastion host(s).

» Example Usage

data "aws_instances" "test" {
  instance_tags {
    Role = "HardWorker"

  filter {
    name   = "instance.group-id"
    values = ["sg-12345678"]

  instance_state_names = ["running", "stopped"]

resource "aws_eip" "test" {
  count    = "${length(data.aws_instances.test.ids)}"
  instance = "${data.aws_instances.test.ids[count.index]}"

» Argument Reference

  • instance_tags - (Optional) A mapping of tags, each pair of which must exactly match a pair on desired instances.

  • instance_state_names - (Optional) A list of instance states that should be applicable to the desired instances. The permitted values are: pending, running, shutting-down, stopped, stopping, terminated. The default value is running.

  • filter - (Optional) One or more name/value pairs to use as filters. There are several valid keys, for a full reference, check out describe-instances in the AWS CLI reference.

» Attributes Reference

  • ids - IDs of instances found through the filter
  • private_ips - Private IP addresses of instances found through the filter
  • public_ips - Public IP addresses of instances found through the filter