このドキュメントでは、Migration Center のディスカバリー クライアント CLI を使用して、Amazon Web Services(AWS)アカウントでインベントリ検出を実行する方法について説明します。
mcdc CLI を使用して、AWS アカウントの次のアセットに関する情報を収集できます。
- Amazon Elastic Compute Cloud(EC2)
- Amazon Relational Database Service(RDS)
- Microsoft SQL Server
- MySQL
- PostgreSQL
- Amazon CloudFront(プレビュー)
- Amazon Elastic Container Service(ECS)(プレビュー)
- Amazon Elastic File System(EFS)(プレビュー)
- Amazon Elastic Kubernetes Service(EKS)(プレビュー)
- Amazon Redshift(プレビュー)
- Amazon Simple Storage Service(S3)(プレビュー)
- Amazon Virtual Private Cloud(VPC)(プレビュー)
- AWS Lambda(プレビュー)
- Elastic Load Balancing(ELB)(プレビュー)
- Amazon Route53(プレビュー)
- Amazon DynamoDB(プレビュー)
- NAT ゲートウェイ(プレビュー)
mcdc CLI は、収集した情報を Migration Center に送信します。ここで評価を完了できます。
制限事項
AWS アカウントでインベントリ検出を実行する場合、mcdc CLI には次の制限があります。
- TCO レポートには、EC2 と RDS のアセットタイプのみが含まれます。Migration Center の外部ですべてのアセットタイプをエクスポートして分析するには、インベントリをエクスポートします。
- EC2 インスタンスの次の情報は収集されません。
- メモリ使用量は収集されません。この情報を収集するには、Amazon CloudWatch エージェントが EC2 インスタンスにインストールされ、構成されていることを確認してください。
- ディスクの空き容量。この情報を収集するには、ゲスト検出を実行します。
- Linux マシンで
mcdcCLI を実行して、AWS Windows EC2 インスタンスからデータを収集することはできません。Windows EC2 インスタンスから情報を収集するには、Windows マシンでmcdcCLI を実行します。
インベントリ検出中に収集されたデータ
mcdc CLI は、サポートされている AWS サービスから次の情報を収集します。
| アセットのタイプ | データ収集完了 |
|---|---|
| Amazon EC2 |
クリックすると、収集されたデータが表示されます。
|
| Amazon RDS |
クリックすると、収集されたデータが表示されます。
|
| Amazon S3 |
クリックすると、収集されたデータが表示されます。
|
| Amazon EKS |
クリックすると、収集されたデータが表示されます。
|
| Amazon ECS |
クリックすると、収集されたデータが表示されます。
|
| ELB |
クリックすると、収集されたデータが表示されます。
|
| AWS Lambda |
クリックすると、収集されたデータが表示されます。
|
| Amazon CloudFront |
クリックすると、収集されたデータが表示されます。
|
| Amazon EFS |
クリックすると、収集されたデータが表示されます。
|
| Amazon Redshift |
クリックすると、収集されたデータが表示されます。
|
| Amazon VPC |
クリックすると、収集されたデータが表示されます。
|
| Amazon DynamoDB |
クリックすると、収集されたデータが表示されます。
|
| Amazon NAT ゲートウェイ |
クリックすると、収集されたデータが表示されます。
|
| Amazon Route53 |
クリックすると、収集されたデータが表示されます。
|
mcdc CLI は、データベースのメモリ使用量を除く過去 30 日間の指標を収集します。データベースのメモリ使用量については、AWS はデフォルトで最大 7 日間のデータのみを保存するため、mcdc CLI は過去 7 日間のデータのみを収集します。
始める前に
インベントリ検出を開始する前に、次の手順を完了します。
mcdcCLI をダウンロードして実行するための要件を確認します。mcdcCLI のダウンロード先を選択し、mcdcCLI をダウンロードする手順を完了します。- AWS アカウントにアクセスできることを確認します。
mcdc CLI のダウンロード先を選択する
mcdc CLI は、Linux マシンと Windows マシンの両方にダウンロードできます。mcdc CLI のダウンロードと実行には、Windows EC2 インスタンスを使用することをおすすめします。このインスタンスは、使用可能なすべての収集方法をサポートしています。
mcdc CLI は、次のようなターゲット アセットにアクセスできる場所にダウンロードできます。
- AWS CloudShell
- Linux EC2 インスタンス
- Windows EC2 インスタンス
mcdcCLI がインストールされ、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",
"dynamodb:DescribeContinuousBackups",
"dynamodb:DescribeTable",
"dynamodb:ListTables",
"dynamodb:ListTagsOfResource",
"ec2:DescribeRegions",
"ec2:DescribeInstances",
"ec2:DescribeInstanceTypes",
"ec2:DescribeNatGateways",
"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",
"route53:ListHostedZones",
"route53:GetHostedZone",
"route53:ListResourceRecordSets",
"route53: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 のアクセスキーを作成する手順は次のとおりです。
- AWS API とやり取りするための専用の IAM ユーザーを作成します。
- 前のセクションで作成した IAM ポリシーを新しいユーザーに関連付けます。
AWS コンソールで、前の手順で作成した IAM ユーザーに移動し、[ユーザー] > [セキュリティ認証情報] > [アクセスキーの作成] > [その他] > [次へ] > [アクセスキーの作成] をクリックします。
詳細については、アクセスキーを作成するをご覧ください。
アクセスキー ID とアクセスキーを保存します。この情報は、AWS インベントリをスキャンするために必要です。
省略可: ゲスト オペレーティング システムのデータを収集するためのアクセス権を設定する
ゲスト オペレーティング システムのデータは、料金レポート、ライセンス レポート、アセットの詳細のエクスポートを充実させます。このデータは、Google Kubernetes Engine、GKE Autopilot、Cloud Run へのコンテナ化移行の適合性を評価するうえでも役立ちます。オペレーティング システム データを収集しない場合は、このセクションをスキップできます。
ゲスト オペレーティング システムのデータを収集するには、mcdc CLI を実行しているワークステーションがターゲット EC2 インスタンスに接続する必要があります。移行先の EC2 インスタンスで次のポートが開いていることを確認します。
- Linux マシンのポート 22(SSH)
- Windows マシンのポート 135(WMI)
AWS アカウント内のアセットを検出する
AWS アカウント内のアセットを検出する手順は次のとおりです。
コマンドライン ターミナルで、
mcdcCLI をダウンロードしたディレクトリに移動します。検出を実行する
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: 検出するアセットのタイプ。カンマ区切りのリストを指定します。サポートされている値は、
cloudfront、dynamodb、ecs、efs、eks、elb、lambda、db(RDS)、redshift、route53、natgateway、s3、vm(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:
mcdcCLI のアクセスキーを作成するで作成したアクセスキー ID。 - AWS_ACCESS_KEY:
mcdcCLI のアクセスキーを作成するセクションで作成したアクセスキー。 - AWS_SERVICE_NAMES: 検出するアセットのタイプ。カンマ区切りのリストを指定します。サポートされている値は、
cloudfront、ecs、efs、eks、elb、lambda、db(RDS)、redshift、s3、vm(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.- AWS_SERVICE_NAMES: 検出するアセットのタイプ。カンマ区切りのリストを指定します。サポートされている値は、
省略可: 収集したデータを確認するには、次のコマンドを実行します。
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)
アセットを検出したら、収集したデータを Migration Center にエクスポートして、アセットを表示します。
次のステップ
- 収集したデータを Migration Center にエクスポートする方法を確認する。
- インベントリとパフォーマンス データをエクスポートする方法を確認する。
- TCO レポートを生成する方法を学習する。