AWS でアセットを検出する

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

mcdc CLI を使用して、AWS アカウントの次のアセットに関する情報を収集できます。

mcdc CLI は、収集した情報を Migration Center に送信します。ここで評価を完了できます。

制限事項

AWS アカウントでインベントリ検出を実行する場合、mcdc CLI には次の制限があります。

  • TCO レポートには、EC2 と RDS のアセットタイプのみが含まれます。Migration Center の外部ですべてのアセットタイプをエクスポートして分析するには、インベントリをエクスポートします。
  • EC2 インスタンスの次の情報は収集されません。
    • メモリ使用量は収集されません。この情報を収集するには、Amazon CloudWatch エージェントが EC2 インスタンスにインストールされ、構成されていることを確認してください。
    • ディスクの空き容量。この情報を収集するには、ゲスト検出を実行します。
  • 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
クリックすると、収集されたデータが表示されます。
  • データベース インスタンスの詳細(識別子、クラス、ステータス)
  • エンジンとエンジン バージョンの詳細
  • 割り当てられたストレージ
  • タグ
  • パフォーマンス指標(CPU 使用率、ネットワーク スループット、IOPS、空きストレージ)
  • パフォーマンス分析情報(空きメモリ)
Amazon S3
クリックすると、収集されたデータが表示されます。
  • バケットの詳細(名前、ARN、リージョン、作成日)
  • タグ
  • バージョニング ステータス
  • ライフサイクル ルール
  • パフォーマンス指標(ストレージ クラス別のバケットサイズ、オブジェクト数)
Amazon EKS
クリックすると、収集されたデータが表示されます。
  • クラスタごと:
    • クラスタの詳細(名前、ARN、バージョン、ステータス、エンドポイント)
    • タグ
    • ロール ARN
    • VPC 構成
    • ロギング構成
    • 起動タイプ(EC2 または Fargate)
  • マネージド ノードグループあたり:
    • ノードグループの詳細(名前、ARN、AMI タイプ、インスタンス タイプ、ディスクサイズ)
    • スケーリング構成(最小、最大、選択したサイズ)
    • 関連付けられた自動スケーリング グループ
  • Fargate プロファイルごと:
    • プロファイルの詳細(名前、Pod 実行ロール ARN)
    • サブネット
    • セレクタ(Namespace、ラベル)
Amazon ECS
クリックすると、収集されたデータが表示されます。
  • クラスタごと:
    • クラスタの詳細(名前、ARN、ステータス)
    • タグ
    • サービスとタスクの数
    • 登録済みコンテナ インスタンス
  • サービス単位:
    • サービスの詳細(名前、ARN、起動タイプ)
    • タスクの定義
    • スケジューリング戦略
    • デプロイ構成
    • ロードバランサ情報
  • タスクごと:
    • タスクの詳細(ARN、最終ステータス、選択されたステータス)
    • CPU とメモリ
    • コンテナ情報
ELB
クリックすると、収集されたデータが表示されます。
  • ロードバランサごと(バージョン 1 と 2):
    • 詳細(名前、ARN/ID、DNS 名、タイプ、スキーム)
    • タグ
    • VPC とアベイラビリティ ゾーン
    • リスナーとルール
    • ターゲット グループとターゲットの健全性
    • インスタンスの健全性(Classic ELB の場合)
AWS Lambda
クリックすると、収集されたデータが表示されます。
  • 関数ごと:
    • 構成(名前、ARN、ランタイム、ロール、ハンドラ、タイムアウト)
    • タグ
    • メモリサイズとエフェメラル ストレージ
    • パッケージ タイプとコードサイズ
    • アーキテクチャ
    • レイヤ
    • 環境変数
    • トレース構成
    • イベントソース マッピング
    • 同時実行設定
Amazon CloudFront
クリックすると、収集されたデータが表示されます。
  • ディストリビューションごと:
    • 詳細(ID、ARN、ドメイン名、ステータス、有効)
    • タグ
    • エイリアス(CNAME)
    • オリジンとオリジン グループ
    • キャッシュの動作
    • 料金クラス、HTTP バージョン、IPv6 が有効
Amazon EFS
クリックすると、収集されたデータが表示されます。
  • ファイルシステムごと:
    • 詳細(ID、ARN、名前、作成時間)
    • タグ
    • 合計サイズ(標準アクセスと低頻度アクセス)
    • パフォーマンスとスループット モード
    • 暗号化ステータス
    • ライフサイクル ポリシー
    • バックアップ ポリシー
    • レプリケーション構成
    • マウント ターゲットとアクセス ポイント
Amazon Redshift
クリックすると、収集されたデータが表示されます。
  • プロビジョニングされたクラスタごと:
    • クラスタの詳細(ID、ARN、ステータス、バージョン)
    • タグ
    • ノードのタイプと数
    • データベース名
    • VPC と IAM のロール
    • 暗号化ステータス
    • スナップショットとアクアの構成
  • サーバーレス ワークグループごと:
    • ワークグループの詳細(名前、ARN、ステータス、ベース RPU)
    • タグ
    • Namespace 情報(データベース名、IAM ロール、KMS 鍵)
    • VPC エンドポイント
    • スナップショット コピーの構成
Amazon VPC
クリックすると、収集されたデータが表示されます。
  • 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 マシンの両方にダウンロードできます。mcdc CLI のダウンロードと実行には、Windows EC2 インスタンスを使用することをおすすめします。このインスタンスは、使用可能なすべての収集方法をサポートしています。

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. 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)

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: Relational Database Service(RDS)
    • vm: Elastic Compute Cloud(EC2)

  4. アセットを検出したら、収集したデータを Migration Center にエクスポートして、アセットを表示します。

次のステップ