Este tutorial explica o processo de descoberta e recolha de dados em instâncias de máquinas virtuais (VM) do EC2, a serem usados para avaliação técnica offline através da CLI do cliente de descoberta do centro de migração.
Objetivos
Neste tutorial, vai aprender a:
- Transfira a CLI
mcdc
para avaliar as suas VMs do AWS EC2. - Realizar a descoberta do inventário do AWS EC2.
- Recolha informações ao nível do convidado em todas as VMs numa região do EC2 através do AWS Session Manager ou do SSH.
- Gere um relatório de avaliação offline.
- (Avançado) Modifique os scripts de acordo com as suas necessidades.
- (Avançado) Escreva um script de orquestração de raiz.
Custos
Este tutorial não acarreta custos Google Cloud .
É improvável que afete os seus custos da AWS.
Antes de começar
Os pré-requisitos dependem da forma como se liga às suas VMs do EC2.
Gestor de sessões
Prepare uma máquina Linux para transferir e executar a CLI
mcdc
. A máquina Linux tem de cumprir os seguintes requisitos mínimos:- Versões 2.6.23 ou posteriores do kernel do Linux
- 4 GB de RAM e 10 GB de espaço em disco
- CLI AWS instalada
Certifique-se de que a CLI da AWS tem as seguintes autorizaçõ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 transferir e executar a CLI
mcdc
. A máquina Linux tem de cumprir os seguintes requisitos mínimos:- Versões 2.6.23 ou posteriores do kernel do Linux
- 4 GB de RAM e 10 GB de espaço em disco
- CLI AWS instalada
- Conetividade de rede a instâncias do EC2 (possivelmente através de um proxy)
Certifique-se de que a CLI da AWS tem as seguintes autorizações:
- Pode ligar para
aws ec2 describe-instances
- Instance Connect
- Pode ligar para
Transfira a CLI mcdc
- Estabeleça ligação à máquina Linux:
ssh MACHINE_IP
Substitua MACHINE_IP pelo endereço IP da sua máquina Linux.
- Transfira a 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 da shell:PATH=$PATH:`pwd`
Faça 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
pede-lhe o ID da chave de acesso e a chave de acesso secreta.O resultado do comando discover tem um aspeto semelhante ao seguinte:
Collected 166 VMs [✓] Collection completed.
Realize a deteção de convidados
Pode realizar a deteção de convidados através do Gestor de sessões ou do SSH.
Gestor de sessões
Este método usa o AWS Systems Manager Session Manager para realizar a deteção de convidados em todas as VMs com o agente SSM instalado. O agente SSM é instalado por predefinição na maioria das AMIs fornecidas pela Amazon e pode ser instalado manualmente noutras.
Certifique-se de que todas as VMs têm uma função de IAM que permite a ligação através do Session Manager. Para mais informações, consulte a documentação da AWS.
Certifique-se de que todas as VMs que quer recolher estão ativadas.
Execute a deteção de convidados através do script de recolha de convidados do SSM do repositório Migrate to Containers no GitHub.
a. Transfira o guião:
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 guarde o resultado num ficheiro:
./mcdc_collect_aws_guest_ssm.sh --region REGION
Substitua REGION pela região das suas VMs do EC2.
Todas as flags são transmitidas diretamente para o
aws ssm describe-instance-information
. Para recolher dados 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 flags permitidas para o comando
describe-instance-information
, consulte a documentação da AWS.
SSH
Este método usa o SSH para realizar a deteção de convidados em VMs Linux. Estabelece ligação ao endereço IP público de cada VM. No entanto, deve ser fácil modificar o script. Por exemplo, para estabelecer ligação ao endereço IP privado.
O script usa o EC2 instance connect para autenticação. O Instance Connect só está disponível em VMs do Amazon Linux e do Ubuntu, e pode exigir instalação. No entanto, deve ser simples ajustar o script para usar um método de autenticação alternativo, como a autenticação por palavra-passe com sshpass ou uma chave privada.
Certifique-se de que tem acesso à rede das VMs. Pode ter de ajustar as regras de entrada para os seus grupos de segurança ou usar um proxy para estabelecer ligação.
Certifique-se de que todas as VMs das quais quer recolher dados estão ligadas.
Execute a deteção de convidados através do script de recolha de convidados de SSH do repositório Migrate to Containers no GitHub.
Transfira o guião:
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 guarde o resultado num ficheiro:
./mcdc_collect_aws_guest_ssh.sh --region REGION
Substitua REGION pela região das suas VMs do EC2.
Qualquer parâmetro com o nome
-a
ou--ssh-arg
é transmitido diretamente ao SSH. Para desativar a autenticação rigorosa da chave do anfitrião, 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 recolher dados 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 flags permitidas, consulte a documentação da AWS.
É possível usar um proxy para estabelecer ligação a uma VM através da opção
ProxyCommand
SSH. Por exemplo, para usar um proxy socks5 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 ajustou as regras de entrada no passo 1, pondere reverter as alterações.
Gere um relatório de avaliação offline
Depois de recolher todos os dados, pode gerar um relatório HTML detalhado:
./mcdc report --format html --full > REPORT_NAME.html
(Avançado) Modifique os scripts de acordo com as suas necessidades
É possível que nenhum dos scripts se adeque exatamente às suas necessidades. Por exemplo, pode não ter o agente SSM ou o Instance Connect instalados em algumas das suas VMs.
Nestes casos, normalmente, tem uma forma padrão de se ligar às suas máquinas. Recomendamos que escreva scripts que lhe permitam orquestrar estes métodos em grande escala. Em alguns casos, pode ter de escrever estes scripts de raiz, mas noutros pode modificar os scripts existentes.
Por exemplo, pode modificar o script de recolha de SSH para usar endereços IP privados em vez de públicos.
Os scripts têm muitos comentários para facilitar a compreensão.
(Avançado) Escreva um script de orquestração de raiz
Para orquestrar a descoberta de hóspedes e a recolha de dados em grande escala, faça o seguinte:
- Identifique todas as VMs a partir das quais quer recolher dados.
- Carregue o script de recolha de convidados para cada VM. As VMs do Linux e do Windows requerem scripts de recolha de convidados diferentes.
- Execute o script de recolha de convidados em cada MV.
- Transfira o artefacto criado de cada VM.
- Importe o script de recolha de convidados transferido para a
mcdc
CLI.
Embora muitas vezes tenha de escrever grande parte disto de raiz, existem alguns blocos de construção úteis nos scripts de exemplo que podem ajudar com algumas destas tarefas. Por exemplo:
- Iterar sobre todas as VMs no EC2.
- Transferir os scripts de recolha de convidados do Windows e Linux.
- Por vezes, não pode carregar nem transferir ficheiros. Nestes casos, é possível incluir os scripts de recolha nos comandos enviados e escrever os artefactos codificados em base64 para stdout. O script de recolha do SSM pode servir como um exemplo útil de como o fazer.
- Importar o artefacto recolhido para a CLI
mcdc
.
O que se segue?
- Saiba mais acerca da CLI
mcdc
. - Analise os exemplos de scripts.
- Para saber como migrar uma aplicação mais complexa, consulte o tutorial de migração de uma aplicação Spring Framework disponível no repositório do GitHub Migrate to Containers.
- Saiba mais sobre as práticas recomendadas de planeamento.