View a markdown version of this page

を使用して Amazon WorkSpaces アプリケーションリソースの作成を自動化する AWS CloudFormation - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

を使用して Amazon WorkSpaces アプリケーションリソースの作成を自動化する AWS CloudFormation

Ram Kandaswamy (Amazon Web Services)

概要

このパターンでは、 AWS CloudFormation テンプレート AWS クラウド を使用して での Amazon WorkSpaces アプリケーションリソースの作成を自動化するコードサンプルと手順を示します。このパターンは、 CloudFormation スタックを使用して、Image Builder、イメージ、フリートインスタンス、スタックなどの WorkSpaces アプリケーションアプリケーションリソースの作成を自動化する方法を示しています。デスクトップまたはアプリケーション配信モードを使用して、HTML5-compliantのブラウザで WorkSpaces アプリケーションアプリケーションをエンドユーザーにストリーミングできます。

前提条件と制限

前提条件

  • アクティブな AWS アカウント

  • WorkSpaces アプリケーションの利用規約の承諾

  • フリート、スタックImage Builder などの WorkSpaces アプリケーションリソースに関する基本的な知識

制限事項

  • WorkSpaces アプリケーションインスタンスに関連付けられた AWS Identity and Access Management (IAM) ロールは、そのインスタンスの作成後に変更することはできません。

  • Image Builder の作成後に WorkSpaces Applications Image Builder インスタンスのプロパティ (サブネットセキュリティグループなど) を変更することはできません。

アーキテクチャ

次の図は、 CloudFormation テンプレートを使用して WorkSpaces アプリケーションリソースの作成を自動化する方法を示しています。

WorkSpaces アプリケーションリソースを自動的に作成するためのワークフロー。

この図表は、次のワークフローを示しています:

  1. このパターンの追加情報セクションの YAML コードに基づいて CloudFormation テンプレートを作成します。

  2. CloudFormation テンプレートは CloudFormation テストスタックを作成します。

    1. (オプション) WorkSpaces アプリケーションを使用して Image Builder インスタンスを作成します。

    2. (オプション) カスタムソフトウェアを使用して Windows イメージを作成します。

  3. CloudFormation スタックは WorkSpaces Applications フリートインスタンスとスタックを作成します。

  4. WorkSpaces アプリケーションリソースを HTML5-compliantのブラウザでエンドユーザーにデプロイします。

ツール

  • Amazon WorkSpaces Applications は、どこからでもデスクトップアプリケーションに瞬時にアクセスできるフルマネージド型のアプリケーションストリーミングサービスです。WorkSpaces Applications は、アプリケーションのホストと実行に必要な AWS リソースを管理し、自動的にスケールし、オンデマンドでユーザーへのアクセスを提供します。

  • AWS CloudFormation は、 AWS リソースのモデル化とセットアップ、迅速かつ一貫したプロビジョニング、ライフサイクル全体の管理に役立ちます。リソースを個別に管理する代わりに、テンプレートを使用してリソースとその依存関係を記述し、それらをスタックとしてまとめて起動して設定できます。複数の および にまたがるスタックを管理 AWS アカウント およびプロビジョニングできます AWS リージョン。

ベストプラクティス

  • Image Builder のネットワークアクセスを正しく設定する – アウトバウンドのみのインターネットアクセスに NAT ゲートウェイを使用して、適切なインターネットアクセスで Virtual Private Cloud (VPC) サブネットで Image Builder を起動します。

    イメージを作成する前に、必要なリソース (アプリケーションサーバー、データベース、ライセンスサーバーなど) へのネットワーク接続をテストします。VPC ルートテーブルで、必要なすべてのネットワークリソースへの接続が許可されていることを確認します。詳細については、WorkSpaces アプリケーションドキュメントの「インターネットアクセス」を参照してください。

  • フリート容量をサービスクォータに対してプロアクティブにモニタリングする – WorkSpaces Applications インスタンスタイプとサイズクォータは ごと AWS アカウント、 ごとです AWS リージョン。同じリージョン内に同じインスタンスタイプとサイズを使用するフリートが複数存在する場合、そのリージョン内のすべてのフリートインスタンスの総数は、該当するクォータ以下でなければなりません。詳細については、WorkSpaces アプリケーションドキュメントの「フリートのトラブルシューティング」を参照してください。

  • フリートデプロイ前に Image Builder テストモードでアプリケーションをテストする – イメージを作成してフリートにデプロイする前に、必ず Image Builder テストモードでアプリケーションを検証します。テストモードは、エンドユーザーがフリートインスタンスに対して持つ制限されたアクセス許可をシミュレートします。詳細については、WorkSpaces アプリケーションドキュメントの「Image Builders のトラブルシューティング」を参照してください。

エピック

タスク説明必要なスキル

カスタムソフトウェアをインストールしてイメージを作成します。

  1. Image Builder を起動し、関連するインスタンスタイプ、サブネット、セキュリティグループなどを選択します。

  2. インスタンスへの接続時に 管理モードを使用します。

  3. Image Assistant または PowerShell スクリプトを使用して、カスタムソフトウェアの新しい Windows イメージを作成します。

注記

Windows AppLocker 機能を使用してイメージをさらにロックダウンすることを検討してください。

AWS DevOps、クラウドアーキテクト
タスク説明必要なスキル

CloudFormation テンプレートを更新します。

  1. このパターンの追加情報「追加情報」セクションのコードを YAML ファイルとして使用します。

  2. YAML ファイルを、環境内のパラメータに必要な値で更新します。

AWS システム管理者、クラウド管理者、クラウドアーキテクト、AWS 全般、AWS 管理者

テンプレートを使用して CloudFormation スタックを作成します。

  1. にサインイン AWS マネジメントコンソール し、 CloudFormation コンソールを開きます。

  2. ナビゲーションペインで、[スタック] を選択します。

  3. [スタックの作成] を選択し、[With new resources (standard) 新しいリソースを使用 (標準)] を選択します。

  4. [前提条件 - テンプレートの準備] セクションで、 [テンプレートの準備完了] を選択します。

  5. [テンプレートの指定] セクションで、[テンプレートファイルのアップロード] を選択します。

  6. ファイルの選択 を選択し、更新された CloudFormation テンプレートを選択します。

  7. ウィザードの残りの手順を完了してスタックを作成します。

アプリ所有者、AWS システム管理者、Windows エンジニア

トラブルシューティング

問題ソリューション

さまざまな問題

詳細については、WorkSpaces アプリケーションドキュメントの「トラブルシューティング」を参照してください。

関連リソース

リファレンス

チュートリアルと動画

追加情報

次のコードは、WorkSpaces アプリケーションリソースを自動的に作成するために使用できる CloudFormation テンプレートの例です。

AWSTemplateFormatVersion: 2010-09-09 Parameters: SubnetIds: Type: 'List<AWS::EC2::Subnet::Id>' testSecurityGroup: Type: 'AWS::EC2::SecurityGroup::Id' ImageName: Type: String Resources: AppStreamFleet: Type: 'AWS::AppStream::Fleet' Properties: ComputeCapacity: DesiredInstances: 5 InstanceType: stream.standard.medium Name: appstream-test-fleet DisconnectTimeoutInSeconds: 1200 FleetType: ON_DEMAND IdleDisconnectTimeoutInSeconds: 1200 ImageName: !Ref ImageName MaxUserDurationInSeconds: 345600 VpcConfig: SecurityGroupIds: - !Ref testSecurityGroup SubnetIds: !Ref SubnetIds AppStreamStack: Type: 'AWS::AppStream::Stack' Properties: Description: AppStream stack for test DisplayName: AppStream test Stack Name: appstream-test-stack StorageConnectors: - ConnectorType: HOMEFOLDERS UserSettings: - Action: CLIPBOARD_COPY_FROM_LOCAL_DEVICE Permission: ENABLED - Action: CLIPBOARD_COPY_TO_LOCAL_DEVICE Permission: ENABLED - Action: FILE_DOWNLOAD Permission: ENABLED - Action: PRINTING_TO_LOCAL_DEVICE Permission: ENABLED AppStreamFleetAssociation: Type: 'AWS::AppStream::StackFleetAssociation' Properties: FleetName: appstream-test-fleet StackName: appstream-test-stack DependsOn: - AppStreamFleet - AppStreamStack