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á.
Conteinerizar aplicações .NET
Visão geral do
Os contêineres são uma forma leve e eficiente de empacotar e implantar aplicações de maneira consistente e reproduzível. Esta seção explica como você pode usar o AWS Fargate, um serviço de contêiner sem servidor para reduzir os custos de suas aplicações .NET e, ao mesmo tempo, fornecer uma infraestrutura escalável e confiável.
Impacto do custo
Alguns fatores que influenciam a eficácia do uso de contêineres para a redução de custos incluem o tamanho e a complexidade da aplicação, o número de aplicações que precisam ser implantadas e o nível de tráfego e demanda das aplicações. Para aplicações pequenas ou simples, os contêineres podem não oferecer reduções 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 aplicações maiores ou mais complexas, o uso de contêineres pode proporcionar uma redução 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 redução de custos:
-
Tamanho e complexidade da aplicação: aplicações maiores e mais complexas são mais adequadas para a conteinerização porque tendem a exigir mais recursos e podem se beneficiar mais com a melhor utilização deles.
-
Número de aplicações: quanto mais aplicações sua organização precisar implantar, maior será a redução de custos por meio da conteinerização.
-
Tráfego e demanda: as aplicações que experimentam alto tráfego e demanda podem se beneficiar da escalabilidade e elasticidade que os contêineres oferecem. Isso pode resultar em uma redução de custos.
Arquiteturas e sistemas operacionais diferentes afetam os custos dos contêineres. Se você estiver usando contêineres Windows, os custos podem não diminuir devido a considerações de licenciamento. Os custos de licenciamento são menores ou não existem 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 V CPUs 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
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 uma aplicação podem ser executadas 12 horas por dia, sem utilização fora do horário de pico. No entanto, para o Amazon ECS, você deve controlar a capacidade computacional usando um grupo de instâncias do Auto Scaling. EC2 Isso pode fazer com que a capacidade opere ininterruptamente, 24 horas por dia, o que pode, em última análise, aumentar os custos.
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.NET Core no EC2 Linux em vez de executar o.NET Framework no EC2 Windows. Você pode obter uma economia adicional de 40% se usar a arquitetura ARM (AWS Graviton) em vez da x86.
Se você planeja executar contêineres baseados em Linux para aplicações .NET Framework existentes, você deve portar essas aplicações para versões modernas e multiplataforma do .NET (como o.NET 6.0
Outro benefício de migrar para o .NET Modern (ou seja, sair do .NET Framework) é que oportunidades adicionais de modernização ficam disponíveis. Por exemplo, você pode considerar a redefinição da arquitetura de sua aplicação 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.
Aproveitar os Savings Plans
Os contêineres podem ajudar você a aproveitar os Savings Plans para computação
É importante entender que os Savings Plans para computação são aplicadoa ao uso que gera a maior economia em primeiro lugar. Por exemplo, se você estiver executando uma instância t3.medium do Linux em us-east-2 e uma instância t3.medium idêntica do Windows, a instância do Linux receberá primeiro o benefício dos Savings Plans. Isso ocorre porque a instância do 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 Plans em execução no seu Conta da AWS, como Amazon EC2 ou Lambda, não é necessário que seus Savings Plans sejam aplicados 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. Frequentemente, 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 suas aplicações. Isso pode levar ao provisionamento excessivo de tarefas e, em seguida, resultar em gastos desnecessários. Para evitar isso, recomendamos que você carregue as aplicações de teste em execução no Fargate para entender a performance de uma configuração de tarefa específica em diferentes cenários de uso. Você pode usar os resultados do teste de carga, a vCPU, a alocação de memória das tarefas e as políticas de ajuste de escala automático para encontrar o equilíbrio certo entre performance e custo.
O diagrama a seguir mostra como o Compute Optimizer gera recomendações para o tamanho ideal da tarefa e do contêiner.
Uma abordagem é usar uma ferramenta de teste de carga, como a descrita em Distributed Load Testing on AWS
Recursos adicionais do
-
Cost Optimization Checklist for Amazon ECS and AWS Fargate
(publicação do blog AWS Containers) -
Otimização teórica de custos pelo tipo de lançamento do Amazon ECS: Fargate EC2
vs AWS (postagem no blog da Containers) -
Assistente de portabilidade para.NET
(AWS documentação) -
Teste de carga distribuída em AWS
(Biblioteca de AWS soluções) -
AWS Compute Optimizer lança suporte para serviços Amazon ECS em AWS Fargate(publicação no
blog AWS Cloud Financial Management)