eadl:bloc4:fm4:td1

Ceci est une ancienne révision du document !


Déploiement AWS avec Terraform (EC2 + SSH)

Mettre en place une instance EC2 sur AWS avec :

  • Terraform
  • Une clé SSH
  • Un Security Group (port 22)
  • Connexion SSH fonctionnelle
  • Compte AWS
  • Terraform installé
  • AWS CLI configuré
  • Une paire de clés SSH

Fichier main.tf :

provider "aws" {
  region = "eu-west-3"
}

variable "public_key_path" {
  description = "Chemin vers la clé publique SSH"
  type        = string
}

resource "aws_key_pair" "zerp_key" {
  key_name   = "zerp-key"
  public_key = file(var.public_key_path)
}

resource "aws_security_group" "zerp_sg" {
  name = "zerp-sg"

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

resource "aws_instance" "zerp_ec2" {
  ami           = "ami-xxxxxxxx"
  instance_type = "t2.micro"

  key_name = aws_key_pair.zerp_key.key_name
  vpc_security_group_ids = [
    aws_security_group.zerp_sg.id
  ]
  tags = {
    Name = "zerp-ec2"
  }
}

public_key_path = "C:/Users/ton_user/.ssh/id_rsa.pub"

terraform init

terraform apply

Valider avec : yes

terraform show

Chercher :

public_ip = "xxx.xxx.xxx.xxx"

ssh -i $HOME/.ssh/id_rsa ec2-user@IP

ssh -i  $ HOME/.ssh/id_rsa ubuntu@IP

Si tout fonctionne :

[ec2-user@ip-xxx-xxx-xxx-xxx ~] $ 

Mauvais utilisateur (ec2-user vs ubuntu)

Port 22 non ouvert Security group mal configuré

  • Ne pas hardcoder les chemins
  • Utiliser des variables Terraform
  • Ne jamais versionner les clés privées
  • Utiliser terraform.tfvars pour les configs locales
  • eadl/bloc4/fm4/td1.1776200465.txt.gz
  • Dernière modification : il y a 5 heures
  • de jcheron