Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

321
Views
Use un volumen EBS existente con el complemento Docker REX-Ray en ECS

Estoy usando Terraform para crear un ECS Cluster, una definición de tarea y un servicio.

Para la definición de tareas, la pieza de código se ve así:

 resource "aws_ecs_task_definition" "postgres" { container_definitions = ... family = "Postgres" requires_compatibilities = ["EC2"] network_mode = "bridge" volume { name = "PreCreatedEBSVolume" docker_volume_configuration { scope = "task" autoprovision = false driver = "rexray/ebs" } } }

Configuré específicamente el autoprovision en false para asegurarme de que no se crea un nuevo volumen. Pero aun así, cuando se ejecuta el servicio, se crea un nuevo volumen con 16 GiB (que supongo que es el tamaño predeterminado) y se usa en lugar de usar el "PreCreatedEBSVolume".

Compruebo el docker volume ls en la instancia y, por supuesto, veo los volúmenes de EBS en la lista. Y si ejecuto una nueva instancia con este volumen montado, se está montando como se esperaba.

¿Hay alguna manera de hacer que REX-Ray use el almacenamiento en bloque existente?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Encontré el problema.

El problema es la propiedad "alcance". Los documentos dijeron lo siguiente:

El ámbito del volumen de Docker que determina su ciclo de vida. Los volúmenes de Docker que están en el ámbito de una tarea se aprovisionan automáticamente cuando se inicia la tarea y se destruyen cuando se detiene. Los volúmenes de Docker cuyo ámbito es compartido persisten después de que se detiene la tarea.

Entonces, solo tuve que cambiarlo a "compartido" de "tarea" para que use el volumen EBS existente.

over 4 years ago · Santiago Trujillo Report

0

El problema con rexray/ebs es que selecciona el volumen EBS existente solo cuando está en la misma AZ que la instancia. Entonces, en nuestro caso, necesitábamos anclar instancias específicas a AZ específicas para poder usar este controlador correctamente.

Nuestra configuración fue de 6 instancias en 3 AZ diferentes para una mejor disponibilidad y cada instancia tenía su propio EBS, pero después de reiniciar la instancia, fue a AZ aleatorio y 2 de 3 no pudieron encontrar el volumen. El mensaje de error en syslogs no fue muy informativo.

Aparte de eso, ese complemento hace lo que debería.

over 4 years ago · Santiago Trujillo Report

0

El siguiente es el ejemplo de definición de tareas que responde a la pregunta y brinda detalles adicionales si desea saber cómo crear un volumen gp3 con IOPS y cifrado especificado:

 resource "aws_ecs_task_definition" "postgres" { container_definitions = ... family = "Postgres" requires_compatibilities = ["EC2"] network_mode = "bridge" volume { name = "PreCreatedEBSVolume" docker_volume_configuration { scope = "shared" autoprovision = false driver = "rexray/ebs" driver_opts = { volumetype = "gp3" size = 40 iops = 3000 encrypted = true encryptionkey = "arn:aws:kms:us-east-1:111111111111:key/11111111-1111-1111-1111-11111111" } } } }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!