Apenas um detalhe em relação ao conteúdo apresentado no curso a criação da chave pública na AWS é feita por interface gráfica, como estamos usando a infra as code o interessante seria criar essa chave também por código e quando executarmos o código terraform destroy essa chave também seja excluída, para fazer isso utilizei o seguinte código
provider "aws" {
region = "us-east-1"
}
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "3.22.0"
}
}
}
resource "aws_instance" "dev" {
count = 2
ami = "ami-0885b1f6bd170450c"
instance_type = "t2.micro"
key_name = "terraform-aws"
tags = {
name = "dev-${count.index}"
}
}
resource "aws_key_pair" "ec2_key" {
key_name = "terraform-aws"
public_key = file("terraform-aws.pub")
}
Obs: Você continua gerando a chave na sua máquina porém a criação dessa chave na AWS fica automática.