AWS で EC2 インスタンスとデータベースを検出する

このドキュメントでは、Migration Center ディスカバリー クライアント CLI を使用して Amazon Web Services(AWS)アカウントでインベントリ検出を実行する方法について説明します。

mcdc CLI を使用すると、AWS の Amazon Elastic Compute Cloud(EC2)インスタンスと Amazon リレーショナル データベース サービス(RDS)データベースに関する情報を収集できます。mcdc CLI は、収集した情報を移行センターに送信して評価を行います。

インベントリ検出時に収集される情報

mcdc CLI は、EC2 インスタンスから次の情報を収集します。

  • インスタンスのタイプ、ID、名前、リージョン。
  • マシンサイズ(CPU、メモリ、ストレージ サイズなど)。
  • オペレーティング システムの名前、バージョン、アーキテクチャ。
  • 電源の状態(オンまたはオフ)。
  • ネットワーク インターフェースと、関連する IP アドレスと MAC アドレス。
  • ディスク情報(インターフェース タイプ、ボリューム タイプ、ラベル、サイズなど)。
  • ハイパースレッディングのサポート。
  • 各 EC2 インスタンスのパフォーマンス データ:
    • 1 秒あたりの入出力オペレーション(IOPS)
    • CPU 使用率
    • ネットワークの上り(内向き)と下り(外向き)

mcdc CLI は、RDS データベースから次の情報を収集します。

  • プラットフォーム
  • データベース エンジン
  • 名前
  • 生成された ID
  • バージョン
  • Edition
  • ディスクに割り当てられたバイト数
  • 物理コア数
  • メモリバイト数
  • 各データベースのパフォーマンス データ:
    • メモリ使用量
    • ディスク 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 のダウンロード先を選択する

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 を実行する場合は、アクセスキーなしで既存の認証情報を使用できます。この場合、mcdc CLI は認証情報によって付与された権限に基づいて AWS 環境にアクセスし、VM インスタンスを検出できます。

mcdc CLI のアクセスキーを作成する

mcdc CLI のアクセスキーを作成する手順は次のとおりです。

  1. AWS API を操作する専用の IAM ユーザーを作成します。
  2. 前のセクションで作成した IAM ポリシーを新しいユーザーに関連付けます。
  3. AWS コンソールで、前の手順で作成した IAM ユーザーに移動し、[ユーザー] > [セキュリティ認証情報] > [アクセスキーを作成] > [その他] > [次へ] > [アクセスキーを作成] をクリックします。

    詳細については、アクセスキーを作成するをご覧ください。

アクセスキー 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]

    Windows

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

    次のように置き換えます。

    • AWS_SERVICE_NAME: AWS サービス名(rds または ec2)。このフラグは省略可能です。このフラグを指定しない場合、EC2 インスタンスと RDS データベースの両方が検出されます。
    • AWS_REGION: EC2 インスタンスと RDS データベースが配置されている AWS リージョン。このフラグは省略可能です。 このフラグを指定しない場合、有効になっているすべての AWS リージョンのアセットが検出されます。

    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]

    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]

    次のように置き換えます。

    • AWS_ACCESS_KEY_ID: mcdc CLI のアクセスキーを作成するで作成したアクセスキー ID。
    • AWS_ACCESS_KEY: mcdc CLI のアクセスキーを作成するで作成したアクセスキー。
    • AWS_SERVICE_NAME: AWS サービス名(rds または ec2)。このフラグは省略可能です。このフラグを指定しない場合、EC2 インスタンスと RDS データベースの両方が検出されます。
    • AWS_REGION: EC2 インスタンスと RDS データベースが配置されている AWS リージョン。このフラグは省略可能です。 このフラグを指定しない場合、有効になっているすべての AWS リージョンのアセットが検出されます。

    出力は次のようになります。

      [+] 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
    

次のステップ