이러한 단계에 따라 VMware Cloud on AWS와 페더레이션된 아키텍처를 사용하는 포드 배포에 Horizon Cloud Connector 장치를 다운로드하고 배포합니다. 페더레이션된 아키텍처의 경우 포드 환경 내의 기본 Amazon EC2(Elastic Computer Cloud) 인프라에 Horizon Cloud Connector를 배포해야 합니다.

중요: 이 정보는 1세대 제어부의 1세대 테넌트 환경에 액세스할 수 있는 경우에만 적용됩니다. KB-92424에 설명된 대로 1세대 제어부는 EOA(사용 종료)에 도달했습니다. 자세한 내용은 해당 문서를 참조하십시오.

Horizon 포드 배포 아키텍처에 대한 배경 정보는 1세대 테넌트 - 1세대 Horizon Cloud를 포함하는 Horizon 포드 배포 아키텍처 항목을 참조하십시오.

다음은 Horizon Cloud Connector를 포드의 기본 Amazon EC2 인프라에 배포하는 데 필요한 단계에 대한 개략적인 개요입니다.

  • VMDK 형식으로 Horizon Cloud Connector 파일을 다운로드합니다.
  • Amazon EC2에서 Amazon Simple Storage Service(S3) 버켓을 생성하고 장치 VMDK 파일을 해당 버켓에 업로드합니다.
  • 업로드된 VMDK 파일에서 사용자 지정 이미지를 생성합니다.
  • 사용자 지정 이미지에서 Horizon Cloud Connector VM(가상 시스템) 인스턴스를 생성합니다.
중요: Horizon Cloud Connector를 기본 Amazon EC2 인프라에 배포할 때 다음 Horizon Cloud 서비스가 기본적으로 비활성화됩니다. 장치를 배포한 후에는 필요에 따라 이러한 서비스 중 하나를 수동으로 활성화할 수 있습니다.
  • Cloud Monitoring Service
  • Cloud Broker Client 서비스
  • 이미지 지역 서비스

사전 요구 사항

프로시저

  1. 구독 이메일에 제공된 링크를 사용하여 Horizon Cloud Connector 디스크 이미지를 다운로드합니다.
    참고: 장치를 Amazon EC2 환경에 배포하도록 지원하려면 2.0 버전 이상의 Horizon Cloud Connector 디스크 이미지를 다운로드합니다.

    My VMware 계정 자격 증명을 사용하여 my.vmware.com에 로그인한 후 Horizon Cloud Connector 디스크 이미지를 VMDK 파일로 사용할 수 있습니다. 로컬 시스템에 VMDK 파일을 다운로드합니다.

    디스크 이미지 파일을 Amazon EC2 환경에 업로드하기 전에 먼저 Amazon S3 버켓을 생성해야 합니다.
  2. Amazon EC2 환경에서 Amazon S3 버켓을 생성합니다. 자세한 지침은 Amazon Elastic Compute Cloud 설명서를 참조하십시오.
  3. 다운로드한 VMDK 파일을 Amazon S3 버켓에 업로드합니다. AWS 관리 콘솔 또는 AWS CLI(명령줄 인터페이스)를 사용하여 이 단계를 수행할 수 있습니다.
    • (AWS 관리 콘솔) Amazon EC2 환경에 대한 AWS 관리 콘솔에 로그인합니다. S3 서비스로 이동하고 이전에 생성한 버켓을 선택한 다음, VMDK 파일을 해당 버켓에 업로드합니다.
    • (AWS CLI) AWS CLI에 액세스하고 다음 명령을 실행합니다.
      aws s3 cp <file-path-to-VMDK-file> <S3URI>

      cp 명령 실행에 대한 자세한 내용은 Amazon Elastic Compute Cloud 설명서를 참조하십시오.

    AWS 관리 콘솔에서 VMDK 파일이 개체 탭에 나열됩니다.
  4. 서비스 역할 및 정책을 생성하고 정책을 역할에 연결합니다.
    1. 이 절차에 필요한 3개의 새 JSON 파일 중 첫 번째 파일을 생성합니다.
      이 특정 JSON 파일의 목적은 서비스 역할 정보를 저장하는 것입니다. 파일 이름을 원하는 대로 지정합니다. 이 절차에서 이 파일의 예제 파일 이름은 trust-policy.json입니다.
    2. 원하는 이름으로 서비스 역할을 생성하고 새 JSON 파일에 역할 정보를 저장합니다.
      예를 들어 CLI를 사용하여 다음과 같은 명령을 실행합니다.
      다음 명령은 일반적인 예입니다.
      aws iam create-role --role-name <role-name> --assume-role-policy-document <file-path>

      다음 예제 명령은 자리 표시자 <role-name>을 특정 예제 vmimport로 바꾸고 자리 표시자 <file-path>를 특정 예제 trust-policy.json으로 바꿉니다.

      aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.json

      create-role 명령 실행에 대한 자세한 내용은 Amazon Elastic Compute Cloud 설명서를 참조하십시오.

      다음 텍스트는 앞의 명령을 실행한 후의 JSON 파일 내용의 예입니다.
      {
          "Version":"2012-10-17",
          "Statement":[
              {
                  "Sid":"",
                  "Effect":"Allow",
                  "Principal":{
                      "Service":"vmie.amazonaws.com"
                  },
                  "Action":"sts:AssumeRole",
                  "Condition":{
                      "StringEquals":{
                          "sts:ExternalId":"vmimport"
                      }
                  }
              }
          ]
      }
    3. 이 절차에 필요한 3개의 새 JSON 파일 중 두 번째 파일을 생성합니다.
      VMDK 파일을 업로드할 버켓의 이름(예: 다음 예에서 사용되는 이름, <bucket-name>)을 제공합니다.
      이 특정 JSON 파일의 목적은 새 정책을 새 역할에 연결하는 것입니다. 파일 이름을 원하는 대로 지정합니다. 이 절차에서 이 파일의 예제 파일 이름은 role-policy.json입니다.
      다음 텍스트는 예제 role-policy.json 파일 내용의 예입니다.
      {
          "Version":"2012-10-17",
          "Statement":[
              {
                  "Effect":"Allow",
                  "Action":[
                      "s3:ListBucket",
                      "s3:GetBucketLocation"
                  ],
                  "Resource":[
                      "arn:aws:s3:::<bucket-name>"
                  ]
              },
              {
                  "Effect":"Allow",
                  "Action":[
                      "s3:GetObject"
                  ],
                  "Resource":[
                      "arn:aws:s3:::<bucket-name>/*"
                  ]
              },
              {
                  "Effect":"Allow",
                  "Action":[
                      "ec2:ModifySnapshotAttribute",
                      "ec2:CopySnapshot",
                      "ec2:RegisterImage",
                      "ec2:Describe*"
                  ],
                  "Resource":"*"
              }
          ]
      }
    4. 정책을 생성하고 새 역할에 연결한 후 새로 생성된 JSON 파일에 저장합니다.

      예를 들어 CLI를 사용하여 다음과 같은 명령을 실행합니다.

      다음 명령은 일반적인 예입니다.
      aws iam put-role-policy --role-name <role-name> --policy-name <policy-name> --policy-document <file-path>

      다음 특정 예에서는 자리 표시자 <role-name>을 이름이 vmimport인 정책의 특정 예로 바꾸고, 자리 표시자 <policy-name>을 이전에 명명된 역할의 예(vmimport라고도 함)로 바꾸고, 자리 표시자 <file-path>를 이전에 명명된 JSON 파일의 특정 예(role-policy.json)로 바꿉니다.

      aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file://role-policy.json

      put-role-policy 명령 실행에 대한 자세한 내용은 Amazon Elastic Compute Cloud 설명서를 참조하십시오.

  5. 가져온 VMDK 파일에서 스냅샷을 가져옵니다.
    1. 이 절차에 필요한 3개의 새 JSON 파일 중 세 번째 파일을 생성합니다.
      파일에 다음 정보를 포함합니다.
      • 다음 예에서 사용되는 버켓 이름(예: <bucket-name>)
      • Amazon S3 버켓에 업로드한 VMDK 파일의 파일 이름(예: <vmdk-file-name-uploaded-to-S3>)은 다음 예에서 사용됩니다.
      이 특정 JSON 파일의 용도는 가져온 VMDK 파일의 스냅샷을 저장하는 것입니다. 파일 이름을 원하는 대로 지정합니다. 이 절차에서 이 파일의 예제 파일 이름은 container.json입니다.
      다음 텍스트는 container.json 파일 내용의 예입니다.
      {
          "Description": "Adapter-VM",
          "Format": "vmdk",
          "UserBucket": {
              "S3Bucket": "<bucket-name>",
              "S3Key": "<vmdk-file-name-uploaded-to-S3>"
          }
      }
    2. 명령을 실행하여 가져온 VMDK 파일에서 새로 생성된 JSON 파일로 스냅샷을 가져옵니다.
      CLI를 사용하여 다음 유형의 명령을 실행합니다.
      aws ec2 import-snapshot --role-name <role-name> --description <description> --disk-container <file-path>

      import-snapshot 명령 실행에 대한 자세한 내용은 Amazon Elastic Compute Cloud 설명서를 참조하십시오.

      다음 명령은 import-snapshot 명령의 특정 예입니다. 여기서 role-name 매개 변수는 선택 사항이며 사용되지 않습니다. 설명은 "Adapter-VM"이고 컨테이너 파일 이름은 container.json입니다.
      aws ec2 import-snapshot --description "Adapter-VM" --disk-container file://container.json
      import-snapshot 명령은 완료하는 데에는 몇 분 정도 걸릴 수 있습니다. 그러나 명령을 실행한 후에는 작업의 진행률을 추적할 때 사용되는 ImportTaskId 줄을 포함한 출력이 생성됩니다. 다음 출력은 예시입니다.
      {
          "ImportTaskId": "import-snap-05b4c84af4xxxxxxx",
          "Description": "Adapter-VM",
          "SnapshotTaskDetail": {
              "StatusMessage": "pending",
              "UserBucket": {
                    "S3Bucket": "awsbucket",
                   "S3Key": "horizon-cloud-connector-2.0.0.0-18191154_OVF10-disk1.vmdk"
               },
             "Progress": "0",
             "Status": "active",
              "Description": "Adapter-VM",
              "DiskImageSize": 0.0
          }
      
      }
    3. import-snapshot 명령 출력의 ImportTaskId 값을 기록해 둡니다.
  6. import-snapshot 작업의 진행률을 추적하고 스냅샷 ID를 가져오려면 다음 명령을 실행합니다.
    aws ec2 describe-import-snapshot-tasks --import-task-ids <import-task-id>

    <import-task-id> 자리 표시자를 import-snapshot 명령 출력에 나열된 값으로 바꿉니다. 앞의 예제 출력에 나열된 예제 값은 import-snap-05b4c84af4xxxxxxx입니다. describe-import-snapshot-tasks 명령 실행에 대한 자세한 내용은 Amazon Elastic Compute Cloud 설명서를 참조하십시오.

    describe-import-snapshot-tasks 명령은 import-snapshot 작업의 진행률을 나타내는 출력을 제공하고, 작업이 완료되면 이미지를 등록하는 데 필요한 스냅샷 ID를 제공합니다. 예를 들면 다음과 같습니다.
    • "Progress": "43" 항목을 참조하십시오. 다음과 같은 출력의 줄은 import-snapshot 작업의 진행률을 나타냅니다. 이 예에서는 작업이 43% 완료되었습니다.
    • "Status": "completed" 항목을 참조하십시오. 이 줄과 같은 출력의 줄은 import-snapshot 작업이 완료되었음을 나타냅니다.
    • "SnapshotId": "snap-06d42e043bxxxxxxx" 항목을 참조하십시오. 작업이 완료되면 이 줄과 같은 출력의 줄이 포함됩니다. 이 예에서 스냅샷 ID는 snap-06d42e043bxxxxxxx입니다.
  7. describe-import-snapshot-tasks 명령 출력의 스냅샷 ID를 기록해 둡니다.
  8. 스냅샷 이미지를 등록하려면 register-image 명령을 실행합니다.
    aws ec2 register-image --region us-west-2 --name <image-name> --architecture x86_64 --root-device-name '/dev/sda1' --virtualization-type hvm --ena-support --block-device-mappings DeviceName=/dev/sda1,Ebs={SnapshotId=<SnapshotId>} 
    각 옵션(예: --region, --architecture 등)에 대한 배포와 관련된 응답을 제공해야 합니다. register-image 명령 실행에 대한 자세한 내용은 Amazon Elastic Compute Cloud 설명서를 참조하십시오.

    다음 정보는 --name 옵션 및 SnapshotId 매개 변수와 관련이 있습니다.

    • --name - 문자열에 대한 제약 조건에 따라 이미지의 이름을 제공합니다.
    • SnapshotId - describe-import-snapshot-tasks 명령 출력의 스냅샷 ID를 제공합니다.
    register-image 명령은 AMI(Amazon 시스템 이미지)의 ID를 포함하는 출력을 제공합니다. 다음 예는 일반적인 register-image 출력입니다.
        {
            "ImageId": "ami-0721ee000321c4685"
        }

    register-image 명령 출력에 표시된 AMI는 AWS 관리 콘솔의 AMI 목록에도 나타납니다.

  9. Horizon Cloud Connector AMI 인스턴스의 생성 및 구성을 지원하려면 다음 예와 유사한 시작 스크립트를 준비합니다.
    #! /bin/bash
    /usr/bin/python3 /opt/vmware/bin/configure-adapter.py --sshEnable
    sudo useradd ccadmin
    echo -e 'password\npassword' | passwd ccadmin
    echo 'cs_ip cs_fqdn' >> /etc/hosts
    이 예에서 스크립트는 다음 구성을 지원합니다.
    • Horizon Cloud Connector 장치에 SSH 액세스 사용
    • 정의된 암호(password)를 사용하여 장치에서 ccadmin 사용자 계정 생성 강력한 암호를 정의해야 합니다. 강력한 암호는 8자 이상이며 1자 이상의 숫자, 대/소문자 및 특수 문자를 포함해야 합니다.
    • 연결 서버 호스트 이름(cs_fqdn)에서 연결 서버 IP 주소(cs_ip) 확인

    Horizon Cloud Connector AMI 인스턴스를 실행하는 다음 단계에서 user-data에 이 스크립트를 추가해야 합니다.

  10. Horizon Cloud Connector의 AMI 인스턴스를 시작합니다.
    중요: 인스턴스가 충분한 기능을 제공하도록 하려면 모델 c5.2xlarge 이상을 사용합니다.

    AWS 관리 콘솔 또는 CLI를 사용하여 인스턴스를 시작할 수 있습니다. 두 경우 모두 register-image 명령 출력에 제공된 AMI(Amazon 시스템 이미지)의 ID를 사용하고 이전 단계에서 준비한 시작 스크립트를 user-data에 추가합니다.

    중요: user-data는 AMI 인스턴스의 첫 번째 부팅 순서에만 실행되기 때문에 지금 시작 스크립트를 추가해야 합니다.

    CLI를 사용하려면 Amazon Elastic Compute Cloud 설명서에서 run-instances 명령 실행에 대한 자세한 내용을 참조하십시오.

    AWS 관리 콘솔을 사용하려면 Amazon Elastic Compute Cloud 설명서에서 인스턴스 시작 마법사를 사용하여 인스턴스를 시작하는 것과 같은 자세한 내용을 참조하십시오.

    AWS 관리 콘솔을 사용하여 인스턴스를 시작하도록 선택하려면 이미지 ID로 새 AMI를 찾고 AMI를 선택한 다음 시작을 클릭합니다. 그런 다음, 배포에 대한 세부 정보를 제공하는 마법사를 계속 진행할 수 있습니다.

  11. Horizon Cloud Connector AMI가 시작된 후 AMI 인스턴스의 구성을 편집하고 시작 스크립트를 제거합니다.

다음에 수행할 작업

1세대 테넌트 - Horizon 포드 및 가상 장치가 1세대 Horizon 제어부와 연결될 준비가 되었는지 확인의 단계에 따라 포드 온보딩 워크플로를 계속 진행합니다. 그런 다음, 1세대 테넌트 - Horizon Cloud Connector 구성 포털을 사용하여 Horizon 포드를 1세대 Horizon Cloud에 연결 완료을 계속 진행합니다.
참고: 기본적으로 비활성화된 하나 이상의 클라우드부 서비스를 활성화하려면 포드와 클라우드부의 연결을 완료하기 전에 활성화해야 합니다. 1세대 테넌트 - Native Amazon EC2에서 Horizon Cloud Connector에 대한 1세대 Horizon Cloud 제어부 서비스를 수동으로 활성화 항목을 참조하십시오.