Configurar a arquitetura do conjunto de instruções para uma função do Lambda - AWS Lambda

Configurar a arquitetura do conjunto de instruções para uma função do Lambda

A arquitetura do conjunto de instruções de uma função do Lambda determina o tipo de processador de computador que o Lambda usa para executar a função. O Lambda fornece opções de arquiteturas de conjuntos de instruções:

  • arm64: arquitetura ARM de 64 bits para o processador AWS Graviton2.

  • x86_64: arquitetura x86 de 64 bits para processadores baseados em x86.

nota

A arquitetura arm64 está disponível na maioria das Regiões da AWS. Para obter mais informações, consulte Preços do AWS Lambda. Na tabela de preços de memória, escolha a guia Arm Price (Preço do ARM) e, em seguida, abra a lista suspensa Region (Regiões) para visualizar quais Regiões da AWS oferecem suporte ao arm64 com o Lambda.

Para obter um exemplo de como criar uma função com arquitetura arm64, consulte AWS Lambda Functions Powered by AWS Graviton2 Processor.

Vantagens do uso da arquitetura arm64

As funções do Lambda que usam arquitetura arm64 (processador AWS Graviton2) podem alcançar preços e performance significativamente melhores do que a função equivalente executada na arquitetura x86_64. Considere usar o arm64 para aplicações com uso intenso de computação, como computação de alta performance, codificação de vídeo e workloads de simulação.

A CPU Graviton2 usa o núcleo Neoverse N1 e oferece suporte a Armv8.2 (incluindo extensões CRC e cripto), além de várias outras extensões de arquitetura.

O Graviton2 reduz o tempo de leitura da memória fornecendo um cache L2 maior por vCPU, o que melhora a performance de latência de backends da Web e móveis, microsserviços e sistemas de processamento de dados. O Graviton2 também oferece melhor performance de criptografia e oferece suporte a conjuntos de instruções que melhoram a latência da inferência de machine learning com base em CPU.

Para obter mais informações sobre o AWS Graviton2, consulte Processador AWS Graviton.

Requisitos para a migração para a arquitetura arm64

Ao selecionar uma função do Lambda para migrar para a arquitetura arm64, a fim de garantir uma migração suave, certifique-se de que sua função atenda aos seguintes requisitos:

  • No momento, a função usa um runtime Amazon Linux 2 do Lambda.

  • O pacote de implantação contém apenas componentes de código aberto e código-fonte controlados por você para que você possa fazer as atualizações necessárias para a migração.

  • Se o código da função incluir dependências de terceiros, cada biblioteca ou pacote fornecerá uma versão arm64.

Compatibilidade do código da função com a arquitetura arm64

O código da sua função do Lambda deve ser compatível com a arquitetura do conjunto de instruções da função. Antes de migrar uma função para a arquitetura arm64, observe os seguintes pontos sobre o código da função atual:

  • Se você adicionou o código da função usando o editor de código integrado, seu código provavelmente será executado em qualquer arquitetura sem precisar de modificações.

  • Se você carregou o código da função, deverá carregar um novo código compatível com a arquitetura de destino.

  • Se sua função usa camadas, será necessário verificar cada camada para garantir que ela seja compatível com a nova arquitetura. Se uma camada não for compatível, edite a função para substituir a versão da camada atual por uma versão de camada compatível.

  • Se sua função usa extensões do Lambda, será necessário verificar cada camada para garantir que ela seja compatível com a nova arquitetura.

  • Se sua função usar um tipo de pacote de implantação de imagem de contêiner, você deverá criar uma nova imagem de contêiner compatível com a arquitetura da função.

Como migrar para a arquitetura arm64

Para migrar uma função do Lambda para a arquitetura arm64, recomendamos seguir estas etapas:

  1. Crie a lista de dependências para sua aplicação ou workload. As dependências comuns incluem:

    • Todas as bibliotecas e pacotes usados pela função.

    • As ferramentas que você usa para criar, implantar e testar a função, como compiladores, pacotes de testes, pipelines de integração contínua e entrega contínua (CI/CD), ferramentas de provisionamento e scripts.

    • As extensões do Lambda e ferramentas de terceiros que você usa para monitorar a função na produção.

  2. Para cada uma das dependências, verifique a versão e verifique se há versões arm64 disponíveis.

  3. Crie um ambiente para migrar sua aplicação.

  4. Faça o bootstrap da aplicação.

  5. Teste e depure a aplicação.

  6. Teste a performance da função arm64. Compare a performance com a versão x86_64.

  7. Atualize o pipeline da infraestrutura para oferecer suporte às funções do Lambda em arm64.

  8. Envie a implantação para a produção.

    Por exemplo, use a configuração de roteamento de alias para dividir o tráfego entre as versões x86 e arm64 da função e comparar a performance e a latência.

Para obter mais informações sobre como criar um ambiente de código para a arquitetura arm64, incluindo informações específicas de linguagem para Java, Go, .NET e Python, consulte Conceitos básicos do AWS Graviton no GitHub.

Configuração da arquitetura do conjunto de instruções

Você pode configurar a arquitetura do conjunto de instruções para funções do Lambda novas e existentes usando o console do Lambda, a AWS, SDKs, a AWS Command Line Interface (AWS CLI) ou o AWS CloudFormation. Siga estas etapas para alterar a arquitetura do conjunto de instruções para uma função existente do Lambda no console.

  1. Abra a página Funções do console do Lambda.

  2. Escolha o nome da função para a qual você deseja configurar a arquitetura do conjunto de instruções.

  3. Na guia principal Código, na seção Configurações de runtime, escolha Editar.

  4. Em Arquitetura, escolha a arquitetura do conjunto de instruções a ser usado pela sua função.

  5. Escolha Salvar.

nota

Todos os runtimes do Amazon Linux 2 são compatíveis com as arquiteturas x86_64 e ARM CPU.

Os runtimes que não usam o Amazon Linux 2, como o Go 1.x, não são compatíveis com a arquitetura arm64. Para usar a arquitetura arm64 com o Go 1.x, você pode executar sua função em um runtime provided.al2. Para obter mais informações, consulte as instruções de implantação para pacotes .zip e imagens de contêiner.