AppStream 2.0 ユーザーに対してホームフォルダを有効にして管理する - Amazon AppStream 2.0

AppStream 2.0 ユーザーに対してホームフォルダを有効にして管理する

AppStream 2.0 では、組織のユーザーに対して次の永続的ストレージをサポートしています。

  • ホームフォルダ

  • Google Drive for G Suite

  • OneDrive for Business

組織に対して、1 つ以上のオプションを有効にすることができます。AppStream 2.0 スタックでホームフォルダを有効にすると、アプリケーションストリーミングセッション中に、スタックのユーザーは永続的ストレージのフォルダにアクセスできます。ユーザーがホームフォルダにアクセスするために必要な設定はありません。ユーザーが自分のホームフォルダに保存したデータは、Amazon Web Services アカウントの Amazon Simple Storage Service バケットに自動的にバックアップされ、そのユーザーの後のセッションで使用できるようになります。

転送中のファイルやフォルダは Amazon S3 の SSL エンドポイントを使用して暗号化されます。保管中のファイルやフォルダは Amazon S3 で管理される暗号化キーを使用して暗号化されます。

ホームフォルダは、以下のデフォルトの場所にあるフリートインスタンスに保存されます。

  • ドメインに参加していない Windows インスタンス: C:\Users\PhotonUser\My Files\Home Folder

  • ドメインに参加済みの Windows インスタンス: C:\Users\%username%\My Files\Home Folder

  • Linux インスタンス: ~/MyFiles/HomeFolder

ホームフォルダを保存先とするようにアプリケーションを設定する場合は、該当パスを管理者として使用します。ユーザーがホームフォルダを見つけられない場合があります。アプリケーションによっては、File Explorer の最上位フォルダとしてホームフォルダを表示する、リダイレクトを認識しないためです。このような場合は、File Explorer 内の同じディレクトリを参照することで、ユーザーがホームフォルダにアクセスにできます。

計算集約型アプリケーションに関連するファイルとディレクトリ

AppStream 2.0 ストリーミングセッションでは、処計算集約型アプリケーションに関連付けられた大きなファイルとディレクトリを永続ストレージに保存すると、基本的な生産性アプリケーションに必要なファイルとディレクトリを保存するよりも時間がかかる場合があります。たとえば、アプリケーションが大量のデータを保存したり、同じファイルを頻繁に変更したりする場合は、1 回の書き込み操作を実行するアプリケーションによって作成されたファイルを保存する場合よりも時間がかかる場合があります。また、多くの小さなファイルを保存するのに時間がかかる場合があります。

ユーザーが、計算集約型アプリケーションに関連付けられたファイルとディレクトリを保存しているために、AppStream 2.0 の永続的ストレージオプションが想定どおりに動作しない場合には、Amazon FSx for Windows File Server や AWS Storage Gateway ファイルゲートウェイなどの、サーバーメッセージブロック (SMB) ソリューションの使用をお勧めします。以下は、これらの SMB ソリューションでの使用に適した、計算集約型アプリケーションに関連するファイルとディレクトリの例です。

  • 統合開発環境 (IDE) 用の Workspace フォルダ

  • ローカルデータベースファイル

  • グラフィックシミュレーションアプリケーションによって作成されたスクラッチスペースフォルダ

詳細については、以下を参照してください。

AppStream 2.0 ユーザーのホームフォルダを有効にする

ホームフォルダを有効にする前に、以下を実行する必要があります。

ホームフォルダの有効化または無効化は、スタックの作成中 (「スタックの作成」を参照)、または AWS Management Console から AppStream 2.0、AWS SDK、あるいは AWS CLI を使用してスタックを作成した後に行うことができます。ホームフォルダは、AWS リージョンごとに Amazon S3 バケットにバックアップされます。

AWS リージョンの AppStream 2.0 スタックに対して初めてホームフォルダを有効にした場合、同じリージョンの対象アカウント内で、Amazon S3 バケットがサービスにより作成されます。同じバケットを使用して、そのリージョンのすべてのユーザーおよびすべてのスタックのホームフォルダのコンテンツが保存されます。詳細については、Amazon S3 バケットのストレージ を参照してください。

注記

AppStream 2.0 ストリーミングセッション中のホームフォルダの使用を開始するのに役立つようにユーザーに提供できるガイダンスについては、ホームフォルダを使用する を参照してください。

スタックの作成時にホームフォルダを有効にするには

  • スタックの作成」の手順に従い、[Enable Home Folders (ホームフォルダを有効にする)] が選択されていることを確認します。

既存のスタックのホームフォルダを有効にするには

  1. AppStream 2.0 コンソールを https://console.aws.amazon.com/appstream2 で開きます。

  2. 左側のナビゲーションペインで、[Stacks (スタック)] を選択し、ホームフォルダを有効にするスタックを選択します。

  3. スタックリストの下の、[Storage] をクリックし、[Enable Home Folders] を選択します。

  4. [Enable Home Folders] ダイアログボックスで、[Enable] を選択します。

ホームフォルダを管理する

ホームフォルダを無効にする

既にホームフォルダに保存されているユーザーコンテンツを失うことなく、スタックに対してホームフォルダを無効にできます。スタック用のホームフォルダを無効にすると、次のようになります。

  • スタックのアクティブなストリーミングセッションに接続されているユーザーはエラーメッセージを受け取ります。ホームフォルダにコンテンツを保存できなくなることが通知されます。

  • ホームフォルダが無効になったスタックを使用する新しいセッションでは、ホームフォルダは表示されません。

  • 1 つのスタックのホームフォルダを無効にしても、他のスタックに対して無効になりません。

  • すべてのスタックに対してホームフォルダが無効になっている場合でも、AppStream 2.0 はユーザーコンテンツを削除しません。

スタックのホームフォルダへのアクセスを復元するには、このトピックで前に説明したステップに従って、ホームフォルダをもう一度有効にします。

スタックの作成時にホームフォルダを無効にするには

  • スタックの作成」の手順に従い、[Enable Home Folders (ホームフォルダを有効にする)] オプションが選択解除されていることを確認します。

既存のスタックのホームフォルダを無効にするには

  1. AppStream 2.0 コンソールを https://console.aws.amazon.com/appstream2 で開きます。

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

  3. スタックリストの下の、[Storage] をクリックし、[Enable Home Folders] をクリアします。

  4. [Disable Home Folders] ダイアログボックスで、CONFIRM (大文字と小文字は区別されます) と入力し選択を確認します。次に [Disable] を選択します。

Amazon S3 バケットのストレージ

AppStream 2.0 は、アカウントで作成された Amazon S3 バケットを使用して、ホームフォルダに保存されているユーザーコンテンツを管理します。AWS リージョンごとに、AppStream 2.0 によりアカウントにバケットが作成されます。そのリージョン内のスタックのストリーミングセッションから生成されたすべてのユーザーコンテンツはそのバケットに保存されます。このバケットは、管理者が入力または設定することなく、サービスによって完全に管理されます。このバケットの名前は、次のように特定の形式で付けられます。

appstream2-36fb080bb8-region-code-account-id-without-hyphens

ここで、region-code にはスタックが作成される AWS リージョンコードを、account-id-without-hyphens には自分の Amazon Web Services アカウント ID をそれぞれ指定します。バケット名の最初の部分 appstream2-36fb080bb8- は、複数のアカウントやリージョンにまたがる場合でも変更されません。

たとえば、アカウント番号 123456789012 で米国西部 (オレゴン) リージョン (us-west-2) のスタックのホームフォルダを有効にした場合、サービスにより、表示された名前でリージョンに Amazon S3 バケットが作成されます。適切なアクセス許可を持つ管理者のみが、このバケットを削除できます。

appstream2-36fb080bb8-us-west-2-123456789012

前述のとおり、スタックに対してホームフォルダを無効にしても、Amazon S3 バケットに保存されたユーザーコンテンツは削除されません。ユーザーコンテンツを完全に削除するには、適切なアクセス権限を持った管理者が、Amazon S3 コンソールから行う必要があります。AppStream 2.0 は、バケットの誤った削除を防止するバケットポリシーを追加します。詳細については、IAM ポリシーを使用したホームフォルダおよびアプリケーション設定の永続化用の Amazon S3 バケットへの管理者アクセスの管理 を参照してください。

ホームフォルダコンテンツの同期

ホームフォルダが有効な場合、AppStream 2.0 は、コンテンツを保存するユーザーごとに一意のフォルダを作成します。このフォルダは、 Amazon Web Services アカウント (リージョン) にある S3 バケット内のユーザー名のハッシュを使用する、一意の Amazon S3 プレフィックスとして作成されます。AppStream 2.0 は Amazon S3 にホームフォルダを作成した後、そのフォルダ内のアクセスされたコンテンツを S3 バケットからフリートインスタンスにコピーします。これにより、ユーザーはストリーミングセッション中に、フリートインスタンスからホームフォルダのコンテンツにすばやくアクセスすることができます。S3 バケット内のユーザーのホームフォルダコンテンツに加えた変更と、フリートインスタンス上のホームフォルダコンテンツに対してユーザーが加えた変更は、Amazon S3 と AppStream 2.0 間で次のように同期されます。

  1. ユーザーの AppStream 2.0 ストリーミングセッションが開始される際に、AppStream 2.0 は、そのユーザー用として Amazon S3 バケットに保存されているホームフォルダファイルを、Amazon Web Services アカウントとリージョンのためにカタログ化します。

  2. ユーザーのホームフォルダコンテンツは、ストリーミング元の AppStream 2.0 フリートインスタンスにも保存されます。ユーザーが AppStream 2.0 フリートインスタンス上のホームフォルダにアクセスすると、カタログ化されたファイルの一覧が表示されます。

  3. AppStream 2.0 は、ユーザーがストリーミングアプリケーションを使用してストリーミングセッション中にファイルを開いた後にのみ、S3 バケットからフリートインスタンスにファイルをダウンロードします。

  4. AppStream 2.0 がフリートインスタンスにファイルをダウンロードした後、ファイルにアクセスした後に同期が行われます

  5. ユーザーがストリーミングセッション中にファイルを変更した場合、AppStream 2.0 は定期的に、またはストリーミングセッションの最後に、新しいバージョンのファイルをフリートインスタンスから S3 バケットにアップロードします。ただし、ストリーミングセッション中にファイルは S3 バケットから再度ダウンロードされません。

以下のセクションでは、Amazon S3 でユーザーのホームフォルダファイルを追加し、置き換え、削除するときの同期動作について説明します。

Amazon S3 ユーザーのホームフォルダに追加したファイルの同期

S3 バケット内のユーザーのホームフォルダに新しいファイルを追加すると、AppStream 2.0 はファイルをカタログ化して、数分以内にユーザーのホームフォルダ内にあるファイルの一覧に表示します。ただし、ストリーミングセッション中にユーザーがアプリケーションでファイルを開くまで、ファイルは S3 バケットからフリートインスタンスにダウンロードされません。

Amazon S3 ユーザーのホームフォルダで置き換えたファイルの同期

ユーザーがストリーミングセッション中にフリートインスタンスのホームフォルダ内のファイルを開き、そのユーザーのアクティブなストリーミングセッション中に S3 バケットのホームフォルダにある同じファイルを新しいバージョンに置き換えた場合、新しいバージョンのファイルはフリートインスタンスにすぐにダウンロードされません。新しいバージョンは、ユーザーが新しいストリーミングセッションを開始してファイルを再度開いた後にのみ、S3 バケットからフリートインスタンスにダウンロードされます。

Amazon S3 ユーザーのホームフォルダから削除したファイルの同期

ユーザーがストリーミングセッション中にフリートインスタンスのホームフォルダ内のファイルを開き、そのユーザーのアクティブなストリーミングセッション中に S3 バケットのホームフォルダからファイルを削除すると、ユーザーが次のいずれかの操作を行った後、そのファイルはフリートインスタンスから削除されます。

  • ホームフォルダを再度開く

  • ホームフォルダを更新する

ホームフォルダの形式

ユーザーフォルダの階層は、次のセクションで説明するように、ユーザーがストリーミングセッションを起動する方法によって異なります。

AWS SDK および AWS CLI

CreateStreamingURL または create-streaming-url を使用して起動されたセッションでは、ユーザーフォルダ構造は次のようになります。

bucket-name/user/custom/user-id-SHA-256-hash/

ここで、bucket-nameAmazon S3 バケットのストレージ に示す形式で、user-id-SHA-256-hash は CreateStreamingURL API オペレーションまたは UserId コマンドに渡された create-streaming-url の値から生成された小文字の SHA-256 ハッシュ 16 進数文字列を使用して作成された、ユーザー固有のフォルダ名です。詳細については、Amazon AppStream 2.0 API リファレンスの「CreateStreamingURL」、および AWS CLI コマンドリファレンスの「create-streaming-url」を参照してください。

次の例のフォルダ構造は、米国西部 (オレゴン) リージョン (us-west-2) で UserId testuser@mydomain.com、アカウント ID 123456789012 で API または AWS CLI を使用してセッションアクセスに適用されます。

appstream2-36fb080bb8-us-west-2-123456789012/user/custom/a0bcb1da11f480d9b5b3e90f91243143eac04cfccfbdc777e740fab628a1cd13/

ウェブサイトを使用するか、オンラインで入手できるオープンソースコーディングライブラリを使用して、小文字の UserId の SHA-256 ハッシュ値を生成してユーザーのフォルダを識別できます。

SAML 2.0

SAML フェデレーションを使用して作成されたセッションでは、ユーザーフォルダ構造は次のようになります。

bucket-name/user/federated/user-id-SHA-256-hash/

この場合、user-id-SHA-256-hash は、SAML フェデレーションリクエストに渡された NameID SAML 属性値から生成された、小文字の SHA-256 ハッシュ 16 進文字列を使用して作成されたフォルダ名です。2 つの異なるドメインに属する同じ名前のユーザーを区別するには、NameID 形式で domainname\username を含む SAML リクエストを送信します。詳細については、シングルサインオンアクセス (SAML 2.0) を参照してください。

次の例のフォルダ構造は、米国西部 (オレゴン) リージョン の NameID SAMPLEDOMAIN\testuser、アカウント ID 123456789012 と SAML フェデレーションを使用したセッションアクセスに適用されます。

appstream2-36fb080bb8-us-west-2-123456789012/user/federated/8dd9a642f511609454d344d53cb861a71190e44fed2B8aF9fde0C507012a9901

NameID 文字列の一部またはすべてが大文字の場合 (例ではドメイン名 SAMPLEDOMAIN)、AppStream 2.0 では、文字列を大文字化したものに基づいてハッシュ値が生成されます。この例では、SAMPLEDOMAIN\testuser のハッシュ値は 8DD9A642F511609454D344D53CB861A71190E44FED2B8AF9FDE0C507012A9901 です。そのユーザーのフォルダで、この値は、8dd9a642f511609454d344d53cb861a71190e44fed2B8aF9fde0C507012a9901 のように小文字で表示されます。

ウェブサイトを使用するか、オンラインで入手できるオープンソースコーディングライブラリを使用して、NameID の SHA-256 ハッシュ値を生成してユーザーのフォルダを識別できます。

AWS Command Line Interface または AWS SDK の使用

AWS CLI または AWS SDK を使用して、スタックのホームフォルダを有効または無効にすることができます。

次の create-stack コマンドを使用して、新しいスタックを作成中にホームフォルダを有効にできます。

aws appstream create-stack --name ExampleStack --storage-connectors ConnectorType=HOMEFOLDERS

次の update-stack コマンドを使用して、既存のスタックに対するホームフォルダを有効にできます。

aws appstream update-stack --name ExistingStack --storage-connectors ConnectorType=HOMEFOLDERS

次のコマンドを使用して、既存のスタックに対するホームフォルダを無効にできます。このコマンドによりユーザーデータは削除されません。

aws appstream update-stack --name ExistingStack --delete-storage-connectors

その他のリソース

Amazon S3 バケットの管理とベストプラクティスの詳細については、Amazon Simple Storage Service ユーザーガイドにある次のトピックを参照してください。