AWS

21 de Fevereiro de 2024 - @Walmir Neto


Ontem foi dia de mostrar Como provisionar EC2 com Tofu, só que ela está inacessível e para gente poder acessar, vamos precisar criar alguns arquivos para que o tofu adicionar sua chave SSH e um Security Group na AWS para que possamos acessar o server

Criando arquivos

Você precisa criar um arquivo aws_key_pairs.tf para dizer a AWS qual chave tem acesso o servidor

variable "public_key_path" {
  type        = string
  default     = "~/.ssh/id_rsa.pub"
  description = "SSH key to acess EC2"
  sensitive   = true
}

resource "aws_key_pair" "demo_ssh_key" {
  key_name   = "Rails Demo"
  public_key = file(var.public_key_path)
}

Além disso é preciso colocar key_name no aws_instance:

# tofu/aws_instances.tf
resource "aws_instance" "demo_instance" {
   ami           = local.instance_ami
   instance_type = local.instance_type
+  key_name      = aws_key_pair.demo_ssh_key.key_name

   tags = local.instance_tags
 }

Agora é só roda:

cd tofu
tofu validate # to validate if code is valid
tofu plan # to check if everything is ok
tofu apply -auto-approve # DON'T USE `-auto-approve` if you're not sure 

Screenshot 2024-02-17 at 17.07.25.png

Agora o Security Group

resource "aws_security_group" "access_ssh" {
  name        = "rails_demo_access_ssh"
  description = "Access SSH"

  ingress {
    from_port   = 22
    to_port     = 22
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  tags = {
    Name = "access_ssh"
  }
}

Além disso

resource "aws_instance" "demo_instance" {
  ami           = local.instance_ami
  instance_type = local.instance_type
  key_name      = aws_key_pair.demo_ssh_key.key_name
 
+  vpc_security_group_ids = [aws_security_group.access_ssh.id]
+
   tags = local.instance_tags
 }

Com isso já pode rodar:

tofu validate # to validate if code is valid
tofu plan # to check if everything is ok
tofu apply -auto-approve # DON'T USE `-auto-approve` if you're not sure 

Screenshot 2024-02-17 at 17.07.57.png

Lembra da instancia que levantamos antes, vamo precisar do IP dela 44.202.66.149