Principais Pontos sobre AWS Fargate em Grupo de Usuários de Melbourne

Na minha última apresentação no AWS Melbourne User Group, mergulhei fundo no AWS Fargate, explorando os desafios que ele resolve e as nuances de sua arquitetura. Também compartilhei um pouco da minha trajetória, relembrando minha primeira palestra no AWSUG em 2012.

O evento proporcionou uma visão abrangente sobre o AWS Fargate, desde os seus fundamentos até as considerações de preço e as plataformas de agendamento de contêineres suportadas. A conversa foi além, abordando as limitações em grande escala e as melhores abordagens para diferentes modelos operacionais.

Imagem da apresentação no AWSUG em agosto de 2012

Participando do AWSUG em agosto de 2012

Por que usar AWS Fargate?

O AWS Fargate busca solucionar desafios cruciais enfrentados por equipes de desenvolvimento. Com a crescente popularidade de aplicações 12-factor, os times querem focar na implantação de contêineres, sem se preocupar com a gestão da infraestrutura subjacente.

Manter os sistemas operacionais sempre atualizados pode ser uma tarefa complexa e muitas vezes negligenciada. O AWS Fargate simplifica este processo, permitindo que as equipes se concentrem no que realmente importa: o desenvolvimento e a implantação de suas aplicações.

Além disso, a segurança é um ponto chave. Com o AWS Fargate, a tecnologia Firecracker VM oferece isolamento de segurança para contêineres baseados em Linux e funções Lambda. Os recursos de computação aparecem na sua conta AWS e são compartilhados através de uma interface de rede (ENI).

Essa arquitetura garante que seus contêineres rodem em um ambiente isolado e seguro, protegendo suas aplicações de possíveis vulnerabilidades e ataques. É uma camada extra de proteção que simplifica a gestão da segurança em ambientes de contêineres.

Arquitetura do AWS Fargate

A arquitetura do AWS Fargate é baseada na tecnologia Firecracker VM, que oferece isolamento de segurança para contêineres Linux e funções Lambda. O recurso de computação aparece na sua conta AWS e é compartilhado via uma interface de rede (ENI).

Essa arquitetura permite que você execute contêineres sem se preocupar com a infraestrutura subjacente, como servidores ou máquinas virtuais. Você define os requisitos de CPU e memória para seus contêineres, e o AWS Fargate provisiona e gerencia os recursos necessários.

O resultado é uma plataforma escalável e eficiente para executar aplicações em contêineres, com foco na segurança e na facilidade de uso. É uma solução ideal para empresas que desejam modernizar suas aplicações e adotar práticas de DevOps.

E, falando em modernização, o AWS Fargate se integra facilmente com outras ferramentas e serviços da AWS, permitindo que você construa soluções completas e personalizadas para suas necessidades. Seja para aplicações web, APIs ou microservices, o AWS Fargate oferece a flexibilidade e o desempenho que você precisa.

Considerações sobre Preços

O preço do AWS Fargate varia conforme alguns fatores. Um deles é a escolha entre instâncias Spot e sob demanda. A arquitetura ARM vs X86 também é importante (note que o Windows Fargate ainda não suporta ARM).

O sistema operacional também impacta no preço: usar Windows gera custos adicionais de licenciamento. Por fim, a alocação de CPU e memória é feita a partir de um menu predefinido, já que configurações customizadas não estão disponíveis.

É crucial entender esses fatores para otimizar os custos e garantir que você está pagando apenas pelos recursos que realmente precisa. Planejar a capacidade e escolher a arquitetura correta são passos importantes para economizar.

Além disso, fique de olho nas promoções e descontos oferecidos pela AWS. Eles podem ajudar a reduzir ainda mais os custos do AWS Fargate, tornando-o uma opção ainda mais atraente para sua empresa. Uma boa dica é monitorar regularmente o preço de outros serviços também.

Plataformas de Agendamento de Contêineres

A AWS oferece duas plataformas principais para agendamento de contêineres: o Elastic Kubernetes Service (EKS) e o Elastic Container Service (ECS). Ambas as plataformas suportam a execução de contêineres no AWS Fargate.

Além disso, ambas também permitem a execução de contêineres em instâncias EC2 autogerenciadas (ou nodegroups gerenciados no EKS) e modelos de implantação mistos. Essa flexibilidade permite que você escolha a plataforma que melhor se adapta às suas necessidades e habilidades.

Se você já possui experiência com Kubernetes, o EKS pode ser a escolha certa. Caso contrário, o ECS pode ser uma opção mais simples e fácil de usar. A decisão depende dos seus requisitos específicos e do seu nível de familiaridade com cada plataforma.

Em resumo, tanto o ECS quanto o EKS oferecem suporte ao AWS Fargate, permitindo que você aproveite os benefícios dessa tecnologia, independentemente da plataforma de agendamento de contêineres que você escolher. O importante é avaliar suas necessidades e escolher a opção que melhor se adapta ao seu caso de uso.

ECS vs EKS: Principais Diferenças

O Elastic Container Service (ECS) é altamente opinativo e simples, além de ser específico da AWS. Ele suporta modelos operacionais descentralizados (“você constrói, você executa”) e é adequado para múltiplos clusters ECS.

Já o Elastic Kubernetes Service (EKS) é altamente flexível, com um rico ecossistema de plugins. Ele requer habilidades especializadas para operar de forma eficaz, sendo mais adequado para operações centralizadas e tipicamente usando menos clusters, porém maiores.

A escolha entre ECS e EKS depende do seu modelo operacional e das suas necessidades específicas. Se você busca simplicidade e facilidade de uso, o ECS pode ser a melhor opção. Se você precisa de mais flexibilidade e controle, o EKS pode ser mais adequado.

Além disso, considere o tamanho e a complexidade da sua aplicação. Para aplicações menores e menos complexas, o ECS pode ser suficiente. Para aplicações maiores e mais complexas, o EKS pode oferecer os recursos e a escalabilidade necessários. Lembre-se que a eficiência é fundamental.

Escolhendo a Abordagem Correta

Ao escolher entre ECS e EKS, considere o modelo operacional da sua organização. Para operações centralizadas tradicionais de SRE, o EKS pode ser preferível. Para operações descentralizadas que empoderam as equipes, a simplicidade do ECS pode ser vantajosa.

Independentemente da escolha da plataforma, as ferramentas de golden path focadas no desenvolvedor permanecem cruciais. Elas ajudam a simplificar o processo de desenvolvimento e implantação, permitindo que os desenvolvedores se concentrem no que realmente importa: a criação de aplicações de alta qualidade.

Essas ferramentas podem incluir templates de projetos, pipelines de CI/CD automatizados e outras funcionalidades que facilitam o trabalho dos desenvolvedores. Ao investir nessas ferramentas, você pode aumentar a produtividade da sua equipe e acelerar o ciclo de vida do desenvolvimento de software.

Portanto, ao escolher entre ECS e EKS, não se esqueça de considerar o impacto na experiência do desenvolvedor. Uma plataforma que é fácil de usar e que oferece as ferramentas certas pode fazer toda a diferença no sucesso do seu projeto.

Limitações do AWS Fargate em Escala

Ao operar em grande escala, o AWS Fargate no EKS tem algumas limitações. Por exemplo, não é possível executar daemonsets (requer sidecar pattern). Existe também o 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 um AMI no EKS para reduzir os riscos de segurança em nível de SO. Adicionalmente, executar o kube-scheduler no AWS Fargate (incluindo o Karpenter) enquanto usa o Karpenter para gerenciar nós baseados em EC2 oferece um excelente compromisso.

Essas soluções alternativas podem ajudar a mitigar as limitações do AWS Fargate em grande escala, permitindo que você aproveite os benefícios dessa tecnologia sem comprometer a segurança ou o desempenho. É importante avaliar cuidadosamente suas necessidades e escolher a abordagem que melhor se adapta ao seu caso de uso.

Além disso, fique atento às novidades e atualizações do AWS Fargate. A AWS está constantemente trabalhando para melhorar a plataforma e adicionar novos recursos, o que pode ajudar a resolver algumas das limitações existentes. Acompanhar as novidades é crucial para otimizar o uso da plataforma.

Este é o vídeo da minha apresentação: aqui.

Este conteúdo foi auxiliado por Inteligência Artificial, mas escrito e revisado por um humano.

Leave a Comment