Usando AWS System Manager para In-place Upgrade de Instâncias EC2 Windows

Nesse post irei demonstrar o procedimento de in-place upgrade na Nuvem AWS, onde através do AWS System Manager, usando automation document iremos atualizar a versão do Windows sem remover as aplicações instaladas, ou seja, não teremos a necessidade de fazer uma nova instalação do Windows e migrar as aplicações manualmente. Além disso, esse upgrade ajudará a mitigar os riscos de segurança e compliance do seu ambiente possibilitando uso de versões mais atuais do Sistema Operacional e poderá reduzir o tempo necessário para a migração para uma nova versão do Windows Server.

Os caminhos suportados para atualização (DE-PARA), são os seguintes:
Windows Server 2008 R2 para Windows Server 2012 R2.
Windows Server 2012 R2 para Windows Server 2016.
Windows Server 2012 R2 para Windows Server 2019.
Windows Server 2016 para Windows Server 2019.

Inicialmente, iremos aos pré-requisitos necessários para a atualização:
– É recomendado ter 20 GB de espaço no disco de boot;
– Agent SSM instalado na EC2 que será atualizada: https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-ssm-win.html
– Esse Automation funciona somente em instâncias com o EBS Volume Root não encriptado. Instâncias com EBS encriptado, o Automation irá falhar;
– Esse Automation funciona somente nas instâncias com as versões Windows Server 2008 R2, 2012 R2 e 2016 edições Standard e Datacenter.

Limitações:
Esse Automation não dará suporte ao upgrade de Domain Controllers, Clusters ou Sistemas Operacionais Windows de desktop. Também não são suportados instâncias com as seguintes Windows Server Roles:

– Remote Desktop Session Host (RDSH)
– Remote Desktop Connection Broker (RDCB)
– Remote Desktop Virtualization Host (RDVH)
– Remote Desktop Web Access (RDWA)

Referências:
https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-awsec2-CloneInstanceAndUpgradeWindows.html

Cenário:
Na demonstração abaixo, estou realizando o upgrade de uma Instância EC2 com Windows Server 2012 R2 com IIS para o Windows Server 2019 mantendo todas as aplicações instaladas. Foi criada uma página simples em HTML no IIS para validação do funcionamento da aplicação após o upgrade.

Para que o upgrade funcione, precisaremos dar permissão para que o AWS System Manager consiga executar o upgrade na Instância EC2. Com isso, a nossa primeira etapa será criar uma Role no IAM com as devidas permissões. Então vamos lá!

Acessando a console do IAM, clique na opção Role do menu lateral e depois no botão Create role, conforme imagem abaixo:

Na tela abaixo, selecione EC2 e clique no botão Next: Permissions.

A seguir, iremos dar um “Attach” na policy AmazonEC2RoleforSSM para que o AWS System Manager tenha as permissões necessárias para executar o procedimento de upgrade.

Na etapa abaixo, você poderá especificar as Tags. Mas para essa demonstração não utilizei Tags.

Para a etapa final, colocaremos um nome para a Role.

Ao clicar no botão Create role irá aparecer a mensagem seguinte, informando que a Role foi criada com sucesso. Anote o nome da Role, pois iremos utilizá-la na etapa de execução do Automation Document.

Com a Role criada e suas devidas permissões, vamos para o que interessa. Iremos acessar o AWS System Manager e utilizar o recurso de Automation. Na tela do System Manager iremos clicar na opção Automation, no Menu lateral e depois no botão Execute automation conforme a descrição da imagem abaixo:

Será carregado uma tela onde você poderá pesquisar e selecionar o Document desejado. Para esse post iremos utilizar o AWSEC2-CloneInstanceAndUpgradeWindows, basta você digitar uma pequena parte do nome conforme a imagem abaixo:

Após pesquisar o nome do Document, você deverá selecionar o Document AWSEC2-CloneInstanceAndUpgradeWindows e clicar no botão Next conforme as imagens abaixo:

Na próxima etapa, iremos configurar o parâmetros para execução do Automation Document:

Nas imagens abaixo, definimos os parâmetros para a execução do Automation, inserindo o ID da Instância que será atualizada, a Role do IAM que criamos, versão do Windows que queremos que a Instância seja atualizada e a subnet onde o processo de atualização será executado. É recomendando utilizar uma subnet para o Automation, diferente da subnet onde está a Instância que será atualizada. A subnet utilizada deverá ter ainda, conexão de saída para os serviços AWS, S3 e Microsoft para download de patches (Windows Update).
Após inserir os parâmetros e clicar no botão Execute o processo de in-place upgrade será iniciado:

Com o Automation em execução, podemos acompanhar com detalhes todas as etapas do procedimento de upgrade conforme as imagens:

Esse procedimento poderá levar algumas horas para finalizar e durante a execução do procedimento, podemos verificar algumas modificações no ambiente. Na execução foi criada uma instância para a realização do procedimento de upgrade e executado o terminate da mesma, após o término do procedimento conforme as imagens:

Como pode ser visto na próxima imagem, o Automation criou uma AMI da Instância original e uma AMI de “pre-upgrade” para instalação dos drives e updates necessários.

Após o término do procedimento de upgrade, será criada uma AMI da sua instância atualizada com o Windows Server 2019 com o nome similar ao da imagem:

Após dar um Launch na AMI atualizada com Windows Server 2019, foi possível acessar a página web publicada no IIS, que havia sido criada ainda na Instância com o Windows Server 2012 .

Com isso podemos concluir que esse documento do AWS System Manager Automation pode ser útil para que você possa atualizar o seu ambiente de Instâncias EC2 Windows, minimizando os riscos de segurança e compliance.

Espero que esse post possa contribuir/auxiliar a comunidade de Cloud AWS.

Até breve!!!