本文档介绍了如何使用迁移中心资产识别客户端 CLI 在 Amazon Web Services (AWS) 账号上运行资产识别。
您可以使用 mcdc
CLI 收集有关 AWS 账号中以下资产的信息:
- Amazon CloudFront(预览版)
- Amazon Elastic Compute Cloud (EC2)
- Amazon Elastic Container Service (ECS)(预览版)
- Amazon Elastic File System (EFS)(预览版)
- Amazon Elastic Kubernetes Service (EKS)(预览版)
- Amazon Redshift(预览版)
- Amazon Relational Database Service (RDS)
- Microsoft SQL Server
- MySQL
- PostgreSQL
- Amazon Simple Storage Service (S3)(预览版)
- Amazon Virtual Private Cloud (VPC)(预览版)
- AWS Lambda(预览版)
- Elastic Load Balancing (ELB)(预览版)
然后,mcdc
CLI 会将收集的信息发送到 Migration Center,您可以在其中完成评估。
限制
在 AWS 账号上运行清单发现时,mcdc
CLI 存在以下限制:
- TCO 报告中仅包含 EC2 和 RDS 资产类型。如需在 Migration Center 之外导出和分析所有资产类型,请导出您的资产清点数据。
- 系统不会收集 EC2 实例的以下信息:
- 系统不会收集内存用量。如需收集此信息,请确保在 EC2 实例上安装并配置 Amazon CloudWatch 代理。
- 可用磁盘空间。如需收集此信息,请运行客机发现。
- 您无法在 Linux 机器上运行
mcdc
CLI 来从 AWS Windows EC2 实例收集数据。如需从 Windows EC2 实例收集信息,请在 Windows 机器上运行mcdc
CLI。
在商品目录发现期间收集的数据
mcdc
CLI 会从受支持的 AWS 服务中收集以下信息:
资源类型 | 已收集数据 |
---|---|
Amazon EC2 |
点击即可显示收集的数据。
|
Amazon RDS |
点击即可显示收集的数据。
|
Amazon S3 |
点击即可显示收集的数据。
|
Amazon EKS |
点击即可显示收集的数据。
|
Amazon ECS |
点击即可显示收集的数据。
|
ELB |
点击即可显示收集的数据。
|
AWS Lambda |
点击即可显示收集的数据。
|
Amazon CloudFront |
点击即可显示收集的数据。
|
Amazon EFS |
点击即可显示收集的数据。
|
Amazon Redshift |
点击即可显示收集的数据。
|
Amazon VPC |
点击即可显示收集的数据。
|
mcdc
CLI 会收集过去 30 天的指标,但数据库内存用量除外。对于数据库内存使用情况,AWS 默认仅保存最多 7 天的数据,因此 mcdc
CLI 仅收集过去 7 天的数据。
准备工作
在开始发现资产清单之前,请完成以下步骤:
- 查看下载和运行
mcdc
CLI 的要求。 - 选择
mcdc
CLI 的下载位置,然后完成下载mcdc
CLI 的步骤。 - 确保您有权访问自己的 AWS 账号。
选择 mcdc
CLI 的下载位置
您可以将 mcdc
CLI 下载到 Linux 和 Windows 机器。我们建议使用 Windows EC2 实例下载并运行 mcdc
CLI,因为该实例支持所有可用的收集方法。
您可以将 mcdc
CLI 下载到可访问目标资产的位置,例如:
- AWS CloudShell
- Linux EC2 实例
- Windows EC2 实例
- 安装了
mcdc
CLI 且可远程访问 AWS 账号的任何计算机。
如需下载 mcdc
CLI 的相关说明,请参阅下载 mcdc
CLI。
创建 AWS IAM 政策
如需授权 mcdc
CLI 读取 AWS 资产清单数据,请创建具有以下权限的 AWS IAM 政策:
{
"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": "*"
}
]
}
向 AWS 进行身份验证
如需授权 mcdc
CLI 访问您的 AWS 环境,请使用以下方法之一对您的账号进行身份验证:
使用现有的 AWS 凭据
如需使用现有的 AWS 凭据,请直接从 AWS Cloud Shell 运行 mcdc
CLI 命令。
如果您从 AWS CloudShell 运行 mcdc
CLI,则可以使用现有凭据,而无需访问密钥。在这种情况下,mcdc
CLI 可以访问您的 AWS 环境来发现 AWS 资产,因为您的凭据授予了访问权限。
为 mcdc
CLI 创建访问密钥
如需为 mcdc
CLI 创建访问密钥,请按以下步骤操作:
- 创建专用 IAM 用户以与 AWS API 互动。
- 将您在上一部分中创建的 IAM 政策附加到新用户。
在 AWS 控制台中,找到您在上一步中创建的 IAM 用户,然后依次点击用户 > 安全凭据 > 创建访问密钥 > 其他 > 下一步 > 创建访问密钥。
如需了解详情,请参阅创建访问密钥。
存储访问密钥 ID 和访问密钥。您需要此信息才能扫描 AWS 资源。
可选:设置访问权限以收集客户机操作系统数据
客户操作系统数据可丰富价格报告、许可报告和资产详细信息导出内容。这些数据还有助于评估是否适合将应用容器化并迁移到 Google Kubernetes Engine、GKE Autopilot 和 Cloud Run。如果您不想收集操作系统数据,可以跳过此部分。
如需收集客机操作系统数据,运行 mcdc
CLI 的工作站必须连接到目标 EC2 实例。确保目标 EC2 实例上已打开以下端口:
- Linux 机器的端口 22 (SSH)
- Windows 机器的端口 135 (WMI)
发现 AWS 账号中的资产
如需发现 AWS 账号中的资产,请按以下步骤操作:
在命令行终端中,切换到下载
mcdc
CLI 的目录。运行发现:
AWS CloudShell
如需发现 AWS 账号中的资产,请运行以下命令:
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]替换以下内容:
- AWS_SERVICE_NAMES:要发现的资产类型。
请提供以英文逗号分隔的列表。支持的值包括
cloudfront
、dynamodb
、ecs
、efs
、eks
、elb
、lambda
、db
(RDS)、redshift
、route53
、s3
、vm
(EC2) 和vpc
。如果您未提供此标志,系统会发现所有受支持的资源类型。 - AWS_REGION:您的 EC2 实例和 RDS 数据库所在的 AWS 区域。此标志是可选标志。 如果您未提供此标志,系统会发现所有已启用的 AWS 区域中的资产。
AWS 访问密钥
如需使用 AWS 访问密钥 ID 和访问密钥发现 AWS 账号中的资产,请运行以下命令:
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]替换以下内容:
- AWS_ACCESS_KEY_ID:您在为
mcdc
CLI 创建访问密钥部分中创建的访问密钥 ID。 - AWS_ACCESS_KEY:您在为
mcdc
CLI 创建访问密钥部分中创建的访问密钥。 - AWS_SERVICE_NAMES:要发现的资产类型。
请提供以英文逗号分隔的列表。支持的值包括
cloudfront
、dynamodb
、ecs
、efs
、eks
、elb
、lambda
、db
(RDS)、redshift
、route53
、s3
、vm
(EC2) 和vpc
。如果您未提供此标志,系统会发现所有受支持的资源类型。 - AWS_REGION:您的 AWS 资产所在的 AWS 区域。此标志是可选标志。如果您未提供此标志,系统会发现所有已启用的 AWS 区域中的资产。
输出应类似如下所示:
[+] 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.
- AWS_SERVICE_NAMES:要发现的资产类型。
请提供以英文逗号分隔的列表。支持的值包括
可选:如需查看收集的数据,请运行以下命令:
Linux
./mcdc discover ls
Windows
mcdc.exe discover ls
输出应类似如下所示:
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.
(可选)使用
--asset-types
标志显示特定类型的资源。 例如,如需仅显示 EC2 实例,请运行以下命令:Linux
./mcdc discover ls --asset-types=vm
Windows
mcdc.exe discover ls --asset-types=vm
使用
--asset-types
标志时,仅支持以下素材资源类型:db
:Relational Database Service (RDS)vm
:Elastic Compute Cloud (EC2)
发现资产后,如需查看资产,请将收集的数据导出到 Migration Center。
后续步骤
- 了解如何将收集的数据导出到 Migration Center。
- 了解如何导出商品目录和效果数据。
- 了解如何生成 TCO 报告。