오프라인 평가를 위해 EC2 VM에서 게스트 데이터 수집


이 튜토리얼에서는 Migration Center 탐색 클라이언트 CLI를 사용하여 오프라인 기술 평가에 사용할 EC2 가상 머신(VM) 인스턴스에서 데이터를 검색하고 수집하는 프로세스를 안내합니다.

목표

이 튜토리얼에서는 다음과 같은 방법을 알아봅니다.

  • mcdc CLI를 다운로드하여 AWS EC2 VM 평가하기
  • AWS EC2 인벤토리 검색 수행
  • AWS 세션 관리자 또는 SSH를 사용하여 EC2 리전의 모든 VM에 대한 게스트 수준 정보 수집
  • 오프라인 평가 보고서 생성
  • (고급) 필요에 맞게 스크립트 수정하기
  • (고급) 조정 스크립트를 처음부터 작성하기

비용

이 튜토리얼에서는 Google Cloud 비용이 발생하지 않습니다.

AWS 비용에는 영향을 미치지 않을 가능성이 높습니다.

시작하기 전에

기본 요건은 EC2 VM에 연결하는 방법에 따라 다릅니다.

세션 관리자

  1. Linux 머신을 준비하여 mcdc CLI를 다운로드하고 실행하세요. Linux 머신의 최소 요구사항은 다음과 같습니다.

    • Linux 커널 버전 2.6.23 이상
    • 4GB RAM 및 10GB 디스크 공간
    • AWS CLI 설치됨
  2. AWS CLI에 다음 권한이 있는지 확인합니다.

    • aws ssm describe-instance-information 호출 가능
    • aws ssm start-session 호출 가능

SSH

  1. Linux 머신을 준비하여 mcdc CLI를 다운로드하고 실행하세요. Linux 머신의 최소 요구사항은 다음과 같습니다.

    • Linux 커널 버전 2.6.23 이상
    • 4GB RAM 및 10GB 디스크 공간
    • AWS CLI 설치됨
    • EC2 인스턴스에 대한 네트워크 연결(프록시 사용 가능)
  2. AWS CLI에 다음 권한이 있는지 확인합니다.

mcdc CLI 다운로드

  1. Linux 머신에 연결합니다.
    ssh MACHINE_IP

    MACHINE_IP를 Linux 머신의 IP 주소로 바꿉니다.

  2. 최신 버전의 mcdc CLI를 다운로드하고 실행 파일로 만듭니다.
      curl -O "https://mcdc-release.storage.googleapis.com/$(curl -s https://mcdc-release.storage.googleapis.com/latest)/mcdc"
      chmod +x mcdc
  3. mcdc CLI를 셸 경로에 추가합니다.
    PATH=$PATH:`pwd`

AWS 인벤토리 검색 수행

  • 인벤토리 검색 실행:

    ./mcdc discover aws -r REGION
    

    REGION을 EC2 VM의 리전으로 바꿉니다.

    mcdc CLI에서 액세스 키 ID 및 보안 비밀 액세스 키를 입력하라는 메시지가 표시됩니다.

    검색 명령어 출력은 다음과 비슷하게 표시됩니다.

    Collected 166 VMs
    [✓] Collection completed.
    

게스트 검색 수행

세션 관리자 또는 SSH를 사용하여 게스트 검색을 수행할 수 있습니다.

세션 관리자

이 메서드는 AWS Systems Manager 세션 관리자를 사용하여 SSM 에이전트가 설치된 모든 VM에서 게스트 검색을 수행합니다. SSM 에이전트는 기본적으로 Amazon에서 제공되는 대부분의 AMI에 설치되며 다른 곳에 수동으로 설치할 수 있습니다.

  1. 모든 VM에 세션 관리자를 사용한 연결을 허용하는 IAM 역할이 있는지 확인합니다. 자세한 내용은 AWS 문서를 참조하세요.

  2. 수집할 모든 VM이 사용 설정되었는지 확인합니다.

  3. GitHub의 Migrate to Containers 저장소에서 ssm 게스트 수집 스크립트를 사용하여 게스트 검색을 실행합니다.

    a. 스크립트 다운로드:

     curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/migrate-to-containers/main/scripts/mcdc/mcdc_collect_aws_guest_ssm.sh
     chmod +x mcdc_collect_aws_guest_ssm.sh
    

    b. 스크립트 실행 및 출력을 파일에 저장:

     ./mcdc_collect_aws_guest_ssm.sh --region REGION
    

    REGION을 EC2 VM의 리전으로 바꿉니다.

    모든 플래그는 aws ssm describe-instance-information으로 직접 전달됩니다. 특정 VM에서 수집하려면 다음 명령어를 실행하세요.

     ./mcdc_collect_aws_guest_ssm.sh --region REGION --filters "Key=InstanceIds,Values=VM_ID"
    

    VM_ID를 VM ID로 바꿉니다.

    describe-instance-information 명령어에 허용되는 모든 플래그에 대한 자세한 내용은 AWS 문서를 참조하세요.

SSH

이 메서드는 SSH를 사용하여 Linux VM에서 게스트 검색을 수행합니다. 이는 각 VM의 공개 IP 주소에 연결됩니다. 하지만 스크립트를 수정하는 것은 간단해야 합니다. 예를 들어 비공개 IP 주소에 연결합니다.

스크립트는 인증을 위해 EC2 인스턴스 연결을 사용합니다. 인스턴스 연결은 Amazon Linux 및 Ubuntu VM에서만 사용할 수 있으며 설치가 필요할 수 있습니다. 하지만 sshpass를 사용한 비밀번호 인증 또는 비공개 키와 같은 대체 인증 방법을 사용하도록 스크립트를 조정하는 것은 간단해야 합니다.

  1. VM에 대한 네트워크 액세스 권한이 있는지 확인합니다. 보안 그룹의 인바운드 규칙을 조정하거나 프록시를 사용하여 연결해야 할 수 있습니다.

  2. 수집 출처인 모든 VM이 사용 설정되었는지 확인합니다.

  3. GitHub의 Migrate to Containers 저장소에서 ssh 게스트 수집 스크립트를 사용하여 게스트 검색을 실행합니다.

    1. 스크립트 다운로드:

      curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/migrate-to-containers/main/scripts/mcdc/mcdc_collect_aws_guest_ssh.sh
      chmod +x mcdc_collect_aws_guest_ssh.sh
      
    2. 스크립트 실행 및 출력을 파일에 저장:

      ./mcdc_collect_aws_guest_ssh.sh --region REGION
      

      REGION을 EC2 VM의 리전으로 바꿉니다.

      이름이 -a 또는 --ssh-arg인 플래그는 SSH로 직접 전달됩니다. 엄격한 호스트 키 인증을 사용 중지하려면 다음 명령어를 실행합니다.

      ./mcdc_collect_aws_guest_ssh.sh --region REGION -a '-o StrictHostKeyChecking=no'
      

      다른 모든 플래그는 aws ssh describe-instances로 직접 전달됩니다. 특정 VM에서 수집하려면 다음 명령어를 실행하세요.

      ./mcdc_collect_aws_guest_ssm.sh --region REGION --instance-ids VM_ID
      

      VM_ID를 VM ID로 바꿉니다.

      허용되는 모든 플래그에 대한 자세한 내용은 AWS 문서를 참조하세요.

      프록시를 사용하여 SSH ProxyCommand 옵션을 사용하면 VM에 연결할 수 있습니다. 예를 들어 포트 PROXY_PORT에서 기존 socks5 프록시를 사용하려면 다음 명령어를 실행합니다.

      ./mcdc_collect_aws_guest_ssh.sh --region REGION -a '-o ProxyCommand=nc -X 5 -x 127.0.0.1:PROXY_PORT %h %p'
      

      PROXY_PORT를 포트 번호로 바꿉니다.

  4. 1단계에서 인바운드 규칙을 조정한 경우 변경사항을 되돌리는 것이 좋습니다.

오프라인 평가 보고서 생성

  • 모든 데이터가 수집되면 자세한 HTML 보고서를 생성할 수 있습니다.

    ./mcdc report --format html --full > REPORT_NAME.html
     

(고급) 필요에 맞게 스크립트 수정하기

두 스크립트 모두 사용자의 요구에 정확하게 부합하지 않을 수 있습니다. 예를 들어 일부 VM에 SSM 에이전트 또는 인스턴스 연결이 설치되어 있지 않을 수 있습니다.

이러한 경우 일반적으로 머신에 연결하는 표준 방법이 있습니다. 이러한 메서드를 규모에 맞게 조정할 수 있게 해주는 스크립트를 작성하는 것이 좋습니다. 이러한 스크립트를 처음부터 작성해야 하는 경우도 있지만 기존 스크립트를 수정할 수도 있습니다.

예를 들어 공개 IP 주소 대신 비공개 IP 주소를 사용하도록 SSH 수집 스크립트를 수정할 수 있습니다.

이해하기 쉽도록 스크립트가 많이 주석 처리됩니다.

(고급) 조정 스크립트를 처음부터 작성하기

규모에 맞게 게스트 검색 및 데이터 수집을 조정하려면 다음 단계를 따르세요.

  1. 수집 출처인 모든 VM을 식별합니다.
  2. 각 VM에 게스트 수집 스크립트를 업로드합니다. Linux VM과 Windows VM에는 서로 다른 게스트 수집 스크립트가 필요합니다.
  3. 각 VM에서 게스트 수집 스크립트를 실행합니다.
  4. 각 VM에서 생성된 아티팩트를 다운로드합니다.
  5. 다운로드한 게스트 수집 스크립트를 mcdc CLI로 가져옵니다.

많은 내용을 처음부터 작성해야 하는 경우가 많지만 예시 스크립트의 몇 가지 유용한 템플릿을 활용하면 이러한 작업을 수행하는 데 도움이 될 수 있습니다. 예를 들면 다음과 같습니다.

다음 단계