Terraform: AWS instance example with aws ami lookup and key name

From wikieduonline
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]

Activities[edit]

See also[edit]

Advertising: