次の手順に従って、VMware Cloud on AWS を使用したフェレデーション アーキテクチャを使用するポッド環境の Horizon Cloud Connector アプライアンスをダウンロードしてデプロイします。フェレデーション アーキテクチャでは、ポッドの環境内のネイティブの Amazon Elastic Computer Cloud (EC2) インフラストラクチャに Horizon Cloud Connector をデプロイする必要があります。

注: Horizon ポッドのデプロイ アーキテクチャの背景情報については、 Horizon ポッドのデプロイ アーキテクチャを参照してください。

以下は、ポッドの環境内のネイティブの Amazon EC2 インフラストラクチャに Horizon Cloud Connector をデプロイするために必要な手順の概要です。

  • VMDK 形式の Horizon Cloud Connector ファイルをダウンロードします。
  • Amazon EC2 に Amazon Simple Storage Service (S3) バケットを作成し、アプライアンスの VMDK ファイルをそのバケットにアップロードします。
  • アップロードした VMDK ファイルからカスタム イメージを作成します。
  • カスタム イメージから Horizon Cloud Connector 仮想マシン (VM) インスタンスを作成します。
重要: Horizon Cloud Connector をネイティブの Amazon EC2 インフラストラクチャにデプロイすると、次の Horizon Cloud サービスがデフォルトで無効になります。アプライアンスをデプロイした後、オプションで これらのサービスを 1 つ以上手動で有効にすることができます。
  • Cloud Monitoring Service
  • クラウド ブローカ クライアント サービス
  • イメージ ローカリティ サービス

前提条件

手順

  1. サブスクリプション メールに記載されているリンクを使用して、Horizon Cloud Connector バージョン 2.0 ディスク イメージをダウンロードします。
    Horizon Cloud Connector ディスク イメージは、My VMware アカウントの認証情報を使用して my.vmware.com にログインした後、VMDK ファイルとして利用できます。VMDK ファイルをローカル システムにダウンロードします。
    注: 現時点では、バージョン 2.0 が、Amazon EC2 環境へのアプライアンスのデプロイをサポートする Horizon Cloud Connector の唯一のバージョンです。
    ディスク イメージ ファイルを 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 ファイルの 2 番目のファイルを作成します。
      以下の例で使用する <bucket-name> など、VMDK ファイルをアップロードするバケットの名前を指定します。
      この特定の 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 ファイルの 3 番目のファイルを作成します。
      このファイルに次の情報を含めます。
      • バケット名(次の例で使用されている <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 st--namering の制約に従って、イメージの名前を指定します。
    • SnapshotId - describe-import-snapshot-tasks コマンド出力からのスナップショット ID を指定します。
    register-image コマンドは、Amazon Machine Image (AMI) の ID を含む出力を提供します。次の例は、典型的な register-image 出力です。
        {
            "ImageId": "ami-0721ee000321c4685"
        }

    register-image コマンド出力に示されている AMI は、AWS マネジメント コンソールの AMI のリストの中にも表示されます。

  9. AMI インスタンスを起動します。
    重要: インスタンスで十分な機能が提供されるようにするには、モデル c5.2xlarge 以上を使用します。

    インスタンスは、AWS マネジメント コンソールまたは CLI を使用して起動できます。いずれの場合も、register-image コマンドの出力で提供される Amazon Machine Image (AMI) の ID を使用します。

    CLI を使用するには、Amazon Elastic Compute Cloud のドキュメントを参照して、run-instances コマンドの実行の詳細を確認してください。

    AWS マネジメント コンソールを使用するには、Amazon Elastic Compute Cloud のドキュメントで詳細(インスタンスの起動ウィザードを使用したインスタンスの起動など)を参照してください。

    AWS マネジメント コンソールを使用してインスタンスを起動する場合、イメージ ID で新しい AMI を探して、AMI を選択し、[起動] をクリックします。その後、デプロイの詳細を指定してウィザードを続行できます。

次のタスク

Horizon ポッドと仮想アプライアンスのペアリングの準備ができていることを確認するの手順に従って、ポッドのオンボーディング ワークフローを続行します。 Horizon Cloud Connector 構成ポータルを使用して Horizon ポッドと Horizon Cloud のペアリングを完了する に進みます。
注: デフォルトで無効になっている 1 つ以上のクラウドプレーン サービスを有効にする場合は、ポッドとクラウド プレーンのペアリングを完了する前にそれらを有効にする必要があります。 ネイティブの Amazon EC2 の Horizon Cloud Connector に対し Horizon Cloud 制御プレーン サービスを手動で有効にするを参照してください。