Contentorizar. NETaplicativos - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Contentorizar. NETaplicativos

Visão geral

Os contêineres são uma forma leve e eficiente de empacotar e implantar aplicativos de maneira consistente e reproduzível. Esta seção explica como você pode usar AWS Fargate um serviço de contêiner sem servidor para reduzir os custos do seu. NETaplicativos e, ao mesmo tempo, fornece infraestrutura escalável e confiável.

Impacto nos custos

Alguns fatores que influenciam a eficácia do uso de contêineres para redução de custos incluem o tamanho e a complexidade do aplicativo, o número de aplicativos que precisam ser implantados e o nível de tráfego e demanda dos aplicativos. Para aplicativos pequenos ou simples, os contêineres podem não oferecer economias de custo significativas em comparação com as abordagens tradicionais de infraestrutura, pois a sobrecarga do gerenciamento dos contêineres e dos serviços associados pode, na verdade, aumentar os custos. No entanto, para aplicativos maiores ou mais complexos, o uso de contêineres pode proporcionar economia de custos, melhorando a utilização de recursos e reduzindo o número de instâncias necessárias.

Recomendamos que você tenha em mente o seguinte ao usar contêineres para reduzir custos:

  • Tamanho e complexidade do aplicativo — Aplicativos maiores e mais complexos são mais adequados para a conteinerização porque tendem a exigir mais recursos e podem se beneficiar mais com a melhor utilização dos recursos.

  • Número de aplicativos — Quanto mais aplicativos sua organização precisar implantar, maior será a economia de custos por meio da conteinerização.

  • Tráfego e demanda — Os aplicativos que experimentam alto tráfego e demanda podem se beneficiar da escalabilidade e elasticidade que os contêineres oferecem. Isso pode levar à economia de custos.

Arquiteturas e sistemas operacionais diferentes afetam os custos dos contêineres. Se você estiver usando contêineres do Windows, os custos podem não diminuir devido a considerações de licenciamento. Os custos de licenciamento são menores ou ausentes com os contêineres Linux. O gráfico a seguir usa uma configuração básica AWS Fargate na região Leste dos EUA (Ohio) com as seguintes configurações: 30 tarefas por mês, cada uma sendo executada por 12 horas com 4 vCPUs e 8 GB de memória alocada.

Você pode escolher entre duas plataformas de computação principais para executar seus contêineres AWS: hosts de contêineres EC2 baseados e sem servidor ou. AWS Fargate Se você usa o Amazon Elastic Container Service (AmazonECS) em vez do Fargate, deve manter a computação em execução (instâncias) para permitir que o mecanismo de posicionamento instancie contêineres quando necessário. Se você usar o Fargate em vez disso, somente a capacidade computacional necessária será provisionada.

O gráfico a seguir mostra a diferença entre contêineres equivalentes usando o Fargate e o Amazon. EC2 Devido à flexibilidade do Fargate, as tarefas de um aplicativo podem ser executadas 12 horas por dia, sem utilização fora do horário de expediente. No entanto, para a AmazonECS, você deve controlar a capacidade computacional usando um grupo EC2 de instâncias do Auto Scaling. Isso pode fazer com que a capacidade funcione 24 horas por dia, o que pode, em última análise, aumentar os custos.

Custos mensais do Fargate versus EC2 custos mensais

Recomendações de otimização de custos

Use contêineres Linux em vez de Windows

Você pode obter economias significativas se usar contêineres Linux em vez de contêineres Windows. Por exemplo, você pode obter uma economia de aproximadamente 45% nos custos de computação se executar o. NETCore no EC2 Linux em vez de executar o. NETEstrutura no EC2 Windows. Você pode obter uma economia adicional de 40% se usar a ARM arquitetura (AWS Graviton) em vez da x86.

Se você planeja executar contêineres baseados em Linux para os existentes. NETAplicativos de estrutura, você deve portar esses aplicativos para versões modernas e multiplataforma do. NET(como. NET6.0) para usar contêineres Linux. Uma consideração importante é pesar o custo da refatoração em comparação com a economia de custos obtida com a redução do custo dos contêineres Linux. Para obter mais informações sobre como portar seus aplicativos para aplicativos modernos. NET, consulte Assistente de portabilidade para. NETna AWS documentação.

Outro benefício de mudar para o moderno. NET(ou seja, longe do. NETEstrutura) é que oportunidades adicionais de modernização se tornem disponíveis. Por exemplo, você pode considerar a rearquitetura de seu aplicativo para uma arquitetura baseada em microsserviços que seja mais escalável, ágil e econômica.

O diagrama a seguir ilustra o processo de tomada de decisão para explorar oportunidades de modernização.

Árvore de decisão de replataforma

Aproveite as vantagens dos Savings Plans

Os contêineres podem ajudar você a aproveitar os Compute Savings Plans para reduzir seus custos com o Fargate. O modelo de desconto flexível oferece os mesmos descontos que as instâncias reservadas conversíveis. O preço do Fargate é baseado nos recursos v CPU e de memória usados desde o momento em que você começa a baixar a imagem do contêiner até o término da ECS tarefa da Amazon (arredondado para o segundo mais próximo). Os Savings Plans for Fargate oferecem economia de até 50% no uso do Fargate em troca do compromisso de usar uma quantidade específica de uso de computação (medida em dólares por hora) por um período de um ou três anos. Você pode usar AWS Cost Explorerpara ajudá-lo a escolher um Savings Plan.

É importante entender que os Compute Savings Plans são aplicados ao uso que gera a maior economia em primeiro lugar. Por exemplo, se você estiver executando uma instância Linux t3.medium us-east-2 e uma instância t3.medium idêntica do Windows, a instância Linux receberá primeiro o benefício do Savings Plan. Isso ocorre porque a instância Linux tem um potencial de economia de 50%, enquanto a mesma instância do Windows tem um potencial de economia de 35%. Se você tiver outros recursos elegíveis do Savings Plan em execução no seu Conta da AWS, como Amazon EC2 ou Lambda, não é necessário que seu Savings Plan seja aplicado primeiro ao Fargate. Para obter mais informações, consulte Entendendo como os Savings Plans se aplicam ao seu AWS uso na documentação dos Savings Plans e na EC2 seção Otimizar gastos para Windows na Amazon deste guia.

Tarefas do Fargate do tamanho certo

É importante garantir que as tarefas do Fargate sejam dimensionadas corretamente para alcançar o grau máximo de otimização de custos. Freqüentemente, os desenvolvedores não têm todas as informações de uso necessárias ao determinar inicialmente as configurações das tarefas do Fargate usadas em seus aplicativos. Isso pode levar ao provisionamento excessivo de tarefas e, em seguida, resultar em gastos desnecessários. Para evitar isso, recomendamos que você carregue os aplicativos de teste em execução no Fargate para entender o desempenho de uma configuração de tarefa específica em diferentes cenários de uso. Você pode usar os resultados do teste de carga, vCPU, alocação de memória das tarefas e políticas de escalonamento automático para encontrar o equilíbrio certo entre desempenho e custo.

O diagrama a seguir mostra como o Compute Optimizer gera recomendações para o tamanho ideal da tarefa e do contêiner.

Recomendações do Compute Optimizer para o tamanho da tarefa e do contêiner

Uma abordagem é usar uma ferramenta de teste de carga, como a descrita em Distributed Load Testing on AWS, para estabelecer uma linha de base para v CPU e utilização de memória. Depois de executar o teste de carga para simular uma carga típica do aplicativo, você pode ajustar a configuração v CPU e a memória da tarefa até que a utilização básica seja alcançada.

Recursos adicionais