Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

300
Visualizações
Terraform AWS: no se pudo reutilizar root_block_device creado anteriormente con la instancia de AWS EC2 lanzada con aws_launch_configuration

Implementé una pila ELK en AWS ECS con terraform. Todo funcionó bien durante algunas semanas, pero hace 2 días tuve que reiniciar la instancia.

Lamentablemente, la nueva instancia no se basó en el volumen existente para montar el dispositivo de bloqueo raíz. Entonces, todos mis datos de elasticsearch ya no están disponibles para mi instancia de Kibana.

Los datos todavía están aquí, en el volumen anterior, actualmente no se utilizan.

Así que probé muchas cosas para adjuntar este volumen en "dev/xvda" pero sin, por ejemplo:

  • Use ebs_block_device en lugar de root_block_device usando
  • Cambie "dev/xvda" cuando la instancia ya se esté ejecutando

Estoy usando aws_autoscaling_group con aws_launch_configuration.

 resource "aws_launch_configuration" "XXX" { name = "XXX" image_id = data.aws_ami.latest_ecs.id instance_type = var.INSTANCE_TYPE security_groups = [var.SECURITY_GROUP_ID] associate_public_ip_address = true iam_instance_profile = "XXXXXX" spot_price = "0.04" lifecycle { create_before_destroy = true } user_data = templatefile("${path.module}/ecs_agent_conf_options.tmpl", { cluster_name = aws_ecs_cluster.XXX.name } ) //The volume i want to reuse was created with this configuration. I though it would //be enough to reuse the same volume. It doesn't. root_block_device { delete_on_termination = false volume_size = 50 volume_type = "gp2" } } resource "aws_autoscaling_group" "YYY" { name = "YYY" min_size = var.MIN_INSTANCES max_size = var.MAX_INSTANCES desired_capacity = var.DESIRED_CAPACITY health_check_type = "EC2" availability_zones = ["eu-west-3b"] launch_configuration = aws_launch_configuration.XXX.name vpc_zone_identifier = [ var.SUBNET_1_ID, var.SUBNET_2_ID] }

¿Me pierdo algo obvio sobre esto?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Lamentablemente, no puede adjuntar un volumen como volumen raíz a una instancia.

Lo que tiene que hacer es crear una AMI personalizada en función de su volumen. Esto implica crear una instantánea del volumen seguida de la construcción de la AMI:

  • Creación de una AMI de Linux a partir de una instantánea

En terraform, hay aws_ami especialmente para ese propósito.

El siguiente script de terraform ejemplifica el proceso en tres pasos :

  1. Creación de una instantánea de un volumen dado
  2. Creación de una AMI a partir de la instantánea
  3. Creación de una instancia desde la AMI
 provider "aws" { # your data } resource "aws_ebs_snapshot" "snapshot" { volume_id = "vol-0ff4363a40eb3357c" # <-- your EBS volume ID } resource "aws_ami" "my" { name = "my-custom-ami" virtualization_type = "hvm" root_device_name = "/dev/xvda" ebs_block_device { device_name = "/dev/xvda" snapshot_id = aws_ebs_snapshot.snapshot.id volume_type = "gp2" } } resource "aws_instance" "web" { ami = aws_ami.my.id instance_type = "t2.micro" # key_name = "<your-key-name>" tags = { Name = "InstanceFromCustomAMI" } }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda