探索 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 與記憶體
    • 容器資訊
ELB
按一下即可查看收集到的資料。
  • 每個負載平衡器 (第 1 版和第 2 版):
    • 詳細資料 (名稱、ARN/ID、DNS 名稱、類型、架構)
    • 標記
    • 虛擬私有雲和可用區
    • 監聽器和規則
    • 目標群組和目標健康狀態
    • 執行個體健康狀態 (適用於傳統 ELB)
AWS 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
按一下即可查看收集到的資料。
  • 每個 VPC:
    • 虛擬私有雲詳細資料 (ID、ARN、狀態、CIDR 區塊、租戶)
    • 標記
    • DHCP 選項 ID
    • 關聯子網路
    • 相關聯的網路 ACL

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 政策

{
  "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 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:要探索的資產類型。 請提供以半形逗號分隔的清單。支援的值為 cloudfrontdynamodbecsefsekselblambdadb (RDS)、redshiftroute53s3vm (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:要探索的資產類型。 請提供以半形逗號分隔的清單。支援的值為 cloudfrontdynamodbecsefsekselblambdadb (RDS)、redshiftroute53s3vm (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,即可查看資產。

後續步驟