Docker para AWS

Amazon Web Services ( AWS ) es la plataforma de nube más grande y popular disponible hoy en día. AWS proporciona varias formas de ejecutar cargas de trabajo de Docker en su nube. Puedes utilizar Elastic Beanstalk, Elastic Container Service ( ECS ), o Elastic Container Service para Kubernetes ( EKS ). Cada uno de estos productos tiene diferentes capacidades, que te permiten hacer diferentes cosas. Ninguno de estos productos es nativo de Docker, y requiere que aprendas un nuevo conjunto de herramientas y bibliotecas para poner en marcha tu aplicación de Docker.

Docker para AWS utiliza las mismas herramientas nativas de la nube que estos productos utilizan, pero proporciona una experiencia más nativa de Docker. Una vez que Docker para AWS esté configurado, puedes utilizar las mismas herramientas y API de Docker que ya conoces para implementar tu carga de trabajo de Docker en AWS.

Preparación

Antes de que podamos instalar Docker para AWS, debes asegurarte de que has satisfecho todos los requisitos previos:

  • Debes tener una cuenta de AWS activa con acceso de inicio de sesión a la consola o claves de API para realizar llamadas a la CLI/API.

  • Tu cuenta debe ser una cuenta de administrador o una cuenta con los permisos de IAM correctos.

NOTA

Para obtener una lista completa de permisos, consulta la documentación en: https://docs.docker.com/docker-for-aws/iam-permissions/.

  • Debes crear y agregar claves SSH a tu cuenta de AWS.

NOTA

Consulta la documentación de Amazon para obtener más información: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html.

Cómo hacerlo…

Docker para AWS utiliza CloudFormation para construir y configurar tu clúster de Swarm. Hay dos formas de implementar una pila de CloudFormation: puedes hacerlo a través de la consola web de AWS o la interfaz de línea de comandos de AWS (CLI). Utilizar la consola web es más fácil para empezar, porque solo necesitas rellenar un formulario web. Te recomiendo este enfoque si no estás familiarizado con CloudFormation. Esto es lo que te mostraré aquí.

Vamos a implementar la versión estable más reciente disponible y permitir que Docker para AWS cree una nueva Red Privada Virtual ( VPC ) para nosotros. Hay otra opción en la que podemos instalarlo en una VPC existente, pero eso está fuera del alcance de esta receta.

  1. Inicia sesión en la consola de AWS y ve a la sección de CloudFormation. Luego, haz clic en el botón Crear pila nueva:

Diagrama

  1. En Seleccionar plantilla, selecciona el botón de radio URL de plantilla de Amazon S3, introduce la siguiente URL y haz clic en Siguiente: https://editions-us-east-1.s3.amazonaws.com/aws/stable/Docker.tmpl:

Diagrama

  1. Rellena el formulario, como se muestra en la siguiente captura de pantalla:

Diagrama

El resto puedes cambiarlo o dejarlo con los valores predeterminados.

  1. Haz clic en el botón Siguiente.

  2. Agrega cualquier etiqueta opcional si lo deseas, de lo contrario, puedes dejar todo como está y hacer clic en el botón Siguiente:

Diagrama

  1. Haz clic en la casilla de verificación Reconozco que AWS CloudFormation puede crear recursos de IAM y haz clic en el botón Crear:

Diagrama

  1. Tomará unos minutos crear tu pila, y cuando esté completa, debes ir a la pestaña Salidas y hacer clic en el enlace junto a Administradores:

Diagrama

  1. Selecciona una de las direcciones IP públicas para uno de los administradores:

Diagrama

Inicia sesión en uno de los nodos administradores de la siguiente manera:

$ ssh docker@52.201.109.15
$ docker node ls

Diagrama

NOTA

Cuando inicies sesión en el administrador de Swarm, no estás iniciando sesión directamente en el host de EC2, estás iniciando sesión en un contenedor SSH especial que se ejecuta en ese host.

Docker para AWS ya está listo para usarse.

Cómo funciona…

CloudFormation tomará la información que proporcionamos en el formulario y construirá una nueva Red Privada Virtual ( VPC ), subredes, puerta de enlace de Internet, tablas de enrutamiento, grupos de seguridad, Equilibrador de carga elástico ( ELB ), y dos grupos de escalado automático de EC2 (ASG) - uno ASG para los administradores y uno para los trabajadores. Los nodos administradores en el ASG de administradores crearán nuevas instancias de EC2 con Docker instalado en ellas. Las instancias de administrador crearán un nuevo Swarm de Docker y se unirán para formar un quórum de administradores.

Una vez que los nodos administradores estén en funcionamiento, el ASG de trabajadores iniciará instancias de EC2 de trabajadores con Docker en ellas, y también se unirán al mismo Swarm y comenzarán a aceptar tareas. Después de que se completen todos estos pasos, el Swarm estará listo para la acción.

Hay más

Poner en marcha Docker para AWS es solo la mitad de la batalla. Ahora que está en funcionamiento, debes implementar una aplicación, lo que te mostraremos en la próxima receta. Mientras tanto, aquí hay algunas tareas comunes que debes saber cómo hacer:

  • Escalado de más trabajadores : Si deseas cambiar el número de trabajadores que tienes en tu clúster de Swarm, puedes hacerlo actualizando la pila de CloudFormation.

Ve a la página de administración de CloudFormation y haz clic en la casilla de verificación junto a la pila que deseas actualizar. Luego, haz clic en el botón Acciones y selecciona Actualizar pila:

Diagrama

Selecciona Utilizar plantilla actual, y luego haz clic en Siguiente:

Diagrama

Rellena los mismos parámetros que especificaste anteriormente, pero esta vez, cambia el recuento de trabajadores al nuevo recuento, y haz clic en Siguiente:

Diagrama

En la última página, te permitirá previsualizar tus cambios. Si parecen correctos, selecciona la casilla de verificación y haz clic en el botón Actualizar:

Diagrama

CloudFormation actualizará la configuración del ASG de trabajadores y escalonará el número de nodos de trabajadores según sea necesario. Para confirmar que los nodos están en funcionamiento y se han unido correctamente al Swarm, puedes iniciar sesión en un nodo de administrador y ejecutar el siguiente comando:

$ docker node ls

Eliminación de la pila : Ve a la página de administración de CloudFormation y haz clic en la casilla de verificación junto a la pila que deseas eliminar. Luego, haz clic en el botón Acciones y selecciona Eliminar pila:

Diagrama

CloudFormation eliminará todos los elementos de tu pila, incluidos cualquier servicio que estuviera en ejecución en tu Swarm.

Ver también