Use instâncias e contêineres do Graviton - 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á.

Use instâncias e contêineres do Graviton

Visão geral

AWS As instâncias do Graviton são alimentadas por ARM processadores projetados AWS para oferecer a melhor relação preço/desempenho para suas cargas de trabalho em nuvem executadas no Amazon Elastic Compute Cloud (AmazonEC2), incluindo contêineres em execução. AWS Atualmente, existem três gerações do Graviton disponíveis para uso na AmazonEC2. Este guia se concentra no uso do Graviton 2 e 3 com. NETaplicativos porque há uma economia significativa quando você usa as versões mais recentes do Graviton. Lembre-se de que as instâncias do Graviton executam somente o sistema operacional Linux. Como resultado, as instâncias Graviton são uma forte oferta para. NETrodam em Linux, mas não são uma opção para o sistema operacional Windows ou antigo. NETAplicativos de estrutura.

O Graviton 3 é 60% mais eficiente do que EC2 instâncias comparáveis, com desempenho até 40% melhor. Este guia se concentra nos benefícios de custo do uso do Graviton, mas é importante observar que o Graviton oferece os benefícios adicionais de melhorias de desempenho e maior sustentabilidade ambiental.

Impacto nos custos

Você pode obter até 45% de economia ao mudar para o Graviton. Depois de refatorar qualquer legado. NETFramework de aplicativos para um moderno. NETversão, você desbloqueia a capacidade de usar instâncias do Graviton. Mudar para Graviton é uma técnica eficaz de otimização de custos para. NETdesenvolvedores.

O exemplo na tabela a seguir mostra o potencial de melhorias de desempenho que você pode obter migrando para instâncias do Graviton.

Gráfico de desempenho do Graviton

Para obter uma análise completa e uma explicação da abordagem de benchmarking usada para criar os resultados no diagrama anterior, consulte Powering. NET5 com AWS Graviton2: Benchmarks in the AWS Compute Blog.

Uma das razões para a maior eficiência é a diferença no significado de v CPU entre x86 e Graviton. Na arquitetura x86, um v CPU é um núcleo lógico obtido pelo hyperthreading. No Graviton, v CPU equivale a um núcleo físico que permite que o v esteja totalmente comprometido com CPU a carga de trabalho.

O resultado com o Graviton2 é um desempenho de preço 40% melhor do que instâncias x86/x64 comparáveis. Graviton3 oferece o seguinte em relação ao Graviton2:

  • Um perfil de desempenho aprimorado com desempenho até 25% melhor

  • Desempenho de ponto flutuante até duas vezes maior

  • Desempenho da carga de trabalho criptográfica até duas vezes mais rápido

  • Desempenho de aprendizado de máquina até três vezes melhor

Além disso, o Graviton3 é a primeira instância na nuvem a apresentar DDR5 memória.

As tabelas a seguir mostram a diferença na economia de custos entre instâncias baseadas em Graviton e instâncias equivalentes baseadas em x86.

Esta tabela mostra uma economia de Graviton de 19,20 por cento.

Tipo de instância Arquitetura v CPU Memória (GB) Custo por hora (sob demanda)
t4g.xlarge ARM 4 16 $0,134
t3.xlarge x86 4 16 0,164 US$

Esta tabela mostra uma economia de Graviton de 14,99 por cento.

Tipo de instância Arquitetura v CPU Memória (GB) Custo por hora (sob demanda)
c7g.4xlarge ARM 16 32 $0,5781
c6i.4xlarge x86 16 32 $0.6800

É importante testar o perfil de desempenho do seu aplicativo ao considerar o Graviton. O Graviton não substitui práticas sólidas de desenvolvimento de software. Você pode usar os testes para verificar se está aproveitando ao máximo seus recursos computacionais subjacentes.

Recomendações de otimização de custos

Há várias maneiras de aproveitar os processadores/instâncias Graviton. Esta seção mostra as mudanças necessárias para passar do uso de uma máquina com arquitetura x86 para instâncias Graviton (). ARM

Alterar a configuração de tempo de execução no Lambda

Recomendamos que você ative as configurações de tempo de execução AWS Lambda. Para obter mais informações, consulte Modificação do ambiente de execução na documentação do Lambda. Desde. NETé uma linguagem compilada, você deve seguir um processo de construção para que isso funcione. Para obter um exemplo de como fazer isso, consulte. NETem Graviton em GitHub.

Contêineres

Para uma carga de trabalho em contêineres, crie uma imagem de contêiner com várias arquiteturas. Você pode fazer isso especificando várias arquiteturas no comando Docker build. Por exemplo:

docker buildx build -t "myImageName:latest" --platform linux/amd64,linux/arm64 --push .

Você também pode usar uma ferramenta AWS Cloud Development Kit (AWS CDK) para ajudar a orquestrar a compilação. Para exemplos do Docker, consulte Criação de imagens de vários arcos para Arm e x86 com desktops Docker na documentação do Docker.

Amazon EC2

Para migrar ARM de x86/x64, defina a ARM arquitetura na etapa de compilação. No Visual Studio, você pode criar um ARM64CPU. Para obter instruções, consulte Para configurar um projeto para atingir o Arm64 e outras plataformas na documentação da Microsoft.

Se você estiver usando o. NETCLIe, em seguida, executar a compilação em uma ARM máquina produz uma compilação compatível com Graviton. Para ver uma demonstração, assista Accelerate. NETDesempenho 6 com Arm64 no AWS Graviton2 ligado. YouTube Problemas de dependência resultarão em erros de tempo de compilação que podem ser resolvidos individualmente. Desde que existam ARM bibliotecas para qualquer dependência, a transição deve ser relativamente simples.

Recursos adicionais