Terraform: AWS instance example with aws ami lookup and key name
Jump to navigation
Jump to search
touch main.tf
provider "aws" { region = "us-west-2" profile = "YourProfile" } data "aws_ami" "ubuntu" { most_recent = true filter { name = "name" values = ["ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server-*"] } filter { name = "virtualization-type" values = ["hvm"] } owners = ["099720109477"] # Canonical } resource "aws_instance" "myUbuntuMicroInstance" { ami = data.aws_ami.ubuntu.id instance_type = "t3.micro" associate_public_ip_address = "true" vpc_security_group_ids = [aws_security_group.allow_ssh.id] key_name = "YourKeyName" tags = { Name = "MyInstanceName" } } resource "aws_security_group" "allow_ssh" { name = "allow_ssh" description = "Allow ssh inbound traffic from Internet" ingress { description = "SSH from Internet" from_port = 22 to_port = 22 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] ipv6_cidr_blocks = ["::/0"] }
egress { from_port = 0 to_port = 0 protocol = "-1" cidr_blocks = ["0.0.0.0/0"] ipv6_cidr_blocks = ["::/0"] } tags = { Name = "allow_ssh" } } resource "aws_key_pair" "YourKeyName" { key_name = "YourKeyName" public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD3F6tyPEFEzV0LX3X8BsXdMsQz1x2cEikKDEY0aIj41qgxMCP/iteneqXSIFZBp5vizPvaoIR3Um9xK7PGoW8giupGn+EPuxIA4cDM4vzOqOkiMPhz5XK0whEjkVzTo4+S0puvDZuwIsdiW9mxhJc7tgBNL0cYlWSYVkz4G/fslNfRPW5mYAM49f4fhtxPb5ok4Q2Lg9dPKVHO/Bgeu5woMc7RY0p1ej6D4CKFE6lymSDJpW0YHX/wqE9+cfEauh7xZcG0q9t2ta6F6fmX0agvpFyZo8aFbXeUBr7osSCJNgvavWbM/06niWrOvYX2xwWdhXmXSrbX8ZbabVohBK41 [email protected]" } output "instance_ip_addr" { value = aws_instance.myUbuntuMicroInstance.public_ip }
Errors[edit]
* Error: creating Security Group (allow_ssh): VPCIdNotSpecified: No default VPC for this user
Errors: Key par does not exist[edit]
│ Error: Error launching source instance: InvalidKeyPair.NotFound: The key pair 'YourKeyName' does not exist │ status code: 400, request id: 717f23c7-f87f-4056-a8f4-a82ad2095534
VPCIdNotSpecified: No default VPC for this user. GroupName is only supported for EC2-Classic and default VPC.
Related[edit]
aws ec2 describe-key-pairs
terraform init
,terraform show
terraform state show aws_instance.MYexample
- Terraform resource:
aws_key_pair
aws ec2 run-instances
~/.ssh/config
terraform show | grep private_ip
aws_security_group
terraform show | grep public_ip
aws ec2 describe-images --owners self amazon
Activities[edit]
- Improve this example by adding a security group with ssh access from anywhere: Terraform resource: aws security group
See also[edit]
terraform apply
[-auto-approve
|-refresh-only, -destroy | --help ]
, Terraform examples,Still creating...
, Terraform apply examples with errorsterraform
[untaint | fmt
|apply
|show
|state
|init | plan | console | output
|validate
|destroy
|debug
|import
|providers
|get
|graph
|workspaces
|resource
|login
|-var-file
|state mv
|state pull
|state push
|state replace-provider
|state rm
|force-unlock
|env
|tfe
|--version
|remote-exec
|delete on termination
| deprecated commands |terraform --help
]
Advertising: