AWS에서 애셋 검색

이 문서에서는 마이그레이션 센터 탐색 클라이언트 CLI를 사용하여 Amazon Web Services (AWS) 계정에서 인벤토리 검색을 실행하는 방법을 설명합니다.

mcdc CLI를 사용하여 AWS 계정의 다음 애셋에 관한 정보를 수집할 수 있습니다.

그런 다음 mcdc CLI는 수집된 정보를 평가를 완료할 수 있는 Migration Center로 전송합니다.

제한사항

AWS 계정에서 인벤토리 검색을 실행할 때 mcdc CLI에는 다음과 같은 제한사항이 있습니다.

  • EC2 및 RDS 애셋 유형만 TCO 보고서에 포함됩니다. 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
클릭하여 수집된 데이터를 표시합니다.
  • 데이터베이스 인스턴스 세부정보 (식별자, 클래스, 상태)
  • 엔진 및 엔진 버전 세부정보
  • 할당된 스토리지
  • 태그
  • 성능 측정항목 (CPU 사용률, 네트워크 처리량, IOPS, 여유 스토리지)
  • 성능 통계 (여유 메모리)
Amazon S3
클릭하여 수집된 데이터를 표시합니다.
  • 버킷 세부정보 (이름, ARN, 리전, 생성 날짜)
  • 태그
  • 버전 관리 상태
  • 수명 주기 규칙
  • 실적 측정항목 (스토리지 클래스별 버킷 크기, 객체 수)
Amazon EKS
클릭하여 수집된 데이터를 표시합니다.
  • 클러스터별:
    • 클러스터 세부정보 (이름, ARN, 버전, 상태, 엔드포인트)
    • 태그
    • 역할 ARN
    • VPC 구성
    • 로깅 구성
    • 시작 유형 (EC2 또는 Fargate)
  • 관리형 노드 그룹별:
    • 노드 그룹 세부정보 (이름, ARN, AMI 유형, 인스턴스 유형, 디스크 크기)
    • 확장 구성 (최소, 최대, 선택된 크기)
    • 연결된 그룹 자동 확장
  • Fargate 프로필별:
    • 프로필 세부정보 (이름, 포드 실행 역할 ARN)
    • 서브넷
    • 선택기 (네임스페이스, 라벨)
Amazon ECS
클릭하여 수집된 데이터를 표시합니다.
  • 클러스터별:
    • 클러스터 세부정보 (이름, ARN, 상태)
    • 태그
    • 서비스 및 태스크 수
    • 등록된 컨테이너 인스턴스
  • 서비스별:
    • 서비스 세부정보 (이름, ARN, 출시 유형)
    • 작업 정의
    • 예약 전략
    • 배포 구성
    • 부하 분산기 정보
  • 작업별:
    • 작업 세부정보 (ARN, 마지막 상태, 선택된 상태)
    • CPU 및 메모리
    • 컨테이너 정보
ELB
클릭하여 수집된 데이터를 표시합니다.
  • 부하 분산기별 (버전 1 및 2):
    • 세부정보 (이름, ARN/ID, DNS 이름, 유형, 스키마)
    • 태그
    • VPC 및 가용성 영역
    • 리스너 및 규칙
    • 타겟 그룹 및 타겟 건강
    • 인스턴스 상태 (클래식 ELB의 경우)
AWS Lambda
클릭하여 수집된 데이터를 표시합니다.
  • 함수별:
    • 구성 (이름, ARN, 런타임, 역할, 핸들러, 시간 제한)
    • 태그
    • 메모리 크기 및 임시 스토리지
    • 패키지 유형 및 코드 크기
    • 아키텍처
    • 레이어
    • 환경 변수
    • 추적 구성
    • 이벤트 소스 매핑
    • 동시성 설정
Amazon CloudFront
클릭하여 수집된 데이터를 표시합니다.
  • 배포별:
    • 세부정보 (ID, ARN, 도메인 이름, 상태, 사용 설정됨)
    • 태그
    • 별칭 (CNAME)
    • 출처 및 출처 그룹
    • 캐시 동작
    • 가격 클래스, HTTP 버전, IPv6 사용 설정
Amazon EFS
클릭하여 수집된 데이터를 표시합니다.
  • 파일 시스템별:
    • 세부정보 (ID, ARN, 이름, 생성 시간)
    • 태그
    • 총 크기 (Standard 및 Infrequent Access)
    • 성능 및 처리량 모드
    • 암호화 상태
    • 수명 주기 정책
    • 백업 정책
    • 복제 구성
    • 마운트 타겟 및 액세스 포인트
Amazon Redshift
클릭하여 수집된 데이터를 표시합니다.
  • 프로비저닝된 클러스터당:
    • 클러스터 세부정보 (식별자, ARN, 상태, 버전)
    • 태그
    • 노드 유형 및 수
    • 데이터베이스 이름
    • VPC 및 IAM 역할
    • 암호화 상태
    • 스냅샷 및 아쿠아 구성
  • 서버리스 워크그룹별:
    • 작업 그룹 세부정보 (이름, ARN, 상태, 기본 RPU)
    • 태그
    • 네임스페이스 정보 (데이터베이스 이름, 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를 다운로드할 위치 선택

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가 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: 검색할 애셋의 유형입니다. 쉼표로 구분된 목록을 제공하세요. 지원되는 값은 cloudfront, dynamodb, ecs, efs, eks, elb, lambda, db (RDS), redshift, route53, 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: mcdc CLI용 액세스 키 만들기 섹션에서 만든 액세스 키 ID입니다.
    • AWS_ACCESS_KEY: mcdc CLI용 액세스 키 만들기 섹션에서 만든 액세스 키
    • AWS_SERVICE_NAMES: 검색할 애셋의 유형입니다. 쉼표로 구분된 목록을 제공하세요. 지원되는 값은 cloudfront, dynamodb, ecs, efs, eks, elb, lambda, db (RDS), redshift, route53, 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.
    
  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로 내보내세요.

다음 단계