AWSカタログを作成する
マシンカタログを作成するでは、マシンカタログを作成するウィザードについて説明しています。以下の情報は、AWS仮想化環境に固有の詳細を扱っています。
注:
AWSカタログを作成する前に、AWSへの接続の作成を完了する必要があります。AWSへの接続を参照してください。
制限事項
Citrix Virtual Apps and Desktops™ 2203 LTSR 以降では、MCS AWS プラグインは DescribeInstanceTypes AWS API 呼び出しを行い、それが成功すると、MCS は API 応答から作成されたインベントリ名を使用します。
したがって、CVAD 1912 から 2203 以降にアップグレードする場合、AWS で DefineInstanceType 権限を無効にし、Set-ProvScheme コマンドを使用して既存のカタログを更新して AWS の命名規則に合わせます。その後、カタログの更新が完了し、サービス提供が AWS の命名規則に一致した後、DescribeInstanceType 権限を再度追加します。
イメージ準備中のネットワーク設定
イメージ準備中に、元のVMに基づいて準備用仮想マシン(VM)が作成されます。この準備用VMはネットワークから切断されます。準備用VMからネットワークを切断するために、すべてのインバウンドおよびアウトバウンドトラフィックを拒否するネットワークセキュリティグループが作成されます。このネットワークセキュリティグループは永続的であり、再利用されます。ネットワークセキュリティグループの名前は Citrix.XenDesktop.IsolationGroup-GUID で、GUIDはランダムに生成されます。
AWSテナンシーを構成する
AWSは以下のテナンシーオプションを提供します。
- 共有テナンシー(デフォルトタイプ):異なる顧客の複数のAmazon EC2インスタンスが、同じ物理ハードウェア上に存在する場合があります。
- 専用テナンシー:お客様のEC2インスタンスは、お客様がデプロイした他のインスタンスと同じハードウェア上でのみ実行されます。他の顧客は同じハードウェアを使用しません。
PowerShellを使用して、MCSでAWS専用ホストをプロビジョニングできます。
PowerShellを使用してAWS専用ホストテナンシーを構成する
PowerShell を介してホストテナンシーが定義されたマシンカタログを作成できます。
Amazon [EC2] 専用ホストは、[EC2] インスタンス容量を持つ物理サーバーであり、完全に専用であるため、既存のソケットごとまたはVMごとのソフトウェアライセンスを使用できます。
専用ホストは、インスタンスタイプに基づいて事前に設定された利用率を持っています。たとえば、C4 Large インスタンスタイプの単一の割り当て済み専用ホストは、16 インスタンスの実行に制限されています。詳細については、AWS サイト を参照してください。
AWS ホストへのプロビジョニングの要件は次のとおりです。
- インポートされた BYOL (bring your own license) イメージ (AMI)。専用ホストでは、既存のライセンスを使用および管理します。
- プロビジョニング要求を満たすのに十分な利用率を持つ専用ホストの割り当て。
- 自動配置を有効にする。
PowerShell を使用して AWS の専用ホストにプロビジョニングするには、New-ProvScheme コマンドレットを、パラメーター TenancyType を Host に設定して使用します。
詳細については、Citrix開発者向けドキュメント を参照してください。
AMI からマシンプロパティをキャプチャする
AWS で Machine Creation Services (MCS) を使用してマシンをプロビジョニングするためのカタログを作成するときは、そのカタログのマスター/ゴールデンイメージを表す AMI を選択します。その AMI から、MCS はディスクのスナップショットを使用します。以前のリリースでは、マシンにロールやタグを設定したい場合、AWS コンソールを使用して個別に設定していました。この機能はデフォルトで有効になっています。
ヒント:
AWS インスタンスプロパティキャプチャを使用するには、AMI に関連付けられた VM が必要です。
このプロセスを改善するために、MCS は AMI が取得されたインスタンスからプロパティを読み取り、そのマシンの Identity Access Management (IAM) ロールとタグを、特定のカタログ用にプロビジョニングされたマシンに適用します。このオプション機能を使用する場合、カタログ作成プロセスは選択された AMI ソースインスタンスを見つけ、限られたプロパティセットを読み取ります。これらのプロパティはその後、AWS 起動テンプレートに保存され、そのカタログのマシンをプロビジョニングするために使用されます。カタログ内のすべてのマシンは、キャプチャされたインスタンスプロパティを継承します。
キャプチャされるプロパティは次のとおりです。
- IAMロール – プロビジョニングされたインスタンスに適用されます。
- タグ – プロビジョニングされたインスタンス、そのディスク、およびNICに適用されます。これらのタグは、S3バケットとオブジェクト、AMI、スナップショット、起動テンプレートを含む、一時的なCitrix®リソースに適用されます。
ヒント:
一時的なCitrixリソースのタグ付けはオプションであり、カスタムプロパティ
AwsOperationalResourcesTaggingを使用して構成できます。
AWSインスタンスプロパティのキャプチャ
AWSホスティング接続のプロビジョニングスキームを作成する際に、カスタムプロパティAwsCaptureInstancePropertiesを指定することで、この機能を使用できます。
New-ProvScheme -CustomProperties "AwsCaptureInstanceProperties,true" …<standard provscheme parameters
詳細については、Citrix開発者向けドキュメントを参照してください。
注:
AwsCaptureInstancePropertiesは非推奨です。
マシンプロファイルからマシンプロパティをキャプチャする
MCSを使用してAWSマシンをプロビジョニングするためのカタログを作成する際、マシンプロファイルを使用して特定のマシンプロパティ設定をプリセットできます。
これを行うには、次の手順に従います。
- マシンプロファイルを、このカタログを作成するリソースと同じアベイラビリティゾーンに保存します。
- カタログ作成ウィザードのマシンテンプレートページで、マシンプロファイルを使用を選択します。選択したリソースと同じアベイラビリティゾーンにあるマシンプロファイルが表示されます。
- 必要に応じてマシンプロファイルを選択します。
注:
マシンプロファイルまたはAMIのいずれかを使用して、マシンプロパティをキャプチャできます。Web Studioで、マシンプロファイルを使用を選択すると、仮想マシンにマシンテンプレートプロパティを適用オプションは自動的に非表示になります。
AWS運用リソースのタグ付け
MCSを使用してAWSでマシンをプロビジョニングするためのカタログを作成する際、IAMロールとタグプロパティをそれらのマシンに適用するかどうかを制御できます。また、マシンタグを運用リソースに適用するかどうかも制御できます。
Amazon Machine Image (AMI) は、Amazon Cloud環境内で仮想マシンを作成するために使用される仮想アプライアンスの一種で、一般にEC2と呼ばれます。AMIを使用して、EC2環境を使用するサービスを展開します。MCS for AWSを使用してマシンをプロビジョニングするためのカタログを作成する際、そのカタログのゴールデンイメージとして機能するAMIを選択します。
重要:
インスタンスプロパティと起動テンプレートをキャプチャしてカタログを作成することは、運用リソースのタグ付けを使用するために必要です。
AWSカタログを作成するには、まずゴールデンイメージとするインスタンスのAMIを作成する必要があります。MCSはそのインスタンスからタグを読み取り、起動テンプレートに組み込みます。起動テンプレートのタグは、以下のものを含む、AWS環境で作成されたすべてのCitrixリソースに適用されます。
- 仮想マシン
- VMディスク
- VMネットワークインターフェース
- S3バケット
- S3オブジェクト
- 起動テンプレート
- AMI
運用リソースにタグを付ける
PowerShell を使用してリソースにタグを付けるには:
- DDC ホストから PowerShell ウィンドウを開きます。
- Citrix 固有の PowerShell モジュールをロードするには、
asnp citrixコマンドを実行します。
プロビジョニングされた VM のリソースにタグを付けるには、新しいカスタムプロパティ AwsOperationalResourcesTagging を使用します。このプロパティの構文は次のとおりです。
New-ProvScheme -CustomProperties "AwsCaptureInstanceProperties,true; AwsOperationalResourcesTagging,true" …<standard provscheme parameters>
次に行うこと
- これが最初に作成されたカタログである場合、Web Studio は デリバリーグループを作成するようにガイドします。
- 構成プロセス全体を確認するには、インストールと構成を参照してください。
- カタログを管理するには、マシンカタログの管理およびAWS カタログの管理を参照してください。
VM 上のタグをコピーする
マシンプロファイルで指定された NIC およびディスク (ID ディスク、ライトバックキャッシュディスク、OS ディスク) のタグを、MCS マシンカタログで新しく作成された VM にコピーできます。これらのタグは、マシンプロファイルソース (AWS VM インスタンスまたは AWS 起動テンプレートバージョン) のいずれかで指定できます。この機能は、永続的および非永続的なマシンカタログと VM に適用されます。
注:
- AWS EC2 コンソールでは、起動テンプレートバージョンのリソースタグの下にネットワークインターフェイスのタグの値が表示されません。ただし、PowerShell コマンド
aws ec2 describe-launch-template-versions --launch-template-id lt-0bb652503d45dcbcd --versions 12を実行してタグの仕様を確認できます。- マシンプロファイルソース(VMまたは起動テンプレートバージョン)に2つのネットワークインターフェイス(eni-1とeni-2)があり、eni-1にタグt1、eni-2にタグt2がある場合、VMは両方のネットワークインターフェイスのタグを取得します。
マシンプロファイルを使用してカタログを作成する
AWSでMachine Creation Services™ (MCS) を使用してマシンをプロビジョニングするためのカタログを作成する際、EC2インスタンス(VM)または起動テンプレートバージョンからハードウェアプロパティを取得し、プロビジョニングされたマシンに適用するためにマシンプロファイルを使用できるようになりました。取得されるプロパティには、例えば、EBSボリュームプロパティ、インスタンスタイプ、EBS最適化、その他のサポートされているAWS構成が含まれます。カタログを編集する際、プロビジョニングされたマシンのマシンプロファイルは、別のVMまたは起動テンプレートを提供することで変更できます。
注:
EBSボリュームプロパティは、マシンプロファイルからのみ派生します。
重要な考慮事項
MCSマシンカタログを作成する際の重要な考慮事項:
-
New-ProvSchemeおよびSet-ProvSchemeコマンドでマシンハードウェアプロパティパラメータを追加すると、パラメータで指定された値がマシンプロファイルの値よりも優先されます。 -
AwsCaptureInstancePropertiesをtrueとして設定し、MachineProfileプロパティを設定しない場合、IAMロールとタグのみが取得されます。 -
AwsCaptureInstancePropertiesとMachineProfileを同時に設定することはできません。注:
AwsCaptureInstancePropertiesは非推奨です。 -
次のプロパティの値を明示的に指定する必要があります。
- テナンシータイプ
- セキュリティグループ
- NICまたは仮想ネットワーク
-
AwsCaptureInstancePropertiesを有効にするか、マシンプロファイルを指定した場合にのみ、AwsOperationalResourcesTaggingを有効にできます。
MCSマシンカタログ作成後の重要な考慮事項:
- カタログに追加された新しいVMのみが、この変更の影響を受けます。
- マシンプロファイルベースのカタログを非マシンプロファイルベースのカタログに変更することはできません。
マシンプロファイルを使用してマシンカタログを作成する
マシンプロファイルを使用してマシンカタログを作成するには:
- PowerShellウィンドウを開きます。
- Citrix固有のPowerShellモジュールをロードするには、
asnp citrix*を実行します。 -
まだ作成されていない場合は、IDプールを作成します。例:
New-AcctIdentityPool -IdentityPoolName idPool -NamingScheme ms## -Domain abcdf -NamingSchemeType Numeric <!--NeedCopy--> -
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--> - カタログの作成を完了します。詳細については、Citrix PowerShell SDKを参照してください。
最初にマシンプロファイルでプロビジョニングされたカタログのマシンプロファイルを更新するには:
-
Set-ProvSchemeコマンドを実行します。例:Set-ProvScheme ` -ProvisioningSchemeUid "<ID" ` -MachineProfile "XDHyp:\HostingUnits\abc\us-east-1a.availabilityzone\citrix-cvad-machineprofile-instance (i-0xxxxxxxx).vm" <!--NeedCopy-->
起動テンプレートバージョンでカタログを作成する
起動テンプレートバージョンをマシンプロファイル入力として使用して、MCSマシンカタログを作成できます。また、マシンプロファイルカタログの入力をVMから起動テンプレートバージョンへ、または起動テンプレートバージョンからVMへ更新することもできます。
AWS EC2コンソールでは、起動テンプレートのインスタンス構成情報をバージョン番号とともに提供できます。マシンカタログの作成または更新時に、起動テンプレートバージョンをマシンプロファイル入力として指定すると、そのバージョンの起動テンプレートのプロパティがプロビジョニングされたVDA VMにコピーされます。
以下のプロパティは、マシンプロファイル入力として、またはNew-ProvSchemeやSet-ProvSchemeコマンドのパラメーターとして明示的に指定できます。New-ProvSchemeやSet-ProvSchemeコマンドで指定された場合、これらのプロパティのマシンプロファイル値よりも優先されます。
- サービス提供
- ネットワーク
- セキュリティグループ
- テナンシータイプ
注:
サービス提供がマシンプロファイルの起動テンプレートで提供されていない場合、または
New-ProvSchemeコマンドのパラメーターとして提供されていない場合、適切なエラーが発生します。
起動テンプレートバージョンをマシンプロファイル入力として使用してカタログを作成するには:
- PowerShellウィンドウを開きます。
- Citrix固有のPowerShellモジュールをロードするために
asnp citrix*を実行します。 -
起動テンプレートの起動テンプレートバージョンの一覧を取得します。例:
XDHyp:\HostingUnits\test\test-mp-sard (lt-01xxxxx).launchtemplate> ls | Select FullPath <!--NeedCopy--> -
作成されていない場合は、IDプールを作成します。例:
New-AcctIdentityPool ` -IdentityPoolName "abc11" ` -NamingScheme "abc1-##" ` -NamingSchemeType Numeric ` -Domain "citrix-xxxxxx.local" ` -ZoneUid "xxxxxxxx" ` <!--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-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--> -
プロビジョニングスキームをブローカーカタログとして登録します。例:
New-BrokerCatalog -Name "MPLT1" ` -AllocationType Random ` -Description "Machine profile catalog" ` -ProvisioningSchemeId fe7df345-244e-4xxxx-xxxxxxxxx ` -ProvisioningType Mcs ` -SessionSupport MultiSession ` -PersistUserChanges Discard <!--NeedCopy--> - カタログの作成を完了します。詳細については、Citrix PowerShell SDKを参照してください。
マシンプロファイルカタログの入力を、VMから起動テンプレートバージョンへ、および起動テンプレートバージョンからVMへ更新することもできます。例:
-
マシンプロファイルカタログの入力をVMから起動テンプレートバージョンに更新するには:
Set-ProvScheme -ProvisioningSchemeName "CloudServiceOfferingTest" ` -MachineProfile "XDHyp:\HostingUnits\xxxx-ue1a\machineprofiletest (lt-0bxxxxxxxxxxxx).launchtemplate\lt-0bxxxxxxxxxxxx (1).launchtemplateversion" <!--NeedCopy--> -
マシンプロファイルカタログの入力を、起動テンプレートバージョンからVMに更新するには:
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: は、ForwardDirectionが false の場合、ContinuationTokenで指定された項目を含まずに、その直後 (または直前) の項目を返します。
-
ページネーションの例:
-
最も名前の小さいマシンテンプレートの単一レコードを返すには。
AdditionalDataフィールドにはTotalItemsCountとTotalFilteredItemsCountがあります: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つを持っている場合、それはGet結果に含まれます。例:Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -MaxRecords 100 -Tags '{"opex owner": "Not tagged"}' | select Name <!--NeedCopy-->注:
2つのタグ値がサポートされています。タグなし のタグ値は、タグのリストに指定されたタグがない項目と一致します。すべての値 のタグ値は、タグの値に関係なくタグを持つ項目と一致します。それ以外の場合、一致は、項目がタグを持ち、その値がフィルターで指定された値と等しい場合にのみ発生します。
-
-Id "ami-0a2d913927e0352f3": AMIが指定されたIDと一致する場合、それはGet結果に含まれます。例:Get-HypInventoryItem -LiteralPath "XDHyp:\HostingUnits\ctx-test" -ResourceType template -Id ami-xxxxxxxxxxxxx <!--NeedCopy-->
AdditionalData パラメータでのフィルタリング:
AdditionalData フィルターパラメータは、テンプレートまたはVMを、その機能、サービス提供、またはAdditionalDataにある任意のプロパティに基づいてリストします。例:
(Get-HypInventoryItem -ResourceType "launchtemplateversion" -LiteralPath "XDHyp:\HostingUnits\aws" -MaxRecords 200).AdditionalData
<!--NeedCopy-->
互換性のないVMを示すために、-Warnパラメータを追加することもできます。VMには、Warningという名前のAdditionalDataフィールドが含まれています。例:
(Get-HypInventoryItem -ResourceType "launchtemplateversion" -LiteralPath "XDHyp:\HostingUnits\aws" -MaxRecords 200 -Template "ami-015xxxxxxxxx" -Warn $true).AdditionalData
<!--NeedCopy-->