Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Docker Nights 7: Amazon EC2 Container Service

Docker Nights 7: Amazon EC2 Container Service

Yamil Urbina

August 21, 2017
Tweet

More Decks by Yamil Urbina

Other Decks in Education

Transcript

  1. Contenido • Componentes de ECS • Registro privado de imágenes

    ECS • Task Definitions • Tareas y Servicios • Rutas DNS y service discovery • Load Balancers en AWS
  2. ¿Qué es ECS? Amazon EC2 Container Service (Amazon ECS) es

    un sistema de manejo de contenedores para iniciar, detener y manipular servicios web usando Docker. ECS expone un API para correr dichos servicios y los complementa con instancias, VPCs, Security Groups, DNS, IPs públicas y otros servicios dentro del ecosistema de Amazon Web Services.
  3. Cluster Son instancias web agrupadas lógicamente para un objetivo computacional

    común. Amazon ECS descarga las imágenes de los contenedores de un registro previamente especificado, y corre dichas imágenes como servicios en las instancias del cluster con las definiciones anteriormente configuradas.
  4. Registro Privado Alojamiento de imágenes privadas de Docker usando Amazon

    S3 # Etiquetar una imágen existente $ docker tag httpd miregistro.dkr.amazonaws.com/httpd # Subir la imagen $ docker push miregistro.dkr.amazonaws.com/httpd # Construir un container con repo privado $ docker build -t miregistro.dkr.amazonaws.com/miapp:v1 . # Subir la imagen $ docker push miregistro.dkr.amazonaws.com/miapp:v1
  5. Task Definition Define imágenes, variables de entorno, comandos de inicio

    y enlaces a otros servicios internos "family": "miservicioweb", "containerDefinitions": [{ "name": "miaplicacion", "image": "miregistro.dkr.amazonaws.com/miapp:v1", "cpu": 99, "memory": 100 }]
  6. Servicio Un contenedor o grupo de contenedores corriendo de forma

    especificada por un task definition y son manejados por el agente de ECS. Cuando un servidor o instancia deja de funcionar, el servicio y el agente se encargan de distribuir y escalar el número de contenedores para reestablecer el estado de la aplicación web a healthy (saludable).
  7. Rutas DNS Resolución de rutas DNS para el acceso de

    servicios externos: # DNS hacia la base de datos db.miaplicacion.internal => 10.100.0.39:3306 # DNS para la cache cache.miaplicacion.internal => 10.100.0.40:6379 # DNS hacia otro microservicio mailer.miaplicacion.internal => 10.100.3.2:35312
  8. Load Balancer Balanceo de tráfico externo hacia el cluster y

    sus servicios corriendo la aplicación web: 10.100.0.32:32656 / miapp.com => ELB - 10.100.2.23:36452 \ 10.100.0.22:39235