Descobrir recursos na AWS

Neste documento, descrevemos como executar uma descoberta de inventário na sua conta da Amazon Web Services (AWS) usando a CLI do discovery client da Central de migração.

Você pode usar a CLI mcdc para coletar informações sobre os seguintes recursos na sua conta da AWS:

Em seguida, a CLI mcdc envia as informações coletadas para a Central de migração, onde é possível concluir a avaliação.

Limitações

Ao executar uma descoberta de inventário na sua conta da AWS, a CLI mcdc tem as seguintes limitações:

  • Somente os tipos de recursos EC2 e RDS são incluídos no relatório de TCO. Para exportar e analisar todos os tipos de recursos fora do Migration Center, exporte seu inventário.
  • As seguintes informações das instâncias do EC2 não são coletadas:
    • O uso da memória não é coletado. Para coletar essas informações, verifique se o agente do Amazon CloudWatch está instalado e configurado nas instâncias do EC2.
    • Espaço livre no disco. Para coletar essas informações, execute uma descoberta de convidados.
  • Não é possível executar a CLI mcdc em máquinas Linux para coletar dados de instâncias do AWS Windows EC2. Para coletar informações de instâncias do Windows EC2, execute a CLI mcdc em uma máquina Windows.

Dados coletados durante a descoberta de inventário

A CLI mcdc coleta as seguintes informações dos serviços da AWS compatíveis:

Tipo de recurso Dados coletados
Amazon EC2
Clique para mostrar os dados coletados.
  • Detalhes da instância (ID, tipo, estado)
  • ID do desconto do proprietário
  • Detalhes do tipo de instância (CPU, memória)
  • Tags
  • Informações do sistema operacional (do SSM)
  • Bloquear mapeamentos de dispositivos e detalhes de volume
  • Métricas de desempenho (utilização da CPU, E/S de rede, E/S de disco)
Amazon RDS
Clique para mostrar os dados coletados.
  • Detalhes da instância de banco de dados (identificador, classe, status)
  • Detalhes do mecanismo e da versão do mecanismo
  • Armazenamento alocado
  • Tags
  • Métricas de desempenho (utilização da CPU, capacidade de processamento da rede, IOPS, armazenamento livre)
  • Insights de performance (memória livre)
Amazon S3
Clique para mostrar os dados coletados.
  • Detalhes do bucket (nome, ARN, região, data de criação)
  • Tags
  • Status do controle de versão
  • Regras de ciclo de vida
  • Métricas de performance (tamanho do bucket por classe de armazenamento, número de objetos)
Amazon EKS
Clique para mostrar os dados coletados.
  • Por cluster:
    • Detalhes do cluster (nome, ARN, versão, status, endpoint)
    • Tags
    • ARN da função
    • Configuração da VPC
    • Configuração do Logging
    • Tipos de lançamento (EC2 ou Fargate)
  • Por grupo gerenciado de nós:
    • Detalhes do grupo de nós (nome, ARN, tipo de AMI, tipos de instância, tamanho do disco)
    • Configuração de escalonamento (mínimo, máximo, tamanho selecionado)
    • Grupos de escalonamento automático associados
  • Por perfil do Fargate:
    • Detalhes do perfil (nome, ARN da função de execução do pod)
    • Sub-redes
    • Seletores (namespace, rótulos)
Amazon ECS
Clique para mostrar os dados coletados.
  • Por cluster:
    • Detalhes do cluster (nome, ARN, status)
    • Tags
    • Número de serviços e tarefas
    • Instâncias de contêiner registradas
  • Por serviço:
    • Detalhes do serviço (nome, ARN, tipo de lançamento)
    • Definição da tarefa
    • Estratégia de programação
    • Configuração da implantação
    • Informações do balanceador de carga
  • Por tarefa:
    • Detalhes da tarefa (ARN, último status, status selecionado)
    • CPU e memória
    • Informações do contêiner
ELB
Clique para mostrar os dados coletados.
  • Por balanceador de carga (versão 1 e 2):
    • Detalhes (nome, ARN/ID, nome DNS, tipo, esquema)
    • Tags
    • VPC e zonas de disponibilidade
    • Listeners e regras
    • Grupos e integridade de destino
    • Integridade da instância (para ELBs clássicos)
AWS Lambda
Clique para mostrar os dados coletados.
  • Por função:
    • Configuração (nome, ARN, ambiente de execução, função, manipulador, tempo limite)
    • Tags
    • Tamanho da memória e armazenamento temporário
    • Tipo de pacote e tamanho do código
    • Arquiteturas
    • Camadas
    • Variáveis de ambiente
    • Configuração de rastreamento
    • Mapeamentos de origem de eventos
    • Configurações de simultaneidade
Amazon CloudFront
Clique para mostrar os dados coletados.
  • Por distribuição:
    • Detalhes (ID, ARN, nome de domínio, status, ativado)
    • Tags
    • Aliases (CNAMEs)
    • Origens e grupos de origem
    • Comportamentos de cache
    • Classe de preço, versão HTTP, IPv6 ativado
Amazon EFS
Clique para mostrar os dados coletados.
  • Por sistema de arquivos:
    • Detalhes (ID, ARN, nome, hora de criação)
    • Tags
    • Tamanho total (acesso padrão e não frequente)
    • Modo de desempenho e capacidade
    • Status da criptografia
    • Políticas do ciclo de vida
    • Política de backup
    • Configurações de replicação
    • Destinos de montagem e pontos de acesso
Amazon Redshift
Clique para mostrar os dados coletados.
  • Por cluster provisionado:
    • Detalhes do cluster (identificador, ARN, status, versão)
    • Tags
    • Tipo e contagem de nós
    • Nome do banco de dados
    • Papéis da VPC e do IAM
    • Status da criptografia
    • Configuração de snapshot e aqua
  • Por grupo de trabalho sem servidor:
    • Detalhes do grupo de trabalho (nome, ARN, status, RPU base)
    • Tags
    • Informações do namespace (nome do banco de dados, papéis do IAM, chave do KMS)
    • Endpoint da VPC
    • Configurações de cópia de snapshot
VPC da Amazon
Clique para mostrar os dados coletados.
  • Por VPC:
    • Detalhes da VPC (ID, ARN, estado, bloco CIDR, locatário)
    • Tags
    • ID das opções de DHCP
    • Sub-redes associadas
    • ACLs de rede associadas

A CLI mcdc coleta métricas dos últimos 30 dias, exceto o uso de memória do banco de dados. Para o uso da memória do banco de dados, a AWS salva apenas até 7 dias de dados por padrão. Portanto, a CLI mcdc coleta dados apenas dos últimos 7 dias.

Antes de começar

Antes de iniciar a descoberta de inventário, conclua as seguintes etapas:

  1. Confira os requisitos para fazer o download e executar a CLI do mcdc.
  2. Escolha onde fazer o download da CLI mcdc e conclua as etapas para baixar a CLI mcdc.
  3. Verifique se você tem acesso à sua conta da AWS.

Escolha um local para fazer o download da CLI mcdc

É possível fazer o download da CLI mcdc para máquinas Linux e Windows. Recomendamos usar uma instância do Windows EC2 para baixar e executar a CLI mcdc, porque ela é compatível com todos os métodos de coleta disponíveis.

Faça o download da CLI mcdc para um local com acesso aos recursos de destino, como:

  • AWS CloudShell
  • Uma instância do Linux EC2
  • Uma instância do Windows EC2
  • Qualquer computador em que você tenha instalado a CLI mcdc e tenha acesso remoto à sua conta da AWS.

Para instruções sobre como fazer o download da CLI mcdc, consulte Fazer o download da CLI mcdc.

Crie uma política do IAM para a AWS.

Para autorizar a CLI mcdc a ler os dados do inventário de recursos da AWS, crie uma política do IAM da AWS com as seguintes permissões:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "cloudfront:ListDistributions",
        "cloudfront:ListTagsForResource",
        "cloudwatch:DescribeAlarms",
        "cloudwatch:ListTagsForResource",
        "cloudwatch:GetMetricData",
        "ec2:DescribeRegions",
        "ec2:DescribeInstances",
        "ec2:DescribeInstanceTypes",
        "ec2:DescribeVolumes",
        "ec2:DescribeVpcs",
        "ec2:DescribeSubnets",
        "ec2:DescribeNetworkAcls",
        "ecs:ListClusters",
        "ecs:DescribeClusters",
        "ecs:ListServices",
        "ecs:DescribeServices",
        "ecs:ListTasks",
        "ecs:DescribeTasks",
        "ecs:ListContainerInstances",
        "ecs:DescribeContainerInstances",
        "efs:DescribeFileSystems",
        "efs:ListTagsForResource",
        "efs:DescribeLifecycleConfiguration",
        "efs:DescribeBackupPolicy",
        "efs:DescribeReplicationConfigurations",
        "efs:DescribeMountTargets",
        "efs:DescribeAccessPoints",
        "eks:ListClusters",
        "eks:DescribeCluster",
        "eks:ListNodegroups",
        "eks:DescribeNodegroup",
        "eks:ListFargateProfiles",
        "eks:DescribeFargateProfile",
        "autoscaling:DescribeAutoScalingGroups",
        "elasticloadbalancing:DescribeLoadBalancers",
        "elasticloadbalancing:DescribeTags",
        "elasticloadbalancing:DescribeListeners",
        "elasticloadbalancing:DescribeRules",
        "elasticloadbalancing:DescribeTargetGroups",
        "elasticloadbalancing:DescribeTargetHealth",
        "elasticloadbalancing:DescribeInstanceHealth",
        "lambda:ListFunctions",
        "lambda:ListTags",
        "lambda:ListEventSourceMappings",
        "lambda:GetFunctionConcurrency",
        "rds:DescribeDBInstances",
        "rds:DescribeDBEngineVersions",
        "pi:GetResourceMetrics",
        "redshift:DescribeClusters",
        "redshift-serverless:ListWorkgroups",
        "redshift-serverless:GetNamespace",
        "redshift-serverless:ListSnapshotCopyConfigurations",
        "redshift-serverless:ListTagsForResource",
        "s3:ListAllMyBuckets",
        "s3:GetBucketLocation",
        "s3:GetBucketTagging",
        "s3:GetBucketVersioning",
        "s3:GetLifecycleConfiguration",
        "ssm:DescribeInstanceInformation"
      ],
      "Resource": "*"
    }
  ]
}

Autenticar na AWS

Para autorizar a CLI mcdc a acessar seu ambiente da AWS, autentique sua conta usando um dos seguintes métodos:

Usar as credenciais da AWS atuais

Para usar as credenciais da AWS, execute os comandos da CLI mcdc diretamente do AWS Cloud Shell. Se você executar a CLI mcdc no AWS CloudShell, poderá usar suas credenciais atuais sem uma chave de acesso. Nesse caso, a CLI mcdc pode acessar seu ambiente da AWS para descobrir recursos da AWS, já que o acesso é concedido pelas suas credenciais.

Criar uma chave de acesso para a CLI mcdc

Para criar uma chave de acesso para a CLI do mcdc, siga estas etapas:

  1. Crie um usuário do IAM dedicado para interagir com a API da AWS.
  2. Anexe a política criada na seção anterior ao novo usuário.
  3. No console da AWS, navegue até o usuário do IAM criado na etapa anterior e clique em Usuário  > Credenciais de segurança  > Criar chave de acesso  > Outro  > Próxima  > Criar chave de acesso.

    Para mais informações, consulte Criar uma chave de acesso.

Armazene o ID e a chave de acesso. Você precisa dessas informações para verificar seu inventário da AWS.

Opcional: configurar o acesso para coletar dados do sistema operacional convidado

Os dados do sistema operacional convidado enriquecem os relatórios de preços e de licenças, além das exportações de detalhes de recursos. Esses dados também ajudam a avaliar a adequação para migrações de conteinerização para o Google Kubernetes Engine, o GKE Autopilot e o Cloud Run. Se você não quiser coletar dados do sistema operacional, pule esta seção.

Para coletar dados do sistema operacional convidado, a estação de trabalho que executa a CLI mcdc precisa se conectar às instâncias do EC2 de destino. Verifique se as seguintes portas estão abertas nas instâncias do EC2 de destino:

  • Porta 22 (SSH) para máquinas Linux
  • Porta 135 (WMI) para máquinas Windows

Descobrir recursos na sua conta da AWS

Para descobrir recursos na sua conta da AWS, siga estas etapas:

  1. No terminal de linha de comando, mude para o diretório em que você fez o download da CLI mcdc.

  2. Execute a descoberta:

    AWS CloudShell

    Para descobrir recursos na sua conta da AWS, execute o seguinte comando:

    Linux

    ./mcdc discover aws --host-config \ 
    [--services AWS_SERVICE_NAMES] \
    [--region AWS_REGION]

    Windows

    mcdc.exe discover aws --host-config \ 
    [--services AWS_SERVICE_NAMES] \
    [--region AWS_REGION]

    Substitua:

    • AWS_SERVICE_NAMES: os tipos de recursos a serem descobertos. Insira uma lista separada por vírgulas. Os valores aceitos são cloudfront, dynamodb, ecs, efs, eks, elb, lambda, db (RDS), redshift, route53, s3, vm (EC2) e vpc. Se você não fornecer essa flag, todos os tipos de recursos compatíveis serão descobertos.
    • AWS_REGION: a região da AWS em que as instâncias do EC2 e os bancos de dados do RDS estão localizados. Essa sinalização é opcional. Se você não fornecer essa flag, os recursos de todas as regiões da AWS ativadas serão descobertos.

    Chave de acesso da AWS

    Para descobrir recursos na sua conta da AWS usando o ID da chave de acesso e a chave de acesso da AWS, execute o seguinte comando:

    Linux

    ./mcdc discover aws --access-key-id AWS_ACCESS_KEY_ID \  
    --secret-access-key AWS_ACCESS_KEY \
    [--services AWS_SERVICE_NAMES] \
    [--region AWS_REGION]

    Windows

    mcdc.exe discover aws --access-key-id AWS_ACCESS_KEY_ID \  
    --secret-access-key AWS_ACCESS_KEY \
    [--services AWS_SERVICE_NAMES] \
    [--region AWS_REGION]

    Substitua:

    • AWS_ACCESS_KEY_ID: o ID da chave de acesso que você criou na seção Criar uma chave de acesso para a CLI mcdc.
    • AWS_ACCESS_KEY: a chave de acesso que você criou na seção Criar uma chave de acesso para a CLI do mcdc.
    • AWS_SERVICE_NAMES: os tipos de recursos a serem descobertos. Insira uma lista separada por vírgulas. Os valores aceitos são cloudfront, dynamodb, ecs, efs, eks, elb, lambda, db (RDS), redshift, route53, s3, vm (EC2) e vpc. Se você não fornecer essa flag, todos os tipos de recursos compatíveis serão descobertos.
    • AWS_REGION: a região da AWS em que seus recursos da AWS estão localizados. Essa sinalização é opcional. Se você não fornecer essa flag, os recursos de todas as regiões da AWS ativadas serão descobertos.

    A saída será parecida com esta:

    [+] Collecting for AWS Account: 123456789012
    [+] Collecting RDS in region eu-north-1
    [✓] Collected 0 DB instances
    [!] No DB instances found
    [+] Collecting ECS in region eu-north-1
    [+] Successfully collected data for 2 ECS clusters in region eu-north-1
    [+] Collecting S3...
    [+] Successfully collected data for 74 S3 buckets
    [✓] Collection completed.
    
  3. Opcional: para analisar os dados coletados, execute o seguinte comando:

    Linux

    ./mcdc discover ls

    Windows

    mcdc.exe discover ls

    A saída será parecida com esta:

    VM Assets
    PLATFORM VM ID       NAME              COLLECTED DATA   OS                          IP ADDRESSES
    i-011d6234b5769fe2a  abc-rhel9.0-arm   AWSVM            Red Hat Enterprise Linux    192.0.2.1
    i-08f7e5e469508460f  def-rhel9.0-arm   AWSVM            Red Hat Enterprise Linux    192.0.2.2
    i-09e28bb6eggg94db8  ghi-ol9.3         AWSVM            Linux/UNIX                  192.0.2.3
    
    Database Assets
    GENERATED ID                                         PROVIDER        ENGINE
    arn:aws:rds:eu-west-1:12345678912:db:abc-sqlserver   RDS             SQL Server
    
    AWS CloudFront Distribution: 2 assets were collected.
    AWS ECS Cluster: 3 assets were collected.
    AWS EFS: 5 assets were collected.
    AWS Elastic Load Balancer: 7 assets were collected.
    AWS Lambda: 9 assets were collected.
    AWS Redshift: 2 assets were collected.
    AWS S3 Bucket: 77 assets were collected.
    AWS VPC: 84 assets were collected.
    

    Se quiser, use a flag --asset-types para mostrar recursos de um tipo específico. Por exemplo, para mostrar apenas instâncias do EC2, execute o seguinte comando:

    Linux

    ./mcdc discover ls --asset-types=vm

    Windows

    mcdc.exe discover ls --asset-types=vm

    Ao usar a flag --asset-types, apenas os seguintes tipos de recursos são aceitos:

    • db: Relational Database Service (RDS)
    • vm: Elastic Compute Cloud (EC2)

  4. Depois de descobrir seus recursos, exporte os dados coletados para a Central de migração e veja os recursos.

A seguir