Amazon Web Services ブログ

Amazon FSx for NetApp ONTAP を Amazon AppStream 2.0 Linux インスタンスに接続する

このブログは 2024 年 1 月 29 日に Ron Kolwitz (Senior Solutions Architect)、Robert Fountain (Sr. EUC Specialist Solutions Architect)、Roy Tokeshi (EUC Specialist Solutions Architect) によって執筆された内容を日本語化したものです。原文はこちらを参照してください。

お客様は Amazon AppStream 2.0 を使用して、仮想化されたデスクトップとアプリケーションのフリートをエンドカスタマーにデプロイし、無数の永続的なストレージソリューションをサポートします。AppStream 2.0 は組織のユーザに複数の一般的なストレージオプションですぐに使用できる機能を提供します。例えば Amazon Simple Storage Service (S3)Amazon WorkDocs、Google Drive for G Suite、OneDrive for Business などです。これらのストレージソリューションで動作する場合、AppStream 2.0 はユーザーセッションの開始時にファイルをダウンロードし、セッションの終了時にストレージプロバイダーと同期します。これらのサービスはほとんどのデスクトップワークロードに最適化されており、典型的なシステム要件に対するデファクトのアプローチとなっています。

AppStream 2.0 のお客様の中には、大規模なデータセット、数百から数百万のファイル、バックエンドストレージプロバイダーとの継続的な同期など、強化されたストレージ機能を必要とする厳しい要求をお持ちのお客様もいます。たとえば、AppStream 2.0 フリートインスタンスで作業する大規模な開発チームは、大規模なソフトウェアアプリケーションを構築するために、数千のファイルを共同でコンパイルする必要がある場合があります。このようなユースケースでは、マネージドストレージオプションである Amazon FSx ファミリーなどの AWS ストレージサービスとフリートを統合できます。たとえば、FSx for ONTAP と組み合わせると、VPC 内で実行されるカスタマイズ可能な IOPS、スループット、キャッシュ機能を備えた独自の NetApp ONTAP ストレージ機能を活用する堅牢なソリューションをフリートに提供できます。マネージドサービスである Amazon FSx は、可用性や耐久性、パッチ適用、可視性を維持し、お客様をご自身のストレージソリューションの管理から解放します。

このブログでは、高性能なストレージを提供するストレージ共有ドライブとして Amazon FSxファミリーを使用し Amazon AppStream 2.0 Linux ベースのフリートをデプロイする方法を紹介します。このソリューションは、AWS ネットワークバックボーンで提供されるキャッシュ、パフォーマンス、拡張可能なストレージすべての機能を管理する Amazon FSx を必要とするチームに役立ちます。Windows ベースのユーザーに対しては、同様の Windows ソリューションをセットアップする方法として 以前のブログがございます。

読了までの時間 10 分
完了までの時間 30 分
学習レベル 上級 (300)
完了までの費用 (推定) 割り当てられた FSx ストレージと最新のフリートを設定するための AppStream 2.0 イメージビルダーインスタンスの利用時間に対してのみ料金が発生します。詳細については、 Amazon AppStream 2.0 の料金Amazon FSx for NetApp ONTAP の料金を参照してください。
利用したサービス

Amazon AppStream 2.0

Amazon FSx for NetApp ONTAP

前提条件

次の前提条件が必要です。

  • AWS アカウント
  • 必要な権限を持つ AWS IAM ロールとポリシー
  • 2 つ以上のプライベートサブネットを持つ Amazon Virtual Private Cloud (VPC)
  • AppStream 2.0 フリート、スタック、イメージビルダー – セットアップの詳細については Amazon AppStream 2.0 の開始方法を参照してください。
  • Amazon FSx for NetApp ONTAP ファイルシステム – セットアップの詳細については Amazon FSx for NetApp ONTAP の開始方法を参照してください。新しいファイルシステムの FSxN の共有ポイントを書き留めます。
    例: <<svm>>.<<fileshare>>.fsx.<<region>>.com:/<<volume>>

ソリューションの概要

Amazon AppStream 2.0 を Amazon FSx ストレージと一緒に使用するには、セッション開始時に FSx ストレージをマウントするようにイメージビルダーを設定する必要があります。このアプローチは、ホームフォルダーあるいは共通のファイル共有としてユーザーごとにストレージをマウントするために使用できます。

次の図は、さまざまな AppStream 2.0 および Amazon FSx for NetApp ONTAP コンポーネントとそのデプロイメントを示しています。

実装

カスタムイメージを作成するには、まずイメージビルダーインスタンスを作成します。

  1. AppStream 2.0 管理コンソールAppStream 2.0 管理コンソールから、Images を選択します。Image builder タブを選択し、Launch image builder を選択します。
  2. フィルターを使用して利用可能な Linux イメージを検索し、Linux イメージを選択します。
  3. イメージの名前を入力し、利用可能なインスタンスタイプを選択します。この例では、IAM ロールと VPC エンドポイントのセクションはそのままにしておきます。Next を選択します。
  4. VPC、利用可能なサブネット、セキュリティグループを選択します。注意: VPC セキュリティグループは、Amazon FSx ファイルシステムへのアクセスを許可する必要があります。
  5. Launch Image builder を選択します。

次のオプションは、Amazon AppStream 2.0 Linux ベースのフリートと FSx for ONTAP 永続ストレージを組み合わせる方法を示しています。

オプション 1 ) すべてのユーザーに対するホームフォルダードライブの提供

Amazon FSx を使用して、ユーザーごとにアタッチされたフォルダーを提供することができます。このデータは、ネットワークファイルシステム (NFS) プロトコルを使用してマウントされ、ユーザーの AppStream 2.0 インスタンスに直接接続され、継続的に同期されたネットワークストレージを提供します。

手順

  1. AppStream 2.0 管理コンソールから、Images を選択します。Image builder タブを選択し、Image builder の横にあるラジオボタンを選択して、Connect を選択します。
  2. 以前にメモした FSx 共有ボリュームを使用して、FSx ファイルシステムをイメージビルダーインスタンスにマウントし、各ユーザーのディレクトリを構築します。
    sudo mkdir /fsx 
    sudo mount -t nfs "<<svm>>.<<fileshare>>.fsx.<<region>>.amazonaws.com:/<<volume>>" /fsx
    
    # repeat below for each user 
    sudo mkdir /fsx/<<username>> 
    sudo chown 1002:1004 /fsx/<<username>>
    
  3. 起動時にマウントスクリプトを実行するには、SessionStart の executables セクションにある /opt/appstream/SessionScripts/config.json にエントリを挿入して更新します。
    {
       "SessionStart": {
        "executables": [
               …,
               {
                        "Context": "system",
                        "Filename": "/opt/appstream/SessionScripts/system-start-fsx-user.sh",
                        "Arguments": "",
                        "S3LogEnabled": true
                }
        ],
        "waitingTime": 60
      },
      …
    }
  4. ユーザーごとの FSx 共有をマウントするため、/opt/appstream/SessionScripts/system-start-fsx-user.sh に新しいマウントスクリプトファイルを作成します。NFS_SHARE 変数を、以前にメモした FSx 共有に更新します。このスクリプトは、appstream_user_sh 環境変数の $AppStream_UserName を自動的に追加し、ボリューム上の Linux ユーザーのマウントディレクトリのみを一意にマウントします。
    #!/bin/bash
    NFS_SHARE="<<svm>>.<<fileshare>>.fsx.<<region>>.amazonaws.com:/<<volume>>"
    HOMEFOLDER_BASE="$HOME/MyFiles/HomeFolder"
    
    # Load the appstream user variables
    if [ -f /etc/profile.d/appstream_user_vars.sh ]; then
    . /etc/profile.d/appstream_user_vars.sh
    fi 
    
    # Mount FSX Storage for user session, create new directory if HomeFolder already exists (e.g. if S3 storage is already mounted)
    INDEX=””
    while [ -d "$HOMEFOLDER_BASE$INDEX" ]; do
      ((INDEX++))
    done
    
    HOMEFOLDER="$HOMEFOLDER_BASE$INDEX"
    mkdir "$HOMEFOLDER"
    chown as2-streaming-user:as2-streaming-user "$HOMEFOLDER"
    
    sudo mount -t nfs "$NFS_SHARE/$AppStream_UserName" "$HOMEFOLDER"
  5. スクリプトファイルの権限を実行可能に変更します。
    sudo chmod 755 /opt/appstream/SessionScripts/system-start-fsx-user.sh
  6. イメージアシスタントを起動して新しいイメージを作成します。
  7. 新しく作成されたイメージを使用して AppStream 2.0 フリートを更新します。フリートを停止して起動します。
  8. AppStream 2.0 ユーザーセッションを起動します。S3 または同様のバックアップストレージをオフにするまで FSx ネットワークストレージはユーザーの MyFiles/HomeFolder2 ディレクトリに表示されるため、チームは必要に応じて FSx ストレージにファイルを移行できます。必要ならば以前のストレージをオフにすることができ、その場合 FSx ストレージは MyFiles/HomeFolder として表示されます。希望する場合、FSx と AppStream 2.0 組み込みストレージメソッドの両方を共存させることができます。

オプション 2 ) ユーザー間のファイル共有の提供

FSx を使用すると、すべてのユーザーで必要な共通ファイルで共同作業するために組織内のユーザーに共有フォルダーの場所を提供できます。プロセスはオプション 1 と似ていますが、すべてのフリートユーザーインスタンス間で共通のポイントにマウントされ、共有されます。

手順

  1. AppStream 2.0 管理コンソールから、Images を選択します。Image builder タブを選択し、Image builder の横にあるラジオボタンを選択して、Connect を選択します。
  2. FSx 共有ボリュームを使用して FSx ファイルシステムをイメージビルダーインスタンスにマウントし、共有利用のための共通ディレクトリを構築します。
    sudo mkdir /fsx
    sudo mount -t nfs "<<svm>>.<<fileshare>>.fsx.<<region>>.amazonaws.com:/<<volume" /fsx
    sudo mkdir /fsx/common
    sudo chown 1002:1004 /fsx/common
  3. 起動時にマウントスクリプトを実行するには、SessionStart の executables セクションにある /opt/appstream/SessionScripts/config.json にエントリを挿入して更新します。
    {
    "SessionStart": {
        "executables": [
               …,
               {
                        "Context": "system",
                        "Filename": "/opt/appstream/SessionScripts/system-start-fsx-common.sh",
                        "Arguments": "",
                        "S3LogEnabled": true
                }
        ],
        "waitingTime": 60
      },
      …
    }
  4. ユーザー間で共通の共有フォルダーをマウントするには、/opt/appstream/SessionScripts/system-start-fsx-common.sh の新しいマウントスクリプトファイルを作成します。NFS_SHARE 変数を、以前にメモした FSx 共有で更新します。
    #!/bin/bash
    NFS_SHARE="<<svm>>.<<fileshare>>.fsx.<<region>>.amazonaws.com:/<<volume>>/common"
    COMMONFOLDER_BASE="/fsx/common"
    
    # Mount FSX Storage for common storage
    sudo mount -t nfs "$NFS_SHARE" "$COMMONFOLDER_BASE"
  5. ファイルの権限を実行可能に変更します。
    sudo chmod 755 /opt/appstream/SessionScripts/system-start-fsx-common.sh
  6. イメージアシスタントを起動して新しいイメージを作成します。
  7. 新しく作成されたイメージを使用して AppStream 2.0 フリートを更新します。
  8. フリートを停止および起動します。
  9. AppStream 2.0 ユーザーセッションを起動します。Amazon FSx 共有ストレージが表示され、ユーザーは /fsx/common の下でデータを共有できるようになります。

クリーンアップ

AWS アカウントで継続的な課金が発生しないようにするには、新しく作成されたすべての AWS リソースを削除します。AWS マネジメントコンソールにログインして、フリート、イメージビルダー、FSx ファイルシステムなど、このデプロイメントの一部として作成した可能性のあるリソースを削除します。イメージの削除については、AppStream 2.0 管理者ガイドを参照してください。FSx ストレージの削除については、FSx for ONTAP ユーザーガイドの入門 リソースのクリーンアップを参照してください。

まとめ

Amazon AppStream 2.0 と Amazon FSx を使用すると、数千から数百万のファイルを継続的に同期する高性能ストレージのユースケースに対応できる仮想化デスクトップを構築できます。この例は、強化されたストレージ機能を必要とするハイエンドの共同開発でお客様にご利用いただいています。

適切な FSx ストレージ サービスの選択に関する詳細については、Amazon FSx ファイルシステムの選択の概要を参照してください。

高度なパフォーマンスチューニングの詳細については、Amazon FSx for NetApp ONTAP パフォーマンスを参照してください。

翻訳はネットアップ合同会社の Sr. Cloud Solutions Architect for AWS の藤原様、監修は Cloud Support Engineer の戸松が担当しました。

Ron Kolwitz は、米国連邦政府科学部門の顧客をサポートするシニアソリューションアーキテクトです。顧客と連携して、エンタープライズクラウドの導入と戦略に関する技術ガイダンスを提供し、適切に設計されたソリューションの構築を支援しています。特に航空宇宙と量子ベースのコンピューティングに熱心に取り組んでいます。余暇には、水上スキー愛好家の家族と過ごすのが好きで、大自然を楽しんでいる姿をよく見かけます。
Roy Tokeshi Roy Tokeshi は、IT コンサルティング、教育、アーキテクチャ設計の分野で 25 年以上の経験を持つ、熟練した技術愛好家です。彼の技術に対する愛情は、新しいトレンドの探求と包括的なコミュニティの構築に注力していることを示しています。彼は複雑な概念を簡素化し、すべての専門家が技術を利用できるようにします。Roy は、AWS サービス、CNC、レーザー彫刻機、IoT を使用して作成および構築することを楽しんでいます。チェスは下手ですが、あらゆる年齢や職業の人々に、ボード上やオンラインでチェスをプレイするよう勧めるのが大好きです。
Robert Fountain, AWS Robert Fountain は、ペンシルバニア州を拠点とするシニア EUC スペシャリストソリューションアーキテクトです。Robert は 2020 年から AWS に勤務しており、現在 6 つの AWS 認定を取得しています。オフィスの外では、Robert はナショナル・スキー・パトロールのメンバーであり、妻と 2 人の息子、そして愛犬の Daisy と一緒に過ごすことを楽しんでいます。