Terraform: AWS instance example with aws ami lookup and key name
(Redirected from 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" lifecycle { ignore_changes = [ami] prevent_destroy = true } 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-pairsterraform init,terraform showterraform state show aws_instance.MYexample- Terraform resource:
aws_key_pair aws ec2 run-instances~/.ssh/configterraform show | grep private_ipaws_security_groupterraform show | grep public_ipaws ec2 describe-images --owners self amazon- ssh-keygen
- subnet_id
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: