Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Novo ciclo de upgrade com o Amazon Linux 2023

By Mikhail SokolovDec 5, 20234 min read

Esta página também está disponível em English, Deutsch, Español, Français, Italiano e 日本語.

O Amazon Linux 2023 está disponível ao público desde 15 de março de 2023. Com essa atualização, versões mais antigas como o Amazon Linux 2 ficam cada vez mais distantes do famoso "Latest and Greatest". Vamos entender por que isso importa e o que fazer a respeito.

Ciclo de vida previsível

O Amazon Linux 2023 chega sem grandes surpresas como a próxima versão major do Amazon Linux. Desta vez, a AWS se comprometeu: a partir do AL2023, uma nova versão major do Amazon Linux será lançada a cada 2 anos, e cada uma delas terá suporte por 5 anos.

  • O suporte ao Amazon Linux 1 será encerrado em 31 de dezembro de 2023.
  • O Amazon Linux 2 terá suporte até 30 de junho de 2025, com atualizações menores.

O upgrade in-place é um recurso que permite atualizar a versão da imagem Linux na mesma máquina. O Ubuntu oferece esse recurso, mas ainda não vimos algo parecido para o Amazon Linux. A AWS não confirmou nem descartou planos para isso na transição do Amazon Linux 2023 para o Amazon Linux 2025.

O que há de novo?

Sem listar todas as mudanças, mas destacando as mais relevantes do ponto de vista de Cloud Operations, veja algumas novidades do Amazon Linux em 2023.

  • O Python 2.7 foi substituído pelo Python 3.
  • Por padrão, os upgrades acontecem entre versões menores. Para receber um upgrade de versão major, é preciso indicar a versão como destino do upgrade.
  • O AL2023 já vem com o AWS CLI versão 2.
  • O AL2023 não inclui mais nenhum pacote de userspace de 32 bits.

Ficando para trás

Quando este artigo foi escrito, a versão mais recente do Docker disponível para o Amazon Linux 2 era a Docker 20.10.25. No AL2023, é a Docker 24.0.5.

As duas são instaladas com um comando simples:

$ yum install docker

Imagine que você quer usar a versão mais recente do Docker, mas continuar com o Linux 2. A documentação oficial do Docker traz instruções para as distros mais populares, mas não dá suporte a Amazon Machine Images.

Se você verificar a imagem base do Linux 2 com $cat /etc/os-release, o retorno é:

NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"
SUPPORT_END="2025–06–30"

Você pode achar que basta seguir a instalação para CentOS para resolver o problema, mas, conforme você se aprofunda — como o fio que você puxa de uma blusa de lã, a lista de coisas a considerar só cresce. Vão aparecer dependências faltando, problemas na hora de instalá-las e por aí vai.

No fim das contas, mesmo que você manje muito de Linux, vai acabar com uma solução que só você sabe manter. E todos os bugs e instabilidades serão só seus.

Em vez disso, vale mais a pena simplesmente usar outra instância com uma imagem mais nova. Sim, aplicações customizadas ainda vão precisar ser reinstaladas e os dados, migrados. Mas, com imagens mais novas, tudo deve funcionar de cara.

Boas práticas

A boa prática é apostar na substituição de instâncias, que é muito mais confiável e previsível tanto para avançar quanto para voltar atrás.

Se você tem uma instância com Linux 2 que quer atualizar, este é o caminho mais curto, mantendo toda a configuração de rede do lado da AWS:

  1. Crie um snapshot do volume root do Linux 2
  2. Crie um novo volume a partir do snapshot
  3. Crie uma nova instância com a AMI — Amazon Linux 2023
  4. Anexe o volume criado à nova instância
  5. Instale os softwares necessários
  6. Mova os dados do volume anexado para o disco principal
  7. Desanexe o volume extra
  8. Teste o ambiente

Depois de configurar e testar a nova instância com Amazon Linux 2023

Como substituir a instância antiga:

  1. Crie um snapshot da instância testada (Amazon Linux 2023)
  2. Na Network Interface antiga (do Amazon Linux 2)

Altere o comportamento de encerramento para "Delete on instance termination: Disabled" 3. Encerre a instância antiga (começa o downtime) 4. Crie uma nova instância com o snapshot do (Amazon Linux 2023)

Como network interface, escolha a ENI existente 5. A nova instância fica pronta (termina o downtime) 6. Teste o ambiente e os sistemas que dependem dele