Appstream 2.0を触った時のメモ。AppStreamとは、AWSが提供するアプリケーション仮想化サービスです。つまり、Citrix VirtualApp(XenApp)ですね。
基本的な使い方について確認していきます。
利用方法
DBeaverというSQLクライアントソフトを仮想アプリケーションとするAppStream環境を作成してみます。
DBeaver Community Free Universal Database Tool
Image Builderの作成
Image Builderとは、アプリケーションを仮想化して公開するためのベースOSイメージ、及びそのイメージで起動された仮想サーバー、て感じのものとなります。
Image Builder は、イメージの作成に使用する仮想マシンです。Image Builder を起動して接続するには、AppStream 2.0 コンソールを使用します。Image Builder に接続すると、アプリケーションをインストール、追加、テストできます。さらに Image Builder を使用してイメージを作成できます。
このベースとなる仮想サーバーに、仮想化して公開したいアプリケーションをインストールすることになります。マニュアルはこちら。
Image Builder を起動し、ストリーミングアプリケーションをインストールして設定する
WindowsServer2019ベースのImage Builderを作成します。作成用のCloudFormationテンプレートはこちら。
https://github.com/goodbyegangster/cloudformation/tree/master/appstream-imagebuilder
カスタムイメージの作成
上記で作成したImage Builderに対して、利用するアプリケーション(今回はDBeaver)をインストールして、アプリケーション公開の準備を実施します。マニュアルはこちら。
チュートリアル: AppStream 2.0 コンソールを使用したカスタム AppStream 2.0 イメージの作成
作成したImage Builderを選択して Connect
を選択します。
ブラウザでログイン画面が表示されるため、Administratorを選択します。
すると、Windowsサーバーのデスクトップ画面が表示されるため、利用したいアプリケーションであるDBeaverをインストールします。
仮想化したいアプリケーションをインストール後、Desktop上にショートカットある Image Assistant
を起動します。
Image Assistantのウィンドウが表示されるので、 Add App
を選択します。
仮想化するアプリケーションを起動するファイル、今回はDBeaverのexeファイルを選択します。
登録する設定情報を訊かれるので、確認して Save
へ。
すると、アプリケーションがImage Assistant上に登録されます。
Next
をクリック。
利用者がAppStream上のアプリケーションを起動した際、起動されるアプリケーションの設定を反映させておくことができます。 Switch user
をクリック。
利用ユーザーを訊かれるので、 Template User
を選択。
すると、Template UserにてImage Builder上のDesktopにログインし直される事になります。再度Image Assistantを起動して、設定を追加したいアプリケーションを選択します。
特に設定したい項目はないのですが、検証を兼ねて、今回はDBeaver上の設定より Automatic updates check
を外してみました。
アプリケーションを閉じて、再度Image Assistant上で Swithc user
をクリックして、Administratorユーザーを選択します。
AdministratorユーザーのDesktopに戻ってきた後、Image Assistant上の Save settings
をクリックします。
公開するアプリケーションの初期設定を登録できたため、 Next
をクリックします。
尚、インストールされたアプリケーションへの設定の他、Image Builder上OSのタイムゾーンやロケールを変更することで、仮想アプリケーション公開時のデフォルト設定を変更することができます。具体的には以下マニュアルとなり、デフォルト設定から変更する場合、このステップにて作業を実施する必要があります。
AppStream 2.0 ユーザーのためのデフォルトのリージョン設定を構成する
続いては、アプリケーションのテストを実施します。 Switch user
を選択します。
今回は Test User
を選択します。
Test UserのDesktop画面に移動され、Image Assistant上のテストをしたいアプリケーションを選択します。
先程設定した初期設定が反映されているかどうか、機能が利用できるかどうかを確認し、問題なければ再度Switch Userを実行して、AdministratorのDesktopへ戻ります。
テスト完了となるため、 Next
をクリックします。
テスト結果がよろしくない場合、Template Userでのアプリケーション初期設定フェーズを再度実行する形となります。
Launch
をクリックすると、登録したアプリケーションが起動してきます。
正しく起動できたことを確認して、 Continue
をクリックします。アプリケーションOptimizeの処理が走り始めます。
登録したアプリケーションが複数ある場合、この処理を繰り返すことになります。すべてのアプリケーションをOptimizeした後、 Next
をクリック。
作成されるImageについて、Name等の管理情報を入力し、 Next
を選択します。
レビュー画面です。問題ないこと確認して、 Disconnect and Create Image
を選択すると、Image BuilderのDesktop画面が切断され、Image作成が開始されます。
AWSコンソール上のImage BuilderのStatusが、 Snapshotting
となっているはずです。この間、Image BuilderへのConnectは不可となります。
しばらくすると、Image Registryに作成したImageが出来上がります。StatusがAvailableであることを確認します。
フリートの作成
フリートとは、ストリーミングインスタンスのクラスター設定のようなものです。ストリーミングインスタンスとは、仮想アプリケーション公開用のサーバー(VirtualApp/XenAppでいうところのアプリケーションサーバー)を指します。
公開するイメージやストリーミングインスタンスのHWスペック、AutoScaling設定等を指定してすることになります。マニュアルはこちら。
必要となるストリーミングインスタンス数は、AppStreamの最大同時接続ユーザー数となります。つまり、利用者1人あたり、1台のストリーミングインスタンスが必要となります。
フリート作成用のCloudFormationを置いておきます。ただし、CloudFormationでは、フリートのAutoScaling設定は実施できないようです。
https://github.com/goodbyegangster/cloudformation/tree/master/appstream-fleet
スタックの作成
スタックとは、以下の要素を束ねる設定となります。
- 利用するフリート
- 利用するユーザー情報
- ※後述で設定
- 公開URLの設定
- 永続ストレージ(ホームフォルダ)の設定
- ユーザー毎にオンラインストレージとなり、アプリケーション内で利用可能
- 利用できるストレージ種類は、S3・Google Drive for G Suite・OneDrive for Businessから選択
- AppStream 2.0 ユーザーに対してホームフォルダを有効にして管理する
- ユーザー可能操作(クリップボートの許可とか)の設定
- アプリケーション設定の永続化オプションの有無
- ユーザーが利用アプリケーションに設定した内容を、永続化するか否かを設定
- 永続化の場合、ユーザー毎の設定情報がS3に保存されることになる
- アプリケーション設定の永続化の有効化
具体的な設定方法は、以下のマニュアルより。
利用ユーザーの登録
AppStreamを利用するユーザー情報を登録します。AppStream側にてユーザー管理機能を持っており、そこに情報を登録することになります。マニュアルは下記です。
実際のユーザー登録画面です。Emailアドレスと氏名を登録します。
登録されました。
利用したいスタックを、ユーザーに紐付けます。
スタックをアサインすると、ユーザーへAppStream招待メールが送られます。ログインURLと初期パスワードが記載されているため、その情報によりAppStreamにログイン可能となります。
利用してみる
実際の接続イメージです。AppStreamに接続するには、ブラウザ経由と専用のクライアントアプリケーションでの接続方法の2つが用意されています。詳細は下記マニュアルにて。
ユーザーに AppStream 2.0 へのアクセスを許可する
ブラウザにてアクセスしてみた例です。招待Mailで貰ったURLにアクセスして、ログイン情報を入力します。
ログインすると、利用可能な仮想アプリケーションが表示されます。尚、ストリーミングインスタンスをオンデマンド起動設定としている場合、即時利用可能なストリーミングインスタンスがない場合、ストリーミングインスタンス起動処理が走るので、画面表示まで多少の時間がかかります。
アプリケーションをクリックすると、ブラウザ上でアプリケーションが起動してきます。
その他機能
本記事では一切触れていないですが、AppStreamはActiveDirectoryと連携することができます。具体的な利用方法としては、下記のことが可能となります。
- 仮想アプリケーションのドメイン参加(ストリーミングインスタンスをドメインに参加させる)
- ActiveDirectory側のユーザー情報を利用しての、AppStreamへのシングルサインオン(ADFS利用してのSAML連携)
AppStream 2.0 で Active Directory を使用する
利用状況をモニタリングするための機能も提供しています。AWSコンソール上AppStream管理ページにモニタリングページがある他、いくつかのCloudwatchメトリクスを提供してくれます。その他、使用状況レポートを作成してくれる機能もあるようです。