Automatizando a migração para AWS com Application Migration Service

Em 2020 fiz um post sobre o tema Migração para AWS com Cloud Endure, mas essa ferramenta foi descontinuada (exceto nas regiões AWS GovCloud e da China), devido a essa mudança, resolvi criar esse tutorial detalhando sobre a migração para a AWS usando o Application Migration Service.

Com o Application Migration Service podemos automatizar o processo de conversão de servidores para execução nativa na nuvem AWS. Com essa solução podemos migrar por exemplo, aplicações como Oracle, SAP e SQL Server executadas em servidores físicos, VMware vSphere, Microsoft Hyper-V e outras infraestruturas on-premises. Nesse tutorial irei demonstrar a migração de um servidor Linux que está em um ambiente on-premises convertendo esse servidor para uma Instância EC2.

Vamos lá!

Primeiramente vamos criar o usuário no Identity and Access Management (IAM) para utilizarmos no AWS Application Migration Service. Acessando a console do IAM, clique na opção Users do menu lateral e depois no botão Create user, conforme imagem abaixo:

Após clicar no botão Create user irá carregar a janela abaixo, onde iremos inserir o nome de usuário (user name), para essa demonstração iremos inserir o nome de usuário migration e clicar no botão Next:

Na próxima janela iremos definir as permissões que esse usuário terá no ambiente da AWS, como iremos utilizá-lo somente para o Application Migration Service, iremos selecionar a política (policy) AWSApplicationMigrationFullAccess e clicar no botão Next conforme imagem abaixo:

A política selecionada acima dará acesso total (full) ao Application Migration Service (MGN) necessárias para esse ambiente de demonstração. Para mais detalhes sobre as políticas (policies) do Application Migration Service, confira abaixo no link:
https://docs.aws.amazon.com/mgn/latest/ug/security-iam-awsmanpol.html

Clicando no botão Next, será carregada a página de Review onde será possível revisar as configurações realizadas. Após revisar e estando de acordo com as configurações, clique no botão Creater user para criar o usuário:

Após a criação do usuário, iremos criar as credenciais para acesso programático. Através dessas credenciais que Application Migration Service terá acesso para realizar a migração do servidor para a AWS. Na console do IAM, selecionamos o usuário que criamos clicando em seu nome (imagem abaixo):

Será aberta uma janela similar a da imagem abaixo, onde iremos clicar no link Create access key:

Na próxima janela, selecione a opção Third-party service, confirme a escolha através do checkbox “I understand…” e clique no botão Next conforme imagem abaixo:

Na próxima tela, clique no botão Create access key:

Clicando no botão, serão exibidas as credenciais que foram criadas, salve-as em um local seguro, caso as perca, será necessário criar novas credenciais, pois não é possível recuperá-las:

Com o usuário e suas credenciais criadas, vamos para a próxima etapa.
Precisaremos agora instalar o AWS Replication Agent que é o agent que irá realizar a replicação do servidor com a AWS para que seja possível migrá-lo posteriormente.

Agora, iremos acessar a console do Application Migration Service para realizar o download do agent na console do Application Migration Service, basta acessar o menu Source servers na barra lateral esquerda, clicar em Add server na tela que irá carregar no lado direito. Confira os passos descritos na imagem abaixo:

Para essa demonstração iremos utilizar como base um servidor Linux, após clicar no botão Add server irá carregar uma janela conforme abaixo:

Descendo a barra de rolagem você verá os itens 5 e 6 onde haverá as seguintes linhas de comando, na primeira (item 5), faz o download do instalador e na segunda (item 6) faz a instalação do agent:

Agora, em posse das linhas de comando, iremos acessar o servidor que iremos migrar para a AWS. Após fazer o download e iniciar a instalação, você verá uma tela similar a tela abaixo, caso tenha sucesso na instalação, aparecerá a seguinte mensagem “The AWS Replication Agent was successfully installed.” conforme a última linha da imagem abaixo:

Caso ocorra algum erro na instalação, confira na página de troubleshooting abaixo, os possíveis erros de instalação:
https://docs.aws.amazon.com/pt_br/mgn/latest/ug/Troubleshooting-Agent-Issues.html

É importante lembrar que para a replicação o Application Migration Service cria uma Instância EC2 de replicação (Replication Server) automaticamente. Por padrão será uma instância t3.small,  essa instância atende muito bem o nosso cenário de teste. Para migração de um ambiente de vários servidores, sugiro que leiam na documentação abaixo:
https://docs.aws.amazon.com/mgn/latest/ug/instance-type.html
Para alterar o tipo de instância basta alterar através do menu Settings / Replication template na console do Application Migration Service.

Com o AWS Replication Agent instalado será possível visualizar o servidor na console do Application Migration Service, na imagem abaixo o servidor já foi replicado para a AWS e já está pronto para seguirmos para a próxima etapa que é subir uma instância EC2 de teste do servidor replicado.

Na janela acima, clicamos no nome do servidor que queremos migrar para a AWS conforme descrito na imagem abaixo:

Ao clicar será carregada a janela com o dashboard de migração, por essa tela será possível acompanhar o status atual do ciclo de vida da Migração desse servidor:

A seguir, iremos na aba Launch settings onde teremos as configurações da Instancia EC2 que irá subir no momento da migração. Essa configuração é puxada através do Launch template padrão, que foi criado pelo próprio serviço (Application Migration Service):

Depois de verificado as configurações da Instância, iremos subir uma instância de teste para validar o funcionamento antes da migração definitiva. Para fazer esse teste precisaremos clicar no botão Test and cutover e depois na opção Launch test instance, conforme demonstrado na imagem abaixo:

Aparecerá um pop-up alertando que a instância que será criada, utilizará como base as configurações do Launch template, basta clicar no botão Launch e o processo de subir a Instância será iniciado.

Nesse momento, o Application Migration Service irá subir uma nova Instância EC2 para realizar o processo de conversão (Tag name: AWS Application Migration Service Conversion Server), esse servidor realiza a conversão dos discos para iniciar na EC2, faz alterações no bootloader, injeta os drives do hypervisor e instala as ferramentas de nuvem (cloud tools). Servidor de conversão criado na imagem abaixo:

Após esse processo e a Instância iniciada, o servidor de conversão (Conversion Server) será deletado, conforme imagem abaixo:

Com a instância de teste iniciada, você poderá acessá-la para testar as aplicações contidas e validar que estão em perfeito funcionamento. Após a validação, voltamos para a console do Application Migration Service para confirmar que a instância está pronta para ser migrada para a AWS e avançarmos para a próxima etapa do ciclo de vida da migração.
Para isso basta clicar no menu Mark as “Ready for cutover”, conforme imagem abaixo:

Após clicar será aberta um pop-up informando que ao confirmar a Instância de teste será deletada:

É interessante que a própria solução vai informando qual a próxima etapa no ciclo de vida da migração, evitando que você fique confuso durante esse processo. É importante lembrar que, nessa demonstração estamos migrando somente 1 servidor, mas em um cenário real poderiam ser vários servidores.

Agora vamos para a etapa de cutover (transição) onde iremos subir a instância EC2 em definitivo para a AWS. Para isso basta clicar no menu Launch cutover instance e confirmar no botão Launch no pop-up que irá carregar, conforme imagens abaixo :

Após os ações acima, o Application Migration Service irá executar os passos realizados no momento de subida da instância EC2 de teste, criando o servidor de conversão e apagando ele após o processo.

Como podemos ver, o servidor foi migrado para a AWS como uma instância EC2 e está pronto para o uso.

Agora vamos finalizar o processo no Application Migration Service. Nesse ponto precisaremos ter certeza que a Instância que subiu está funcionando perfeitamente. Tendo essa certeza, basta clicar no menu Finalize cutover.

Como citado anteriormente, ao clicar no botão Finalize todos os dados de replicação e recursos usados nessa migração serão apagados. Depois que clicar não terá mais volta.

A partir desse momento o ciclo de migração estará finalizado e a Instância EC2 pronta para ser colocada em produção na AWS. 🙂

Para finalizar, clicaremos em Mark as archived no menu Actions e o servidor será removido da janela Source server do Application Migration Service

Concluído! Finalizamos nossa migração de um servidor Linux para a AWS.

Até breve!!! 🤓

Deixe um comentário ou sugestão.