探索 AWS 上的 EC2 執行個體和資料庫

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

您可以使用 mcdc CLI 收集 AWS 上的 Amazon Elastic Compute Cloud (EC2) 執行個體和 Amazon Relational Database Service (RDS) 資料庫相關資訊。mcdc CLI 接著會將收集到的資訊傳送至 Migration Center 進行評估。

廣告空間探索期間收集的資訊

mcdc CLI 會從 EC2 執行個體收集下列資訊:

  • 執行個體類型、ID、名稱和區域。
  • 機器大小,包括 CPU、記憶體和儲存空間大小。
  • 作業系統名稱、版本和架構。
  • 電源狀態 (開啟或關閉)。
  • 網路介面和相關聯的 IP 與 MAC 位址。
  • 磁碟資訊,包括介面類型、磁碟區類型、標籤和大小。
  • 支援超執行緒。
  • 每個 EC2 執行個體的效能資料:
    • 每秒輸入和輸出作業數 (IOPS)
    • CPU 使用率
    • 網路輸入和輸出

mcdc CLI 會從 RDS 資料庫收集下列資訊:

  • 平台
  • 資料庫引擎
  • 名稱
  • 產生的 ID
  • 版本
  • 版本
  • 磁碟已配置位元組數
  • 實體核心數量
  • 記憶體位元組數
  • 各資料庫的效能資料:
    • 記憶體用量
    • 磁碟 IOPS
    • 網路輸入和輸出
    • CPU 使用率

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

支援的資料庫

系統支援下列資料庫:

  • Microsoft SQL Server
  • MySQL
  • PostgreSQL

限制

在 AWS 帳戶上執行目錄探索時,mcdc CLI 有下列限制:

  • 系統不會收集 EC2 執行個體的下列資訊:
    • 記憶體用量。
    • 釋出磁碟空間。如要收集這項資訊,請執行訪客探索
  • 您無法在 Linux 電腦上執行 mcdc CLI,從 AWS Windows EC2 執行個體收集資料。如要從 Windows EC2 執行個體收集資訊,請在 Windows 電腦上執行 mcdc CLI。

事前準備

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

  1. 詳閱下載及執行 mcdc CLI 的需求條件
  2. 選擇要下載 mcdc CLI 的位置,然後完成下載 mcdc CLI 的步驟。
  3. 請確認您有權存取 AWS 帳戶。

選擇 mcdc CLI 的下載位置

您可以在 Linux 和 Windows 電腦上都下載 mcdc CLI。建議您使用 Windows EC2 執行個體下載及執行 mcdc CLI,因為這項工具支援所有可用的收集方法

您可以將 mcdc CLI 下載至可存取目標資產的位置,例如:

  • AWS CloudShell
  • Linux EC2 執行個體
  • Windows EC2 執行個體
  • 已安裝 mcdc CLI,且可遠端存取 AWS 帳戶的電腦。

如需下載 mcdc CLI 的操作說明,請參閱「下載 mcdc CLI」。

建立 AWS IAM 政策

如要讓 mcdc CLI 讀取 EC2 和 RDS 目錄資料,請建立具有下列權限的 AWS IAM 政策

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeRegions",
        "ec2:DescribeInstances",
        "ec2:DescribeVolumes",
        "ec2:DescribeInstanceTypes",
        "rds:DescribeDBInstances",
        "rds:DescribeDBEngineVersions",
        "ssm:DescribeInstanceInformation",
        "cloudwatch:GetMetricData"
      ],
      "Resource": "*"
    }
  ]
}

驗證 AWS

如要讓 mcdc CLI 存取 AWS 環境,請使用下列其中一種方法驗證帳戶:

使用現有的 AWS 憑證

如要使用現有的 AWS 憑證,請直接從 AWS Cloud Shell 執行 mcdc CLI 指令。如果您從 AWS Cloud Shell 執行 mcdc CLI,可以使用現有憑證,不必使用存取金鑰。在本例中,CLI 可存取 AWS 環境,以探索 VM 執行個體 (由您的憑證授予)。mcdc

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)

探索 EC2 執行個體和 RDS 資料庫

如要探索 EC2 執行個體和 RDS 資料庫,請按照下列步驟操作:

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

  2. 執行探索作業:

    AWS CloudShell

    如要探索 AWS 帳戶中的 EC2 執行個體和 RDS 資料庫,請執行下列指令:

    Linux

    ./mcdc discover aws --host-config 
    [--services AWS_SERVICE_NAME]
    [--region AWS_REGION]
    [--tag AWS_TAG]

    Windows

    mcdc.exe discover aws --host-config 
    [--services AWS_SERVICE_NAME]
    [--region AWS_REGION]
    [--tag AWS_TAG]

    更改下列內容:

    • AWS_SERVICE_NAME:AWS 服務名稱 (rdsec2)。這個標記為選用。如果您未提供這個旗標,系統會探索 EC2 執行個體和 RDS 資料庫。
    • AWS_REGION:EC2 執行個體和 RDS 資料庫所在的 AWS 區域。這個旗標是選用的。 如未提供此標記,系統會探索所有已啟用的 AWS 區域中的資產。
    • AWS_TAG:AWS 標記,可依特定標記或標記值組合篩選資源,格式為 key=valuekey。如果提供多個標記,mcdc CLI 只會收集包含所有標記的資源。

    AWS 存取金鑰

    如要使用 AWS 存取金鑰 ID 和存取金鑰探索 EC2 執行個體和 RDS 資料庫,請執行下列指令:

    Linux

    ./mcdc discover aws --access-key-id AWS_ACCESS_KEY_ID 
    --secret-access-key AWS_ACCESS_KEY
    [--services AWS_SERVICE_NAME]
    [--region AWS_REGION]
    [--tag AWS_TAG]

    Windows

    mcdc.exe discover aws --access-key-id AWS_ACCESS_KEY_ID 
    --secret-access-key AWS_ACCESS_KEY
    [--services AWS_SERVICE_NAME]
    [--region AWS_REGION]
    [--tag AWS_TAG]

    更改下列內容:

    • AWS_ACCESS_KEY_ID:您在「為 mcdc CLI 建立存取金鑰」一節中建立的存取金鑰 ID。
    • AWS_ACCESS_KEY:在「為 mcdc CLI 建立存取金鑰」一節中建立的存取金鑰。
    • :AWS 服務名稱 (rdsec2)。 這個標記為選用。AWS_SERVICE_NAME如果您未提供這個標記,系統會探索 EC2 執行個體和 RDS 資料庫。
    • AWS_REGION:EC2 執行個體和 RDS 資料庫所在的 AWS 區域。這個旗標是選用的。 如未提供此標記,系統會探索所有已啟用 AWS 區域的資產。
    • AWS_TAG:AWS 標記,可依特定標記或標記值組合篩選資源,格式為 key=valuekey。如果提供多個標記,mcdc CLI 只會收集包含所有標記的資源。

    輸出內容應如下所示:

      [+] Collecting EC2...
      Collecting region eu-west-1
      Collected 73 EC2 instances
      [+] Collecting RDS...
      [+] Collecting region eu-west-1
      [✓] Collected 1 DB instances
      [✓] Collected total of 1 DB instances
      [✓] Collection completed.
    
  3. 如要查看收集到的資料,請執行下列指令:

    Linux

    ./mcdc discover ls

    Windows

    mcdc.exe discover ls

    視需要使用 --asset-types 參數,只顯示 VM 或資料庫。 舉例來說,如要只顯示 VM 執行個體,請執行 discover ls --asset-types=vm;如要只顯示資料庫,請執行 discover ls --asset-types=db

    輸出內容應如下所示:

        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
    

後續步驟