Terraform resource: aws instance
Contents
Arguments
subnet_id
instance_type
ami
key_name
vpc_security_group_ids
metadata_options
: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance#metadata-options- http_tokens = required
Examples
- AWS instance example with aws_ami lookup and key_name:
aws_instance
,data.aws_ami
- AWS instance example with aws_ami lookup:
aws instance
,aws_ami
- AWS instance example: main.tf:
aws instance
- AWS instance example creating VPC
Examples
resource "aws_instance" "MYexample" { ami = "ami-08d70e59c07c61a3a" instance_type = "t3.micro" tags = { Name = "your_name_here" } } See also: AWS instance example with aws_ami lookup
resource "aws_instance" "MYexample" { ami = "ami-08d70e59c07c61a3a" instance_type = "t2.micro" associate_public_ip_address = "yes" tags = { Name = "your_name_here" } }
Example for terraform import
:
resource "aws_instance" "restore-backups-machine" { # (resource arguments) }
resource "aws_instance" "myUbuntuMicroInstance" { ami = data.aws_ami.ubuntu.id .../...
resource "aws_instance" "my-instance" { count = var.instance_count ami = lookup(var.ami,var.aws_region) instance_type = var.instance_type key_name = aws_key_pair.terraform-demo.key_name user_data = file("install_apache.sh") tags = { Name = "Terraform-${count.index + 1}" Batch = "5AM" } }
Outputs
output "instance_ip_addr" { value = aws_instance.your_server.private_ip }
Errors
aws_instance arguments
ami
instance_type
key_name
[1]aws_key_pair
availability_zone
monitoring
associate_public_ip_address
subnet_id, public_ip
aws_security_group: vpc_security_group_ids
: (Optional, list) https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance#vpc_security_group_idsroot_block_device
iops
iam_instance_profile
(Optional)user_data
credit_specification
lifecycle
tenancy
instance_state
Related terms
terraform show (grep aws_instance)
aws ec2 run-instances
aws ec2 describe-key-pairs
source (Terraform modules)
- Terraform: Data sources
Terraform: VPCIdNotSpecified
- Terraform module:
ec2-instance
- Terraform resource:
aws_volume_attachment
- volume_size
ebs_block_device
resource argumentaws_eip
aws instance.your_instance_name will be updated in-place
count
VcpuLimitExceeded
- Datadog: EC2 instances should enforce IMDSv2
aws_ec2_instance_metadata_defaults
See also
- Terraform AWS:
aws_instance
:ami
,availability_zone
,instance_type
,key_name
,aws_key_pair
,monitoring
,associate_public_ip_address
,tenancy
,subnet_id, user_data, iam_instance_profile, vpc_security_group_ids, root_block_device, ebs_block_device
Advertising: