探索 AWS 上的資產

本文說明如何使用 Migration Center 用戶資產評估器 CLI,在 Amazon Web Services (AWS) 帳戶中執行資產清單探索作業。

您可以使用 mcdc CLI 收集 AWS 帳戶中下列資產的相關資訊:

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
按一下即可查看收集到的資料。
  • 執行個體詳細資料 (ID、類型、狀態)
  • 擁有者折扣 ID
  • 執行個體類型詳細資料 (CPU、記憶體)
  • 標記
  • 作業系統資訊 (來自 SSM)
  • 封鎖裝置對應和磁碟區詳細資料
  • 效能指標 (CPU 使用率、網路 I/O、磁碟 I/O)
Amazon RDS
按一下即可查看收集到的資料。
  • 資料庫執行個體詳細資料 (ID、類別、狀態)
  • 引擎和引擎版本詳細資料
  • 分配的儲存空間
  • 標記
  • 效能指標 (CPU 使用率、網路輸送量、IOPS、可用儲存空間)
  • 效能洞察 (可用記憶體)
Amazon S3
按一下即可查看收集到的資料。
  • Bucket 詳細資料 (名稱、ARN、區域、建立日期)
  • 標記
  • 版本管理狀態
  • 生命週期規則
  • 成效指標 (依儲存空間級別顯示值區大小、物件數量)
Amazon EKS
按一下即可查看收集到的資料。
  • 每個叢集:
    • 叢集詳細資料 (名稱、ARN、版本、狀態、端點)
    • 標記
    • 角色 ARN
    • 虛擬私有雲設定
    • 記錄設定
    • 啟動類型 (EC2 或 Fargate)
  • 每個受管理節點群組:
    • 節點群組詳細資料 (名稱、ARN、AMI 類型、執行個體類型、磁碟大小)
    • 縮放設定 (最小、最大、所選大小)
    • 相關聯的自動調度資源群組
  • 每個 Fargate 設定檔:
    • 設定檔詳細資料 (名稱、Pod 執行角色 ARN)
    • 子網路
    • 選取器 (命名空間、標籤)
Amazon ECS
按一下即可查看收集到的資料。
  • 每個叢集:
    • 叢集詳細資料 (名稱、ARN、狀態)
    • 標記
    • 服務和工作數量
    • 已註冊的容器執行個體
  • 每項服務:
    • 服務詳細資料 (名稱、ARN、啟動類型)
    • 工作定義
    • 排程策略
    • Deployment 設定
    • 負載平衡器資訊
  • 每個工作:
    • 工作詳細資料 (ARN、上次狀態、所選狀態)
    • CPU 與記憶體
    • 容器資訊
Amazon Elastic Load Balancing (ELB)
按一下即可查看收集到的資料。
  • 每個負載平衡器 (第 1 版和第 2 版):
    • 詳細資料 (名稱、ARN/ID、DNS 名稱、類型、架構)
    • 標記
    • 虛擬私有雲和可用區
    • 監聽器和規則
    • 目標群組和目標健康狀態
    • 執行個體健康狀態 (適用於傳統 ELB)
Amazon Lambda
按一下即可查看收集到的資料。
  • 每個函式:
    • 設定 (名稱、ARN、執行階段、角色、處理常式、逾時)
    • 標記
    • 記憶體大小和臨時儲存空間
    • 套件類型和程式碼大小
    • 架構
    • 資料層
    • 環境變數
    • 追蹤設定
    • 事件來源對應
    • 並行設定
Amazon CloudFront
按一下即可查看收集到的資料。
  • 每個發布平台:
    • 詳細資料 (ID、ARN、網域名稱、狀態、已啟用)
    • 標記
    • 別名 (CNAME)
    • 來源和來源群組
    • 快取行為
    • 價格類別、HTTP 版本、是否啟用 IPv6
Amazon EFS
按一下即可查看收集到的資料。
  • 每個檔案系統:
    • 詳細資料 (ID、ARN、名稱、建立時間)
    • 標記
    • 總大小 (標準和不常存取)
    • 效能和處理量模式
    • 加密狀態
    • 生命週期政策
    • 備份政策
    • 複製設定
    • 掛接目標和存取點
Amazon Redshift
按一下即可查看收集到的資料。
  • 每個佈建的叢集:
    • 叢集詳細資料 (ID、ARN、狀態、版本)
    • 標記
    • 節點類型和數量
    • 資料庫名稱
    • 虛擬私有雲和 IAM 角色
    • 加密狀態
    • 快照和 Aqua 設定
  • 每個無伺服器工作群組:
    • 工作群組詳細資料 (名稱、ARN、狀態、基本 RPU)
    • 標記
    • 命名空間資訊 (資料庫名稱、IAM 角色、KMS 金鑰)
    • 虛擬私有雲端點
    • 快照副本設定
Amazon VPC
按一下即可查看收集到的資料。
  • 每個虛擬私有雲:
    • 虛擬私有雲詳細資料 (ID、ARN、狀態、CIDR 區塊、租戶)
    • 標記
    • DHCP 選項 ID
    • 關聯子網路
    • 相關聯的網路 ACL
Amazon DynamoDB
按一下即可查看收集到的資料。
  • 表格詳細資料 (名稱、ARN、建立時間、狀態、大小 (以位元組為單位)、項目計數、類別)
  • 標記
  • 計費模式
  • 已佈建的處理量
  • 串流資訊
  • 備用資源
  • 持續備份和時間點復原狀態
Amazon NAT 閘道
按一下即可查看收集到的資料。
  • NAT 閘道詳細資料 (ID、ARN、建立時間、狀態)
  • 標記
  • 虛擬私有雲 ID 和子網路 ID
  • 連線類型
  • 相關聯的地址
Amazon Route53
按一下即可查看收集到的資料。
  • 代管區域詳細資料 (名稱、ID、ARN、私人區域、註解、記錄集計數)
  • 標記
  • 來電者參考資料
  • 已連結的服務
  • 名稱伺服器
  • 虛擬私有雲關聯
  • 資源記錄集
Amazon ECR
按一下即可查看收集到的資料。
  • 存放區詳細資料 (名稱、ARN、登錄 ID、網址)
  • 標記
  • 圖片掃描設定
  • 加密設定 (類型、KMS 金鑰)
  • 圖片標記可變更性設定
Elastic IP 位址 (EIP)
按一下即可查看收集到的資料。
  • 分配和關聯 ID
  • 標記
  • 公開和私人 IP 位址
  • 網域 (虛擬私有雲或標準)
  • 相關聯的執行個體和網路介面 ID
  • 公開和私人 DNS 名稱
  • 網路邊界群組和 IP 集區
彈性網路介面 (ENI)
按一下即可查看收集到的資料。
  • 介面詳細資料 (ID、ARN、類型、說明、狀態)
  • 標記
  • 虛擬私有雲和子網路 ID
  • MAC 位址和私人 IP 位址
  • 相關聯的安全群組
  • IPv6 位址和主要 IPv6 狀態
  • 附件詳細資料 (ID、裝置索引、執行個體 ID)
  • 來源或目的地檢查狀態
Amazon Elastic Block Store (EBS)
按一下即可查看收集到的資料。
  • 磁碟區詳細資料 (ID、ARN、類型、大小、狀態)
  • 標記
  • 可用區域
  • 加密狀態和 KMS 金鑰 ID
  • 效能指標 (IOPS、輸送量)
  • 快照 ID 和建立時間
  • 多重附加和頻道資訊
Amazon EC2 Auto Scaling
按一下即可查看收集到的資料。
  • 群組詳細資料 (名稱、ARN、狀態)
  • 標記 (包括傳播設定)
  • 縮放設定 (最小、最大、大小)
  • VPC 區域 ID 和可用區
  • 啟動範本和混合執行個體政策
  • 健康狀態檢查設定 (類型、寬限期)
  • 相關聯的負載平衡器和目標群組
  • 終止政策和暫停程序
  • 暖集區設定
Amazon Batch
按一下即可查看收集到的資料。
  • 運算環境詳細資料 (名稱、ARN、類型、狀態、狀態)
  • 標記
  • ECS 叢集和服務角色 ARN
  • 運算資源 (執行個體類型、分配策略、vCPU 限制)
  • 網路設定 (子網路、安全性群組)
  • EC2 設定和啟動範本
  • EKS 設定和更新政策
Amazon AppSync
按一下即可查看收集到的資料。
  • API 詳細資料 (ID、名稱、ARN、類型、瀏覽權限)
  • 標記
  • 驗證設定 (類型、其他供應商)
  • Lambda 授權方和使用者集區設定
  • 記錄和追蹤 (X-ray) 設定
  • 限制 (查詢深度、解析器計數)
  • 端點 URI
Amazon Simple Notification Service (SNS)
按一下即可查看收集到的資料。
  • 主題詳細資料 (名稱、ARN、顯示名稱、擁有者)
  • 標記
  • 屬性 (政策、運送政策)
  • 加密 (KMS 金鑰 ID)
  • 先進先出主題和重複資料刪除狀態
  • 各種通訊協定 (Lambda、SQS 和 HTTP) 的意見回饋設定
  • 追蹤設定
Amazon API Gateway
按一下即可查看收集到的資料。
  • Rest API 詳細資料 (ID、名稱、ARN、說明)
  • 標記
  • 端點設定 (類型、虛擬私有雲端點)
  • API 金鑰來源和二進位媒體類型
  • 執行 ARN 和根資源 ID
  • 壓縮設定和政策
Amazon Internet Gateway
按一下即可查看收集到的資料。
  • 閘道詳細資料 (ID、ARN、擁有者 ID)
  • 標記
  • 相關聯的虛擬私有雲 ID
Amazon 應用程式負載平衡器 (ALB)
按一下即可查看收集到的資料。
  • 負載平衡器詳細資料 (名稱、ARN、架構、狀態)
  • 標記
  • 虛擬私有雲和子網路對應
  • 相關聯的安全群組
  • DNS 名稱和標準代管區域 ID
  • IP 位址類型 (IPv4、雙重堆疊)
  • 屬性 (閒置逾時、防刪除功能、HTTP/2 設定)
  • 存取和連線記錄設定
  • 網頁應用程式防火牆 (WAF) 和路由行為

mcdc CLI 會收集過去 30 天的指標,但資料庫記憶體用量除外。就資料庫記憶體用量而言,AWS 預設只會儲存最多 7 天的資料,因此 mcdc CLI 只會收集最近 7 天的資料。

事前準備

開始探索商品目錄之前,請先完成下列步驟:

  1. 詳閱下載及執行 mcdc CLI 的需求條件
  2. 選擇 mcdc CLI 的下載位置,然後完成下載 mcdc CLI 的步驟。
  3. 請確認您有權存取 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 政策

按一下即可顯示 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": "*"
    }
  ]
}
  

向 AWS 進行驗證

如要授權 mcdc CLI 存取 AWS 環境,請使用下列任一方法驗證帳戶:

使用現有的 AWS 憑證

如要使用現有的 AWS 憑證,請直接從 AWS Cloud Shell 執行 mcdc CLI 指令。如果您從 AWS Cloud Shell 執行 mcdc CLI,可以使用現有憑證,不必提供存取金鑰。在這種情況下,由於憑證授予存取權,因此 mcdc CLI 可以存取 AWS 環境,以探索 AWS 資產。

mcdc CLI 建立存取金鑰

如要為 mcdc CLI 建立存取金鑰,請按照下列步驟操作:

  1. 建立專屬的 IAM 使用者,與 AWS API 互動。
  2. 將您在上一個章節建立的 IAM 政策附加至新使用者。
  3. 在 AWS 控制台中,前往您在上一個步驟中建立的 IAM 使用者,然後依序點選「User」(使用者) >「Security Credentials」(安全憑證) >「Create access key」(建立存取金鑰) >「Other」(其他) >「Next」(下一步) >「Create access key」(建立存取金鑰)

    詳情請參閱「建立存取金鑰」。

儲存存取金鑰 ID 和存取金鑰。您需要這項資訊才能掃描 AWS 資源。

選用:設定存取權,以便收集客體作業系統資料

客體作業系統資料可豐富定價報表、授權報表和資產詳細資料匯出內容。這項資料也有助於評估是否適合將容器化遷移至 Google Kubernetes Engine、GKE Autopilot 和 Cloud Run。如不想收集作業系統資料,可以略過本節。

如要收集客體作業系統資料,執行 mcdc CLI 的工作站必須連線至目標 EC2 執行個體。請確認目標 EC2 執行個體已開啟下列通訊埠:

  • Linux 電腦的 22 號連接埠 (SSH)
  • Windows 電腦的 135 埠 (WMI)

探索 AWS 帳戶中的資產

如要在 AWS 帳戶中探索資產,請按照下列步驟操作:

  1. 在指令列終端機中,切換至您下載 mcdc CLI 的目錄。

  2. 執行探索作業:

    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:要探索的資產類型。 請提供以半形逗號分隔的清單。支援的值為 albapigatewayappsyncautoscalingbatchcloudfrontdb (RDS)、dynamodbebsecrecsefseipekselbeniinternetgatewaylambdanatgatewayredshiftroute53s3snsvm (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:要探索的資產類型。 請提供以半形逗號分隔的清單。支援的值為 albapigatewayappsyncautoscalingbatchcloudfrontdb (RDS)、dynamodbebsecrecsefseipekselbeniinternetgatewaylambdanatgatewayredshiftroute53s3snsvm (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.
    
  3. 選用:如要查看收集到的資料,請執行下列指令:

    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:關聯式資料庫服務 (RDS)
    • vm:Elastic Compute Cloud (EC2)

  4. 探索資產後,請將收集到的資料匯出至 Migration Center,即可查看資產。

後續步驟