A Amazon Web Services (AWS) oferece uma gama de serviços de computação em nuvem para atender às necessidades das empresas. Em sua oferta de serviços, estão incluídos o elastic compute service ‘serviço de computação elástica’ (ECS) e a elastic compute cloud ‘nuvem de computação elástica’ (EC2). Escolher entre esses dois serviços pode ser difícil, pois um se concentra na virtualização enquanto o outro gerencia a conteinerização.
No artigo a seguir, exploraremos as diferenças entre o Amazon ECS e o EC2 para ajudá-lo a entender melhor qual é o serviço ideal para o seu caso de uso.
Amazon EC2 significa “elastic compute cloud”. O EC2 permite que as empresas acessem recursos de computação em nuvem sob demanda. Há mais de 500 instâncias para escolher, com as mais recentes tecnologias de processador, armazenamento, sistema operacional e rede.
O Amazon EC2 é semelhante a um serviço de máquina virtual (VM) gerenciada, onde instâncias de VM pré-configuradas podem ser implantadas sem o ônus do gerenciamento. As empresas também podem fazer upload de configurações de VMs no local para o EC2 com conversão e implantação automatizadas na nuvem por meio de exportação/importação de VMs.
As instâncias do EC2 são cobradas por segundo ou por hora, com preços de pagamento conforme o uso (PAYG) para aliviar os custos iniciais. A AWS também controla a configuração e a infraestrutura da VM, para que as empresas possam acessar diretamente os recursos de computação sem dor de cabeça.
Isso é vantajoso quando o dimensionamento elástico entra em ação para um grupo de instâncias EC2. A AWS aumentará automaticamente as alocações de recursos para manter o desempenho e a estabilidade e, ao mesmo tempo, diminuirá o dimensionamento durante os períodos mais calmos para reduzir as despesas operacionais (OpEx).
O maior problema para a maioria das empresas é a continuidade dos dados. Os dados do EC2 são retidos apenas enquanto a instância está ativa, e o descomissionamento faz com que os dados sejam apagados. Felizmente, as empresas podem reter dados da instância da EC2 usando o Elastic Block Store ‘Armazenamento em bloco elástico’ (EBS) ou fazer backup dos dados do EC2 em um bloco do Amazon Simple Storage Service (S3).
Amazon ECS significa “Elastic Container Service”. Enquanto a EC2 usa virtualização e máquinas virtuais (VMs), o Amazon ECS é usado para gerenciar aplicativos de contêineres Docker. É um serviço de orquestração de contêineres totalmente gerenciado que funciona de forma semelhante ao Kubernetes. O Amazon ECS orquestra contêineres Docker em execução via Amazon EC2.
Em vez de implantar uma nova instância EC2 para escalar, o Amazon ECS usa clusters de contêineres. Cada cluster contém várias instâncias EC2, governadas pelo orquestrador Amazon ECS para facilitar o dimensionamento e os efeitos de falhas.
Em resumo, o ECS permite que as empresas implantem aplicativos em contêineres e os orquestrem facilmente, sem a sobrecarga de gerenciamento da infraestrutura.
A maior diferença do EC2 é que ele implanta instâncias de VM isoladas com suporte de dimensionamento automático, e o ECS implanta clusters escaláveis de contêineres Docker gerenciados.
As empresas podem usar o ECS para dimensionar aplicativos da web, executar processamento em lote e executar serviços em um ambiente híbrido para fornecer melhores serviços aos usuários.
O EC2 pode funcionar sem a necessidade de contêineres Docker. Por esse motivo, ele pode oferecer maior flexibilidade com amplo suporte a SO e configurações de hardware. Essa flexibilidade vem com uma carga adicional de gerenciamento, que o orquestrador ECS ajuda as empresas a evitar.
Uma explicação mais técnica para instâncias de VM vs. clusters é o dimensionamento vertical e horizontal. O dimensionamento horizontal envolve adicionar nós adicionais, e o dimensionamento vertical envolve adicionar mais potência às máquinas atuais.
Dimensionamento vertical – Adiciona mais potência de computação adicional a uma instância ou nó existente. Um nó é usado para controlar um cluster de contêineres do Docker, onde mais contêineres podem ser adicionados a um cluster para dimensionar verticalmente.
Dimensionamento Horizontal – Não adiciona poder de computação a instâncias ou nós existentes. Em vez disso, cria uma nova instância e redistribui uniformemente as cargas de trabalho entre o grupo de instâncias.
O dimensionamento vertical aumenta a disponibilidade do poder de computação, mas os aplicativos se tornam dependentes de um único nó ou grupo de cluster. Se o nó falhar, ou o controlador de cluster apresentar mau funcionamento, um aplicativo ou site inteiro poderá ficar off-line até ser corrigido.
O dimensionamento horizontal cria mais complexidade, mas espalha a dependência de serviço em várias instâncias. Se uma instância falhar, outra instância pode absorver a carga de trabalho enquanto a correção é realizada.
ECS e EC2 frequentemente trabalham juntos, mas não é necessário. EC2 é executado em muitas instâncias e ambientes excelentes com o ECS ao lado. Aqui estão alguns de seus casos de uso:
Selecionar e implantar uma imagem de máquina (MI) de distribuição do Windows Server ou Linux para executar aplicativos corporativos.
Criar e implantar aplicativos personalizados na nuvem.
Criar um ambiente ou tipo de instância altamente configurável com regras de segurança, proteção de dados, gerenciamento de acesso de identidade (IAM) e de rede aplicadas.
Aproveitar a flexibilidade para definir capacidades mínimas, desejadas e máximas, ou usar grupos de dimensionamento automático para controlar a utilização de recursos do aplicativo.
Implantar aplicativos em contêineres usando o Docker sem o Kubernetes como camada de orquestração.
Apoioar uma transição da arquitetura monolítica para microsserviços.
Adicionar o Amazon ECS Anywhere para implantar contêineres em ambientes de várias nuvens, como o Google Cloud Platform (GCP) e o Microsoft Azure.
Balanceamento de carga entre vários servidores em cluster usando AWS Elastic Load Balancers (ELBs).
Embora existam muitos tipos de inicialização do EC2, há dois tipos de inicialização do Amazon ECS que as equipes de DevOps podem escolher. Os usuários podem escolher um tipo de inicialização do ECS quando executam uma tarefa autônoma ou criam um serviço para determinar a infraestrutura na qual as tarefas e os serviços estão hospedados.
EC2 – Este tipo de inicialização permite a implementação e o gerenciamento de clusters de instâncias EC2. Ele oferece controle total sobre instâncias e clusters, embora com uma carga de gerenciamento maior.
AWS Fargate – Esta é uma versão sem servidor do EC2, onde a Amazon controla a infraestrutura e a configuração para que as empresas possam se concentrar na execução de seus aplicativos e tarefas.
Para cargas de trabalho maiores com altos requisitos de CPU e memória, as empresas podem otimizar melhor a relação preço/desempenho usando o Amazon EC2.
Caso contrário, o AWS Fargate é muito mais adequado para cargas de trabalho que exigem baixa sobrecarga. O Fargate também é perfeito para cargas de trabalho de processamento contínuo e processamento em lote. Como o AWS Fargate automatiza o dimensionamento com faturamento por segundo, ele pode reduzir significativamente os custos em comparação ao EC2.
A Trianz é um parceiro de consultoria avançada da AWS com ampla experiência no gerenciamento de cargas de trabalho do EC2 e do ECS. Nossa equipe de consultores pode ajudar você a determinar quais serviços da Amazon são ideais para suas cargas de trabalho de aplicativos e modernizar sistematicamente os aplicativos para obter maior desempenho, funcionalidade e eficiência de custos.