Este tutorial orienta você no processo de descoberta e coleta de dados em instâncias de máquina virtual (VM) do EC2 a serem usadas para avaliação técnica off-line usando a CLI de discovery client da Central de migração.
Objetivos
Neste tutorial, você aprenderá a fazer o seguinte:
- Fazer o download da CLI
mcdc
para avaliar suas VMs do AWS EC2. - Realizar a descoberta de inventário do AWS EC2
- Coletar informações no nível do convidado em todas as VMs em uma região do EC2 usando o AWS Session Manager ou o SSH.
- Gerar um relatório de avaliação off-line.
- (Avançado) Modifique os scripts de acordo com suas necessidades.
- (Avançado) Escrever um script de orquestração do zero.
Custos
Este tutorial não gera custos com o Google Cloud.
É pouco provável que isso afete os custos da AWS.
Antes de começar
Os pré-requisitos dependem de como você se conecta às VMs do EC2.
Gerenciador de sessão
Prepare uma máquina Linux para instalar e executar a CLI
mcdc
. A máquina Linux precisa ter os seguintes requisitos mínimos:- Versão do kernel do Linux 2.6.23 ou posterior
- 4 GB de RAM e 10 GB de espaço em disco
- CLI da AWS instalada
Verifique se a CLI da AWS tem as seguintes permissões:
- Pode ligar para
aws ssm describe-instance-information
- Pode ligar para
aws ssm start-session
- Pode ligar para
SSH
Prepare uma máquina Linux para instalar e executar a CLI
mcdc
. A máquina Linux precisa atender aos seguintes requisitos mínimos:- Versão do kernel do Linux 2.6.23 ou posterior
- 4 GB de RAM e 10 GB de espaço em disco
- CLI da AWS instalada
- Conectividade de rede com instâncias do EC2 (possivelmente por meio de um proxy)
Verifique se a CLI da AWS tem as seguintes permissões:
- Pode ligar para
aws ec2 describe-instances
- Conexão de instâncias
- Pode ligar para
Faça o download da CLI mcdc
- Conecte-se à máquina Linux:
ssh MACHINE_IP
Substitua MACHINE_IP pelo endereço IP da sua máquina Linux.
- Faça o download da versão mais recente da CLI
mcdc
e torne-a executável:curl -O "https://mcdc-release.storage.googleapis.com/$(curl -s https://mcdc-release.storage.googleapis.com/latest)/mcdc" chmod +x mcdc
- Adicione a CLI
mcdc
ao caminho do shell:PATH=$PATH:`pwd`
Realizar uma descoberta de inventário da AWS
Execute a descoberta de inventário:
./mcdc discover aws -r REGION
Substitua REGION pela região das suas VMs do EC2.
A CLI
mcdc
solicitará o ID da chave de acesso e a chave de acesso secreta.A saída do comando de descoberta será semelhante a esta:
Collected 166 VMs [✓] Collection completed.
Realizar descoberta de convidados
É possível realizar a descoberta de convidados usando o Gerenciador de sessões ou o SSH.
Gerenciador de sessão
Esse método usa o Gerenciador de sessões do Gerenciador de sistemas da AWS para realizar a descoberta de convidados em todas as VMs com o agente SSM instalado. O agente SSM é instalado por padrão na maioria das AMIs fornecidas pela Amazon e pode ser instalado manualmente em outras.
Verifique se todas as VMs têm um papel do IAM que permita se conectar usando o gerenciador de sessões. Para mais informações, consulte a documentação da AWS.
Verifique se todas as VMs que você quer coletar estão ativadas.
Execute a descoberta de convidados usando o script de coleção de convidados ssm do repositório Migrate to Containers no GitHub.
a. Faça o download do script:
curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/migrate-to-containers/main/scripts/mcdc/mcdc_collect_aws_guest_ssm.sh chmod +x mcdc_collect_aws_guest_ssm.sh
b. Execute o script e salve a saída em um arquivo:
./mcdc_collect_aws_guest_ssm.sh --region REGION
Substitua REGION pela região das suas VMs do EC2.
Todas as sinalizações são transmitidas diretamente para
aws ssm describe-instance-information
. Para coletar de uma VM específica, execute o seguinte comando:./mcdc_collect_aws_guest_ssm.sh --region REGION --filters "Key=InstanceIds,Values=VM_ID"
Substitua VM_ID pelo ID da VM.
Para mais informações sobre todas as sinalizações permitidas para o comando
describe-instance-information
, consulte a documentação da AWS.
SSH
Esse método usa SSH para executar a descoberta de convidados em VMs do Linux. Ele se conecta ao endereço IP público de cada VM. No entanto, a modificação no script precisa ser simples. Por exemplo, para se conectar ao endereço IP particular.
O script usa a conexão de instância EC2 para autenticação. A conexão da instância está disponível apenas em VMs do Amazon Linux e Ubuntu e pode exigir instalação. No entanto, deve ser simples ajustar o script para usar um método de autenticação alternativo, como autenticação por senha usando sshpass ou uma chave privada.
Verifique se você tem acesso de rede às VMs. Talvez seja necessário ajustar as regras de entrada dos grupos de segurança ou usar um proxy para se conectar.
Verifique se todas as VMs que você quer coletar estão ativadas.
Execute a descoberta de convidados usando o script de coleção de convidados SSH do repositório do Migrate to Containers no GitHub.
Faça o download do script:
curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/migrate-to-containers/main/scripts/mcdc/mcdc_collect_aws_guest_ssh.sh chmod +x mcdc_collect_aws_guest_ssh.sh
Execute o script e salve a saída em um arquivo:
./mcdc_collect_aws_guest_ssh.sh --region REGION
Substitua REGION pela região das suas VMs do EC2.
Qualquer sinalização chamada
-a
ou--ssh-arg
é passada diretamente para o SSH. Para desativar a autenticação restrita da chave de host, execute o seguinte comando:./mcdc_collect_aws_guest_ssh.sh --region REGION -a '-o StrictHostKeyChecking=no'
Todas as outras sinalizações são transmitidas diretamente para
aws ssh describe-instances
. Para coletar de uma VM específica, execute o seguinte comando:./mcdc_collect_aws_guest_ssm.sh --region REGION --instance-ids VM_ID
Substitua VM_ID pelo ID da VM.
Para saber mais sobre todas as sinalizações permitidas, consulte a documentação da AWS.
É possível usar um proxy para se conectar a uma VM usando a opção SSH
ProxyCommand
. Por exemplo, para usar um proxy socks5 já existente na porta PROXY_PORT, execute o seguinte comando:./mcdc_collect_aws_guest_ssh.sh --region REGION -a '-o ProxyCommand=nc -X 5 -x 127.0.0.1:PROXY_PORT %h %p'
Substitua PROXY_PORT pelo número da porta.
Se você tiver ajustado as regras de entrada na etapa 1, considere reverter as alterações.
Gerar um relatório de avaliação off-line
Quando todos os dados forem coletados, será possível gerar um relatório HTML detalhado:
./mcdc report --format html --full > REPORT_NAME.html
(Avançado) Modifique os scripts de acordo com suas necessidades
É possível que nenhum dos scripts atenda exatamente às suas necessidades. Por exemplo, você pode não ter o agente SSM ou a conexão de instância instalados em algumas das suas VMs.
Nesses casos, geralmente há uma maneira padrão de se conectar às máquinas. Recomendamos que você escreva scripts que permitam orquestrar esses métodos em grande escala. Em alguns casos, pode ser necessário escrever esses scripts do zero, mas em outros você pode modificar os scripts existentes.
Por exemplo, é possível modificar o script de coleta SSH para usar endereços IP particulares em vez de públicos.
Os scripts são muito comentados para facilitar seu entendimento.
(Avançado) Escrever um script de orquestração do zero
Para orquestrar a descoberta de convidados e a coleta de dados em escala, faça o seguinte:
- Identifique todas as VMs que você quer coletar.
- Faça upload do script de coleção de convidados para cada VM. As VMs do Linux e do Windows exigem scripts de coleta de convidados diferentes.
- Execute o script de coleta de convidados em cada VM.
- Faça o download do artefato criado em cada VM.
- Importe o script de coleção de convidados salvo para a
CLI
mcdc
.
Embora muitas vezes você precise escrever muito do zero, há alguns elementos básicos úteis nos scripts de exemplo que podem ajudar em algumas dessas tarefas. Por exemplo:
- Iteração em todas as VMs no EC2
- Faça o download dos scripts de coleta do Windows e do Linux.
- Às vezes, não é possível fazer o upload e o download de arquivos. Nesses casos, é possível incluir os scripts de coleta nos comandos enviados e gravar os artefatos codificados em base64 em stdout. O script de coleta SSM pode servir como um exemplo útil de como fazer isso.
- Como importar o artefato coletado para a CLI
mcdc
.
A seguir
- Saiba mais sobre a CLI
mcdc
. - Examine exemplos de scripts.
- Para saber como migrar um aplicativo mais complexo, consulte o tutorial de migração de um aplicativo do framework do Spring disponível no repositório do GitHub sobre a migração para contêineres.
- Saiba mais sobre as práticas recomendadas de planejamento.