EKS: ¿Fargate o EC2?
Al crear nuestro cluster de EKS, nos encontramos con la posibilidad de utilizar nodos de EC2, como usualmente se manejan los cluster de kubernetes, pero también con la posibilidad de utilizar Fargate. En este artículo ahondaremos en los escenarios de usar cada uno, en incluso, ambos al mismo tiempo.
Comencemos con los pros y contras de cada uno:
EC2
Pros:
- Ofrece un mayor control sobre los nodos y la infraestructura subyacente. Puedes elegir el tipo de instancia EC2, personalizar nodos, instalar software adicional y ejecutar cargas de trabajo más complejas.
Contras:
- Mayor complejidad operativa: Administrar los nodos EC2 implica tareas como la configuración, el escalamiento y la actualización de la infraestructura, lo que puede requerir más trabajo y conocimientos.
- Posible subutilización de recursos: Si no se administran adecuadamente, los nodos EC2 pueden llevar a la subutilización de recursos, lo que podría aumentar los costos innecesariamente.
Fargate
Pros:
- Fargate elimina la necesidad de administrar y escalar los nodos EC2, lo que simplifica la operación del clúster de Kubernetes. Es ideal para cargas de trabajo de contenedores sin servidor y aplicaciones de microservicios.
Contras:
- Limitaciones de personalización: Fargate está diseñado para la simplicidad y no permite la personalización detallada de los nodos. Esto puede ser una limitación si necesitas configuraciones específicas o software personalizado en los nodos.
- Mayor costo por tiempo de ejecución: Fargate cobra por cada vCPU y GB de memoria utilizados por las tareas de contenedor, lo que puede resultar en un costo más alto en comparación con la gestión manual de nodos EC2 si tienes cargas de trabajo de larga duración y alta utilización de recursos.
Algunos Casos de uso:
EC2: Si tienes requerimientos específicos de hardware, aplicaciones monolíticas o cargas de trabajo que necesitan más flexibilidad y configuración, EKS con nodos EC2 puede ser la elección adecuada.
Fargate: Si buscas una experiencia sin servidor y no quieres preocuparte por la infraestructura subyacente, Fargate es una excelente opción.
Vale recalcar que se pueden utilizar soluciones híbridas, por ejemplo, si se desean desplegar ciertos pods en nodos sin riesgo de actualización (en nodos fargate) y los demás nodos de trabajo en nodos ec2. Este caso de uso es práctico para la instalación de pods de karpenter en fargate, para manejar el scaling de los demás nodos dedicados ec2, desde fargate.
Si deseas más artículos como este, déjanoslo saber aquí, o en nuestro linkedin -> https://www.linkedin.com/company/adeployguru