Na última noite, foi realizada uma apresentação no AWS Melbourne User Group, aprofundando o conhecimento sobre AWS Fargate. A discussão começou relembrando a primeira apresentação no AWSUG em 2012, marcando um ponto de partida para explorar a evolução e os desafios que o AWS Fargate busca resolver.
Apresentação no AWSUG em agosto de 2012
Por que AWS Fargate?
O AWS Fargate visa solucionar desafios cruciais enfrentados por equipes de desenvolvimento, permitindo que se concentrem na implantação de containers sem a necessidade de gerenciar a infraestrutura subjacente. Manter os sistemas operacionais atualizados é uma tarefa complexa e muitas vezes negligenciada, mas o AWS Fargate simplifica esse processo.
Arquitetura do AWS Fargate
O AWS Fargate (versão Linux) utiliza a tecnologia Firecracker VM, proporcionando isolamento de segurança para containers baseados em Linux e funções Lambda. O recurso de computação aparece na sua conta AWS e é compartilhado através de uma interface de rede (ENI).
Considerações sobre Preços
Os preços do AWS Fargate variam de acordo com diversos fatores:
- Instâncias Spot vs. sob demanda
- Arquitetura ARM vs. X86 (importante: o Windows Fargate ainda não suporta ARM)
- Windows vs. Linux (Windows tem custos de licenciamento adicionais)
- Compartilhamento de CPU e alocação de memória a partir de um menu predefinido (configurações personalizadas não estão disponíveis)
Plataformas de Agendamento de Containers
A AWS oferece duas plataformas principais para o agendamento de containers:
- Elastic Kubernetes Service (EKS)
- Elastic Container Service (ECS)
Ambas as plataformas suportam:
- Execução de containers no AWS Fargate
- Execução de containers em instâncias EC2 autogerenciadas (ou nodegroups gerenciados no EKS)
- Modelos de implantação mistos
ECS vs. EKS: Principais Diferenças
ECS:
- Altamente opinativo e simples
- Específico da AWS
- Suporta modelos operacionais descentralizados (“você constrói, você executa”)
- Adequado para vários clusters ECS
EKS:
- Altamente flexível com um ecossistema de plugins rico
- Requer habilidades especializadas para operar de forma eficaz
- Mais adequado para operações centralizadas
- Normalmente usa menos clusters, porém maiores
Escolhendo a Abordagem Certa
Ao decidir entre ECS e EKS, considere o modelo operacional da sua organização:
- Para operações SRE centralizadas tradicionais, o EKS pode ser preferível
- Para operações descentralizadas que capacitam as equipes, a simplicidade do ECS pode ser vantajosa
Observação: Independentemente da escolha da plataforma, ferramentas golden path focadas no desenvolvedor permanecem cruciais!
Limitações do AWS Fargate em Escala
Ao operar em grande escala, o AWS Fargate no EKS apresenta algumas limitações:
- Não pode executar daemonsets (requer o padrão sidecar)
- Risco de overprovisioning se os requisitos do pod não se alinharem com as opções de lançamento do AWS Fargate
Para uma abordagem intermediária, considere o Bottlerocket como uma AMI no EKS para reduzir os riscos de segurança no nível do sistema operacional. Além disso, executar o kube-scheduler no AWS Fargate (incluindo Karpenter) enquanto usa Karpenter para gerenciar nós baseados em EC2 oferece um excelente compromisso.
O AWS Fargate oferece flexibilidade na escolha de plataformas de agendamento de containers, com ECS e EKS apresentando características distintas. A decisão entre os dois deve levar em conta o modelo operacional da organização, com o ECS sendo mais adequado para equipes descentralizadas e o EKS para operações centralizadas. A escolha da plataforma de agendamento de containers é crucial para otimizar o uso do AWS Fargate.
Ainda, para quem busca conhecer mais sobre o mundo da tecnologia, é sempre bom ficar atento as novidades, como a 10 novidades de tecnologia para começar o dia (12/03)
Este conteúdo foi auxiliado por Inteligência Artificial, mas escrito e revisado por um humano.