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 estã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ões
  • 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 (tamanho mínimo, máximo e 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
Amazon Elastic Load Balancing (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)
Amazon Lambda
Clique para mostrar os dados coletados.
  • Por função:
    • Configuração (nome, ARN, ambiente de execução, papel, gerenciador, 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 de processamento
    • 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
Amazon DynamoDB
Clique para mostrar os dados coletados.
  • Detalhes da tabela (nome, ARN, hora de criação, status, bytes de tamanho, contagem de itens, classe)
  • Tags
  • Modo de faturamento
  • Capacidade de processamento provisionada
  • Informações de streams
  • Réplicas
  • Status de backups contínuos e recuperação pontual
Gateway NAT da Amazon
Clique para mostrar os dados coletados.
  • Detalhes do gateway NAT (ID, ARN, hora de criação, estado)
  • Tags
  • ID da VPC e ID da sub-rede
  • Tipo de conectividade
  • Endereços associados
Amazon Route53
Clique para mostrar os dados coletados.
  • Detalhes da zona hospedada (nome, ID, ARN, zona particular, comentário, contagem de conjuntos de registros)
  • Tags
  • Referência do caller
  • Serviço vinculado
  • Servidores de nomes
  • Associações de VPC
  • Conjuntos de registros de recursos
Amazon ECR
Clique para mostrar os dados coletados.
  • Detalhes do repositório (nome, ARN, ID do registro, URL)
  • Tags
  • Configuração de verificação de imagens
  • Configuração de criptografia (tipo, chave KMS)
  • Configurações de mutabilidade da tag de imagem
Endereço IP elástico (EIP)
Clique para mostrar os dados coletados.
  • IDs de alocação e associação
  • Tags
  • Endereços IP públicos e privados
  • Domínio (VPC ou padrão)
  • IDs de instância e interface de rede associadas
  • Nomes DNS públicos e particulares
  • Grupo de borda de rede e pools de IP
Interface de rede elástica (ENI)
Clique para mostrar os dados coletados.
  • Detalhes da interface (ID, ARN, tipo, descrição, status)
  • Tags
  • IDs de VPC e sub-rede
  • Endereço MAC e endereços IP particulares
  • Grupos de segurança associados
  • Endereços IPv6 e status principal do IPv6
  • Detalhes do anexo (ID, índice do dispositivo, ID da instância)
  • Status da verificação de origem ou destino
Amazon Elastic Block Store (EBS)
Clique para mostrar os dados coletados.
  • Detalhes do volume (ID, ARN, tipo, tamanho, status)
  • Tags
  • Zona de disponibilidade
  • Status da criptografia e ID da chave do KMS
  • Métricas de performance (IOPS, capacidade de processamento)
  • ID e hora de criação do snapshot
  • Vários anexos e informações do canal
Amazon EC2 Auto Scaling
Clique para mostrar os dados coletados.
  • Detalhes do grupo (nome, ARN, status)
  • Tags (incluindo configurações de propagação)
  • Configuração de escalonamento (mínimo, máximo, tamanho)
  • Identificadores de zona da VPC e zonas de disponibilidade
  • Modelo de lançamento e política de instâncias mistas
  • Configuração da verificação de integridade (tipo, período de carência)
  • Balanceadores de carga e grupos de destino associados
  • Políticas de encerramento e processos suspensos
  • Configuração do pool quente
Amazon Batch
Clique para mostrar os dados coletados.
  • Detalhes do ambiente de computação (nome, ARN, tipo, estado, status)
  • Tags
  • ARNs de função de serviço e cluster do ECS
  • Recursos de computação (tipos de instância, estratégia de alocação, limites de vCPU)
  • Configuração de rede (sub-redes, grupos de segurança)
  • Configuração do EC2 e modelos de lançamento
  • Políticas de configuração e atualização do EKS
Amazon AppSync
Clique para mostrar os dados coletados.
  • Detalhes da API (ID, nome, ARN, tipo, visibilidade)
  • Tags
  • Configuração de autenticação (tipo, provedores adicionais)
  • Configurações de autorizador do Lambda e de pool de usuários
  • Configurações de geração de registros e rastreamento (X-ray)
  • Limites (profundidade da consulta, contagem de resolvedores)
  • URIs de endpoint
Serviço de notificações simples (SNS, na sigla em inglês) da Amazon
Clique para mostrar os dados coletados.
  • Detalhes do tópico (nome, ARN, nome de exibição, proprietário)
  • Tags
  • Atributos (política, política de entrega)
  • Criptografia (ID da chave do KMS)
  • Tópico FIFO e status de remoção de duplicação
  • Configuração de feedback para vários protocolos (Lambda, SQS e HTTP)
  • Configuração de rastreamento
Gateway de API da Amazon
Clique para mostrar os dados coletados.
  • Detalhes da API REST (ID, nome, ARN, descrição)
  • Tags
  • Configuração de endpoints (tipos, endpoints de VPC)
  • Origem da chave de API e tipos de mídia binária
  • ARN de execução e ID do recurso raiz
  • Configurações e política de compactação
Gateway da Internet da Amazon
Clique para mostrar os dados coletados.
  • Detalhes do gateway (ID, ARN, ID do proprietário)
  • Tags
  • ID da VPC associada
Balanceador de carga de aplicativo (ALB) da Amazon
Clique para mostrar os dados coletados.
  • Detalhes do balanceador de carga (nome, ARN, esquema, status)
  • Tags
  • Mapeamentos de VPC e sub-rede
  • Grupos de segurança associados
  • Nome DNS e ID canônico da zona hospedada
  • Tipo de endereço IP (IPv4, pilha dupla)
  • Atributos (tempo limite de inatividade, proteção contra exclusão, configurações de HTTP/2)
  • Configuração da geração de registros de acesso e conexão
  • Firewall de aplicativos da Web (WAF) e comportamentos de roteamento

A CLI mcdc coleta métricas dos últimos 30 dias, exceto o uso da 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. Analise 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.

Criar 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:

Clique para mostrar a política do IAM.
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "apigateway:GetRestApis",
        "apigateway:GetTags",
        "appsync:ListGraphqlApis",
        "appsync:ListTagsForResource",
        "autoscaling:DescribeAutoScalingGroups",
        "batch:DescribeComputeEnvironments",
        "cloudfront:ListDistributions",
        "cloudfront:ListTagsForResource",
        "cloudwatch:DescribeAlarms",
        "cloudwatch:GetMetricData",
        "cloudwatch:ListTagsForResource",
        "dynamodb:DescribeContinuousBackups",
        "dynamodb:DescribeTable",
        "dynamodb:ListTables",
        "dynamodb:ListTagsOfResource",
        "ec2:DescribeAddresses",
        "ec2:DescribeInstances",
        "ec2:DescribeInstanceTypes",
        "ec2:DescribeInternetGateways",
        "ec2:DescribeNatGateways",
        "ec2:DescribeNetworkAcls",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeRegions",
        "ec2:DescribeSubnets",
        "ec2:DescribeVolumes",
        "ec2:DescribeVpcs",
        "ecr:DescribeRepositories",
        "ecr:GetEncryptionConfiguration",
        "ecr:ListTagsForResource",
        "ecs:DescribeClusters",
        "ecs:DescribeContainerInstances",
        "ecs:DescribeServices",
        "ecs:DescribeTasks",
        "ecs:ListClusters",
        "ecs:ListContainerInstances",
        "ecs:ListServices",
        "ecs:ListTasks",
        "efs:DescribeAccessPoints",
        "efs:DescribeBackupPolicy",
        "efs:DescribeFileSystems",
        "efs:DescribeLifecycleConfiguration",
        "efs:DescribeMountTargets",
        "efs:DescribeReplicationConfigurations",
        "efs:ListTagsForResource",
        "eks:DescribeCluster",
        "eks:DescribeFargateProfile",
        "eks:DescribeNodegroup",
        "eks:ListClusters",
        "eks:ListFargateProfiles",
        "eks:ListNodegroups",
        "elasticloadbalancing:DescribeInstanceHealth",
        "elasticloadbalancing:DescribeListeners",
        "elasticloadbalancing:DescribeLoadBalancers",
        "elasticloadbalancing:DescribeRules",
        "elasticloadbalancing:DescribeTags",
        "elasticloadbalancing:DescribeTargetGroups",
        "elasticloadbalancing:DescribeTargetHealth",
        "lambda:GetFunctionConcurrency",
        "lambda:ListEventSourceMappings",
        "lambda:ListFunctions",
        "lambda:ListTags",
        "pi:GetResourceMetrics",
        "rds:DescribeDBEngineVersions",
        "rds:DescribeDBInstances",
        "redshift:DescribeClusters",
        "redshift-serverless:GetNamespace",
        "redshift-serverless:ListSnapshotCopyConfigurations",
        "redshift-serverless:ListTagsForResource",
        "redshift-serverless:ListWorkgroups",
        "route53:GetHostedZone",
        "route53:ListHostedZones",
        "route53:ListResourceRecordSets",
        "route53:ListTagsForResource",
        "s3:GetBucketLocation",
        "s3:GetBucketTagging",
        "s3:GetBucketVersioning",
        "s3:GetLifecycleConfiguration",
        "s3:ListAllMyBuckets",
        "sns:GetTopicAttributes",
        "sns:ListTagsForResource",
        "sns:ListTopics",
        "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 Cloud Shell, 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 alb, apigateway, appsync, autoscaling, batch, cloudfront, db (RDS), dynamodb, ebs, ecr, ecs, efs, eip, eks, elb, eni, internetgateway, lambda, natgateway, redshift, route53, s3, sns, 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 mcdc.
    • AWS_SERVICE_NAMES: os tipos de recursos a serem descobertos. Insira uma lista separada por vírgulas. Os valores aceitos são alb, apigateway, appsync, autoscaling, batch, cloudfront, db (RDS), dynamodb, ebs, ecr, ecs, efs, eip, eks, elb, eni, internetgateway, lambda, natgateway, redshift, route53, s3, sns, 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 o Migration Center para ver os recursos.

A seguir