Neste tutorial, você vai aprender sobre o 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 do Migration Center.
Objetivos
Neste tutorial, você vai aprender a fazer o seguinte:
- Baixar a CLI
mcdcpara avaliar VMs do AWS EC2. - Realizar a descoberta de inventário do AWS EC2.
- Coletar as informações de guest de 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) Modificar 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 Google Cloud .
É pouco provável que isso afete os custos da AWS.
Antes de começar
Os pré-requisitos dependem de como você acessa as VMs do EC2.
Session Manager
Prepare uma máquina Linux para baixar 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
- AWS CLI instalada
Verifique se a AWS CLI tem as seguintes permissões:
- Pode chamar
aws ssm describe-instance-information - Pode chamar
aws ssm start-session
- Pode chamar
SSH
Prepare uma máquina Linux para baixar 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
- AWS CLI instalada
- Conectividade de rede com instâncias do EC2 (possivelmente por meio de um proxy)
Verifique se a AWS CLI tem as seguintes permissões:
- Pode chamar
aws ec2 describe-instances - Conexão de instâncias
- Pode chamar
Baixe a mcdc CLI
- Acesse a máquina Linux:
ssh MACHINE_IPSubstitua MACHINE_IP pelo endereço IP da sua máquina Linux.
- Baixe a versão mais recente da
mcdcCLI 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à variável PATH do shell:PATH=$PATH:`pwd`
Realizar uma descoberta de inventário da AWS
Execute a descoberta de inventário:
./mcdc discover aws -r REGIONSubstitua REGION pela região das suas VMs do EC2.
A CLI
mcdcvai pedir seu ID da chave de acesso e a chave de acesso secreta.A saída do comando será semelhante a esta:
Collected 166 VMs [✓] Collection completed.
Realizar descoberta de guests
É possível realizar a descoberta de guests usando o Session Manager ou o SSH.
Session Manager
Neste método, você usa o AWS Systems Manager Session Manager para realizar a descoberta de guests 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.
Todas as VMs precisam ter um perfil do IAM que permita se conectar usando o Session Manager. Saiba mais na documentação da AWS.
Verifique se todas as VMs que você quer coletar estão ativadas.
Execute a descoberta de guests usando o script de coleta de guests ssm, disponível no repositório do Migrate to Containers no GitHub.
a. Baixe o 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.shb. Execute o script e salve o resultado em um arquivo:
./mcdc_collect_aws_guest_ssm.sh --region REGIONSubstitua REGION pela região das suas VMs do EC2.
Todas as flags 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.
Confira todas as flags que o comando
describe-instance-informationaceita na documentação da AWS.
SSH
Neste método, você usa SSH para executar a descoberta de guests em VMs do Linux. Você acessa o endereço IP público de cada VM. No entanto, a modificação no script é simples. Por exemplo, para acessar o 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, é simples ajustar o script para usar outro método de autenticação, 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 guests usando o script de coleta de guests ssh, disponível no repositório do Migrate to Containers no GitHub.
Baixe o 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.shExecute o script e salve o resultado em um arquivo:
./mcdc_collect_aws_guest_ssh.sh --region REGIONSubstitua REGION pela região das suas VMs do EC2.
Qualquer flag chamada
-aou--ssh-argé transmitida 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 flags 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_IDSubstitua VM_ID pelo ID da VM.
Confira todas as flags aceitas na documentação da AWS.
É possível usar um proxy para acessar uma VM usando a opção SSH
ProxyCommand. Por exemplo, para usar um proxy socks5 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ê ajustou 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) Modificar os scripts de acordo com suas necessidades
É possível que nenhum dos scripts atenda exatamente às suas necessidades. Por exemplo, talvez o agente SSM ou a conexão de instância não estejam instalados em todas as suas VMs.
Nesses casos, geralmente há uma maneira padrão de se conectar às máquinas. Recomendamos que você escreva scripts para 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 scripts já criados.
Por exemplo, é possível modificar o script de coleta SSH para usar endereços IP particulares em vez de públicos.
Os scripts têm vários comentários para facilitar a compreensão.
(Avançado) Escrever um script de orquestração do zero
Para orquestrar a descoberta de guests 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 coleta de guests para cada VM. As VMs do Linux e do Windows exigem scripts diferentes.
- Execute o script de coleta de guests em cada VM.
- Baixe o artefato criado em cada VM.
- Importe o script de coleta de guests 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. Exemplo:
- Iteração em todas as VMs no EC2
- 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 de exemplo de como fazer isso.
- Importação do 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 do Migrate to Containers.
- Saiba mais sobre as práticas recomendadas de planejamento.