Citrix Virtual Apps and Desktops

AWSカタログの作成

マシンカタログの作成」では、マシンカタログを作成するウィザードについて説明します。以下の情報は、AWS仮想化環境に固有の詳細について説明しています。

注:

AWSカタログを作成する前に、AWSへの接続の作成を完了する必要があります。「AWSへの接続」を参照してください。

イメージの準備中のネットワーク設定

イメージの準備中に、元の仮想マシンに基づいて準備用の仮想マシン(VM)が作成されます。この準備VMはネットワークから切断されています。ネットワークを準備VMから切断するために、すべての受信および送信トラフィックを拒否するネットワークセキュリティグループが作成されます。このネットワークセキュリティグループは保持され、再利用されます。ネットワークセキュリティグループの名前はCitrix.XenDesktop.IsolationGroup-GUIDで、GUIDがランダムに生成されます。

AWSテナントの構成

AWSには、次のテナントオプションが用意されています。

  • 共有テナント(デフォルトのテナントの種類):さまざまな顧客の複数のAmazon EC2インスタンスが同じ物理ハードウェア上に存在することができます。
  • 専用テナント:EC2インスタンスは、ユーザーが展開したほかのインスタンスを含むハードウェア上のみで実行されます。ほかの顧客は同じハードウェアを使用しません。

PowerShellを使用して、MCSでAWS専用のホストをプロビジョニングすることができます。

PowerShellを使用したAWS専用ホストテナントの構成

PowerShellで定義されたホストテナントを持つマシンのカタログを作成できます。

Amazon [EC2] 専用ホストは、完全に専用の [EC2] インスタンス容量を搭載した物理サーバーです。既存のソケット単位またはVM単位のソフトウェアライセンスを使用することができます。

専用ホストには、インスタンスの種類に基づいて使用率が事前に設定されています。たとえば、C4ラージインスタンスの種類の1つの割り当てられた専用ホストは、16個のインスタンスの実行に限定されます。詳しくは、AWSのサイトを参照してください。

AWSホストへのプロビジョニングの要件は次のとおりです:

  • インポートされたBYOL(ライセンス持ち込み)のイメージ(AMI)。専用ホストでは、既存のライセンスを使用および管理します。
  • プロビジョニング要求を満たすのに十分な使用率を持つ専用ホストの割り当て。
  • 自動配置を有効にします。

PowerShellを使用してAWSの専用ホストにプロビジョニングするには、New-ProvSchemeコマンドレットを、パラメーターTenancyTypeHostを設定して使用します。

詳しくは、Citrix Developerのドキュメントを参照してください。

AMIからマシンのプロパティをキャプチャ

AWSでMachine Creation Services(MCS)を使用してマシンをプロビジョニングするカタログを作成する場合、このカタログのマスター/ゴールデンイメージに相当するAMIを選択します。MCSは、このAMIからディスクのスナップショットを使用します。以前のリリースでは、マシンに役割やタグが必要な場合AWSコンソールを使用して個別に設定していました。この機能はデフォルトで有効になっています。

ヒント:

AWSインスタンスプロパティキャプチャを使用するには、AMIに関連付けられたVMが必要です。

このプロセスを改善するために、MCSはAMIが作成されたインスタンスからプロパティを読み取り、マシンのIDアクセス管理(IAM)の役割およびタグを提供されたカタログにプロビジョニングされたマシンに適用します。このオプション機能を使用する場合、カタログ作成プロセスでは、選択したAMIソースインスタンスが検索され、限定されたプロパティセットが読み取られます。これらのプロパティは、そのカタログのマシンをプロビジョニングするために使用されるAWS起動テンプレートに保存されます。カタログ内のすべてのマシンがキャプチャされたインスタンスのプロパティを継承します。

キャプチャされたプロパティには、以下が含まれます:

  • IAM役割 – プロビジョニングされたインスタンスに適用
  • タグ - プロビジョニングされたインスタンスやそのディスク、NICに適用。これらのタグは次のような一時的なCitrixリソースに適用されます:S3バケットおよびオブジェクト、AMI、スナップショット、起動テンプレート。

ヒント:

一時的なCitrixリソースのタグ付けはオプションで、カスタムプロパティAwsOperationalResourcesTaggingを使用して構成できます。

AWSインスタンスプロパティのキャプチャ

この機能は、AWSホスト接続でプロビジョニングスキーム作成時にカスタムプロパティAwsCaptureInstancePropertiesを指定することで使用できます:

New-ProvScheme -CustomProperties "AwsCaptureInstanceProperties,true" …<standard provscheme parameters

詳しくは、Citrix Developerのドキュメントを参照してください。

注:

AwsCaptureInstancePropertiesは廃止済みです。

マシンプロファイルからマシンプロパティをキャプチャ

MCSを使用してAWSマシンをプロビジョニングするためのカタログを作成する場合、マシンプロファイルを使用して特定のマシンプロパティ設定を事前設定できます。

そのためには、次の手順を実行します:

  1. このカタログを作成しているリソースと同じアベイラビリティゾーンにマシンプロファイルを保存します。
  2. カタログ作成ウィザードの [マシンテンプレート] ページで、[マシンプロファイルを使用する] を選択します。選択したリソースと同じ利用可能なゾーンにあるマシンプロファイルが表示されます。
  3. 必要に応じてマシンプロファイルを選択します。

注:

マシンプロファイルまたはAMIのいずれかを使用して、マシンプロパティをキャプチャできます。Web Studioで、[マシンプロファイルを使用する] を選択すると、[マシンテンプレートのプロパティを仮想マシンに適用する] オプションが自動的に非表示になります。

AWS運用リソースのタグ付け

MCSを使用してAWSでマシンをプロビジョニングするカタログを作成する場合、IAMの役割とタグのプロパティをそれらのマシンに適用するかを制御できます。マシンタグを運用リソースに適用するかを制御することもできます。

Amazon Machine Image(AMI)は、Amazonクラウド環境内で仮想マシンを作成するために使用される、一般にEC2と呼ばれる仮想アプライアンスの種類を表します。AMIを使用して、EC2環境を使用するサービスを展開します。AWSでMCSを使用してマシンをプロビジョニングするカタログを作成する場合、このカタログのゴールデンイメージとして機能するAMIを選択します。

重要:

インスタンスプロパティと起動テンプレートをキャプチャしてカタログを作成することは、運用リソースのタグ付けに必要です。

AWSカタログを作成するには、最初にゴールデンイメージとして使用するインスタンスのAMIを作成する必要があります。MCSは、そのインスタンスからタグを読み取り、起動テンプレートに組み込みます。起動テンプレートタグは、AWS環境で作成されたすべてのCitrixリソースに適用されます。これには以下が含まれます:

  • 仮想マシン
  • VMディスク
  • VMネットワークインターフェイス
  • S3バケット
  • S3オブジェクト
  • 起動テンプレート
  • AMI

運用リソースのタグ付け

PowerShellを使用してリソースにタグを付けるには、次の手順を実行します:

  1. DDCホストからPowerShellウィンドウを開きます。
  2. コマンドasnp citrixを実行し、Citrix固有のPowerShellモジュールをロードします。

プロビジョニングされた仮想マシンのリソースにタグを付けるには、新しいカスタムプロパティAwsOperationalResourcesTaggingを使用します。以下はこのプロパティの構文です:

New-ProvScheme -CustomProperties "AwsCaptureInstanceProperties,true; AwsOperationalResourcesTagging,true" …<standard provscheme parameters>

次の手順

VM上のタグをコピーする

マシンプロファイルで指定されているNICおよびディスク(IDディスク、ライトバックキャッシュディスク、OSディスク)上のタグを、MCSマシンカタログ内に新しく作成されたVMにコピーできます。これらのタグは、任意のマシンプロファイルソース(AWS VMインスタンスまたはAWS起動テンプレートバージョン)で指定できます。この機能は、永続および非永続のマシンカタログとVMに適用できます。

注:

  • AWS EC2コンソールでは、Launch Template Version Resource Tagsの下にTag Network Interfacesの値が表示されません。ただし、PowerShellコマンドaws ec2 describe-launch-template-versions --launch-template-id lt-0bb652503d45dcbcd --versions 12を実行してタグの仕様を確認することができます。
  • マシンプロファイルソース(仮想マシンまたは起動テンプレートバージョン)に2つのネットワークインターフェイス(eni-1とeni-2)があり、eni-1にタグt1があり、eni-2にタグt2がある場合、仮想マシンは2つのネットワークインターフェイスのタグ両方を取得します。

マシンプロファイルを使用してカタログを作成する

Machine Creation Services(MCS)を使用してAWSでマシンをプロビジョニングするためのカタログを作成する場合、マシンプロファイルを使用して、EC2インスタンス(仮想マシン)からハードウェアプロパティをキャプチャしたり、テンプレートバージョンを起動して、プロビジョニングされたマシンに適用したりできるようになりました。キャプチャされるプロパティには、たとえば、EBSボリュームプロパティ、インスタンスの種類、EBSの最適化、およびその他のサポートされているAWS構成が含まれます。カタログを編集する場合、別の仮想マシンまたは起動テンプレートを提供することで、プロビジョニングされたマシンのマシンプロファイルを変更できます。

注:

EBSボリュームのプロパティは、マシンプロファイルからの値のみを使用します。

重要な注意事項

MCSマシンカタログを作成する際の重要注意事項は以下のとおりです:

  • New-ProvSchemeおよびSet-ProvSchemeコマンドにパラメーターを追加すると、パラメーターで指定された値がマシンプロファイルの値を上書きします。
  • AwsCaptureInstancePropertiestrueとして設定し、MachineProfileプロパティを設定しない場合は、IAMの役割とタグのみがキャプチャされます。
  • AwsCaptureInstancePropertiesMachineProfileを同時に設定することはできません。

    **注:

    AwsCaptureInstancePropertiesは廃止済みです。

  • 以下のプロパティの値を明示的に指定する必要があります:

    • TenancyType
    • セキュリティグループ
    • ネットワークインターフェイスカードまたは仮想ネットワーク
  • AwsCaptureInstancePropertiesを有効にするか、マシンプロファイルを指定する場合にのみ、 AwsOperationalResourcesTaggingを有効にすることができます。

MCSマシンカタログを作成した後の重要な注意事項は以下のとおりです:

  • カタログに追加された新しいVMのみが変更の影響を受けます。
  • マシンプロファイルベースのカタログのカタログを非マシンプロファイルベースのカタログに変更することはできません。

マシンプロファイルを使用してマシンカタログを作成する

マシンプロファイルを使用してマシンカタログを作成するには、以下の手順を実行します:

  1. PowerShellウィンドウを開きます。
  2. asnp citrix*を実行し、Citrix固有のPowerShellモジュールをロードします。
  3. IDプールをまだ作成していない場合は作成します。例:

    New-AcctIdentityPool -IdentityPoolName idPool -NamingScheme ms## -Domain abcdf -NamingSchemeType Numeric
    <!--NeedCopy-->
    
  4. New-ProvSchemeコマンドを実行します。例:

    New-ProvScheme -ProvisioningSchemeName demet-test-1
    -HostingUnitUid aa633238-9xxd-4cf6-80e8-232a758a1xx1
    -IdentityPoolUid 34d5b088-e312-416f-907d-16573xxxxxc4
    -CleanOnBoot
    -MasterImageVM 'XDHyp:\HostingUnits\cvad-test-scalestress\citrix-demet-ami.0 (ami-0ca813xxxxxx061ef).template'
    -MachineProfile 'XdHyp:\HostingUnits\cvad-test-scalestress\us-east-1a.availabilityzone\machine-profile-instance i (i-0xxxxxxxx).vm'
    <!--NeedCopy-->
    
  5. カタログの作成を完了します。詳しくは、「Citrix PowerShell SDK」を参照してください。

マシンプロファイルを使用して最初にプロビジョニングされたカタログのマシンプロファイルを更新するには、次の手順を実行します:

  1. Set-ProvSchemeコマンドを実行します。例:

    Set-ProvScheme `
    -ProvisioningSchemeUid "<ID" `
    -MachineProfile "XDHyp:\HostingUnits\abc\us-east-1a.availabilityzone\citrix-cvad-machineprofile-instance (i-0xxxxxxxx).vm"
    <!--NeedCopy-->
    

起動テンプレートのバージョンを使用してカタログを作成する

起動テンプレートのバージョンをマシンプロファイルの入力に使用して、MCSマシンカタログを作成できます。マシンプロファイルカタログの入力に関しては、仮想マシンから起動テンプレートのバージョンに更新したり、起動テンプレートのバージョンから仮想マシンに更新したりすることもできます。

AWS EC2コンソールでは、起動テンプレートのインスタンス構成情報をバージョン番号とともに指定できます。マシンカタログの作成または更新時に起動テンプレートのバージョンをマシンプロファイルの入力に指定すると、そのバージョンの起動テンプレートのプロパティが、プロビジョニングされたVDA VMにコピーされます。

次のプロパティは、マシンプロファイル入力を使用するか、New-ProvSchemeまたはSet-ProvSchemeコマンドのパラメーターとして明示的に指定して提供できます。これらがNew-ProvSchemeまたはSet-ProvSchemeコマンドで指定された場合、これらのプロパティのマシンプロファイル値よりも優先されます。

  • サービスオファリング
  • ネットワーク
  • セキュリティグループ
  • テナントの種類

注:

サービスオファリングがマシンプロファイル起動テンプレートで、またはNew-ProvSchemeコマンドのパラメーターとして提供されていない場合は、関連のエラーが発生します。

起動テンプレートのバージョンをマシンプロファイルの入力として使用してカタログを作成するには、次の手順を実行します:

  1. PowerShellウィンドウを開きます。
  2. asnp citrix*を実行し、Citrix固有のPowerShellモジュールをロードします。
  3. 起動テンプレートに関して、起動テンプレートのバージョン一覧を取得します。例:

    XDHyp:\HostingUnits\test\test-mp-sard (lt-01xxxxx).launchtemplate> ls | Select FullPath
    <!--NeedCopy-->
    
  4. IDプールを作成していない場合は作成します。例:

    New-AcctIdentityPool `
    -IdentityPoolName "abc11" `
    -NamingScheme "abc1-##" `
    -NamingSchemeType Numeric `
    -Domain "citrix-xxxxxx.local" `
    -ZoneUid "xxxxxxxx" `
    <!--NeedCopy-->
    
  5. マシンプロファイルの入力として起動テンプレートのバージョンを使用してプロビジョニングスキームを作成します。例:

    New-ProvScheme `
    -ProvisioningSchemeName "MPLT1" `
    -HostingUnitUid "c7f71f6a-3f45-4xxx-xxxx-xxxxxxxxxx" `
    -IdentityPoolUid "bf3a6ba2-1f80-4xxx-xxxx-xxxxxxxxx" `
    -MasterImageVM "XDHyp:\HostingUnits\xxxd-ue1a\apollo-non-persistent-vda-win2022 (ami-0axxxxxxxxxxx).template" `
    -CleanOnBoot `
    -MachineProfile "XDHyp:\HostingUnits\xxxx-ue1a\machineprofiletest (lt-01xxxxx).launchtemplate\lt-01xxxxx (1).launchtemplateversion"
    <!--NeedCopy-->
    

    サービスオファリング、セキュリティ グループ、テナンシー、ネットワークなどのパラメーターを上書きすることもできます。例:

    New-ProvScheme `
    -ProvisioningSchemeName "MPLT1" `
    -HostingUnitUid " c7f71f6a-3f45-4xxx-xxxx-xxxxxxxxxx" `
    -IdentityPoolUid " bf3a6ba2-1f80-4xxx-xxxx-xxxxxxxxx" `
    -MasterImageVM "XDHyp:\HostingUnits\xxxd-ue1a\apollo-non-persistent-vda-win2022 (ami-0axxxxxxxxxxx).template" `
    -CleanOnBoot `
    -MachineProfile "XDHyp:\HostingUnits\xxxx-ue1a\machineprofiletest (lt-01xxxx).launchtemplate\lt-01xxxx (1).launchtemplateversion" `
    -ServiceOffering "XDHyp:\HostingUnits\xxxd-ue1a\T3 Large Instance.serviceoffering"
    <!--NeedCopy-->
    
  6. プロビジョニングスキームをブローカーカタログとして登録します。例:

    New-BrokerCatalog -Name "MPLT1" `
    -AllocationType Random `
    -Description "Machine profile catalog" `
    -ProvisioningSchemeId fe7df345-244e-4xxxx-xxxxxxxxx `
    -ProvisioningType Mcs `
    -SessionSupport MultiSession `
    -PersistUserChanges Discard
    <!--NeedCopy-->
    
  7. カタログの作成を完了します。詳しくは、「Citrix PowerShell SDK」を参照してください。

マシンプロファイルカタログの入力に関しては、仮想マシンから起動テンプレートのバージョンに更新したり、起動テンプレートのバージョンから仮想マシンに更新したりすることもできます。例:

  • マシンプロファイルカタログの入力を仮想マシンから起動テンプレートのバージョンに更新するには、以下を実行します:

     Set-ProvScheme -ProvisioningSchemeName "CloudServiceOfferingTest" `
     -MachineProfile "XDHyp:\HostingUnits\xxxx-ue1a\machineprofiletest (lt-0bxxxxxxxxxxxx).launchtemplate\lt-0bxxxxxxxxxxxx (1).launchtemplateversion"
     <!--NeedCopy-->
    
  • マシンプロファイルカタログの入力を起動テンプレートのバージョンから仮想マシンに更新するには、以下を実行します:

     Set-ProvScheme -ProvisioningSchemeName "CloudServiceOfferingTest" `
     -MachineProfile "XDHyp:\HostingUnits\sard-ue1a\us-east-1a.availabilityzone\apollo-non-persistent-vda-win2022-2 (i-08xxxxxxxxx).vm"
     <!--NeedCopy-->
    

VMインスタンスのフィルタリング

マシンプロファイルVMとして使用するAWS EC2インスタンスは、マシンカタログを作成して正しく機能させるために互換性が必要です。マシンプロファイルの入力VMとして使用できるAWS EC2インスタンスを一覧表示するには、Get-HypInventoryItemコマンドを使用できます。このコマンドは、ホスティングユニットで使用可能なVMのインベントリに対して、ページネーションとフィルタリングを実行できます。

ページネーション:

Get-HypInventoryItemは、次の2つのページネーションモードをサポートしています:

  • ページングモードでは、-MaxRecordsおよび-Skipパラメーターを使用して項目のセットを返します:
    • -MaxRecords:デフォルトは1です。これにより、返される項目の数が制御されます。
    • -Skip:デフォルトは0です。これは、ハイパーバイザー内の一覧の絶対的な先頭(または絶対的な末尾)からスキップする項目の数を制御します。
  • スクロールモードでは、-MaxRecords-ForwardDirection、および-ContinuationTokenパラメーターを使用してレコードをスクロールできます:
    • -ForwardDirection:デフォルトはTrueです。これは-MaxRecordsとともに使用され、次の一致するレコードのセットまたは前の一致するレコードのセットを返します。
    • -ContinuationToken:直後(またはForwardDirectionfalseの場合は直前)の項目を返しますが、ContinuationTokenで指定された項目は含まれません。

ページネーションの例:

  • 一番下にある名前を持つマシンテンプレートの単一レコードを返します。AdditionalDataフィールドには、TotalItemsCountTotalFilteredItemsCountが含まれます:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template
     <!--NeedCopy-->
    
  • 一番下にある名前のマシンテンプレート10個のレコードを返すには、以下を実行します:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -MaxRecords 10 | select Name
     <!--NeedCopy-->
    
  • 一番上にある名前で終わるレコードの配列を返すには、以下を実行します:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -ForwardDirection $False -MaxRecords 10 | select Name
     <!--NeedCopy-->
    
  • 指定されたContinuationTokenに関連付けられたマシンテンプレートで始まるレコードの配列を返すには 、以下を実行します:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -ContinuationToken "ami-07xxxxxxxxxx" -MaxRecords 10
     <!--NeedCopy-->
    

フィルタリング:

フィルタリングでは、次の追加のオプションパラメーターがサポートされています。これらのパラメーターをページネーションオプションと組み合わせることができます。

  • -ContainsName "my_name":指定された文字列がAMI名の一部と一致する場合、そのAMIはGet結果に含まれます。例:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -MaxRecords 100 -ContainName ‘apollo’ | select Name
     <!--NeedCopy-->
    
  • -Tags '{ "Key0": "Value0", "Key1": "Value1", "Key2": "Value2" }':AMIにこれらのタグの少なくとも1つがある場合、そのAMIはGet 結果に含まれます。例:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -MaxRecords 100 -Tags '{"opex owner": "Not tagged"}' | select Name
     <!--NeedCopy-->
    

    注:

    2つのタグ値がサポートされています。Not Taggedタグ値は、タグの一覧に指定されたタグが含まれていない項目と一致します。All valuesタグ値は、タグの値に関係なくタグを持つ項目と一致します。それ以外の場合、項目にタグがあり、その値がフィルターで指定されたものと等しい場合にのみ一致が発生します。

  • -Id "ami-0a2d913927e0352f3":AMIが指定されたIDと一致する場合、そのAMIはGet結果に含まれます。例:

     Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -Id ami-xxxxxxxxxxxxx
     <!--NeedCopy-->
    

AdditionalDataパラメーターのフィルタリング:

AdditionalDataフィルターパラメーターは、機能、サービスオファリング、またはAdditionalData内のプロパティに基づいてテンプレートまたはVMを一覧表示します。例:

(Get-HypInventoryItem -ResourceType "launchtemplateversion" -LiteralPath "XDHyp:\HostingUnits\aws" -MaxRecords 200).AdditionalData
<!--NeedCopy-->

-Warnパラメーターを追加して、互換性のないVMを示すこともできます。このVMは、Warningという名前のAdditionalDataフィールドに含まれます。例:

(Get-HypInventoryItem -ResourceType "launchtemplateversion" -LiteralPath "XDHyp:\HostingUnits\aws" -MaxRecords 200 -Template "ami-015xxxxxxxxx" -Warn $true).AdditionalData
<!--NeedCopy-->

追加情報