Amazon AppStream 2.0 の備忘録

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 を選択します。

f:id:goodbyegangster:20200529225944p:plain

ブラウザでログイン画面が表示されるため、Administratorを選択します。

f:id:goodbyegangster:20200529230324p:plain

すると、Windowsサーバーのデスクトップ画面が表示されるため、利用したいアプリケーションであるDBeaverをインストールします。


仮想化したいアプリケーションをインストール後、Desktop上にショートカットある Image Assistant を起動します。

f:id:goodbyegangster:20200529230329p:plain

Image Assistantのウィンドウが表示されるので、 Add App を選択します。

f:id:goodbyegangster:20200529230334p:plain

仮想化するアプリケーションを起動するファイル、今回はDBeaverのexeファイルを選択します。

f:id:goodbyegangster:20200529230339p:plain

登録する設定情報を訊かれるので、確認して Save へ。

f:id:goodbyegangster:20200529230343p:plain

すると、アプリケーションがImage Assistant上に登録されます。

f:id:goodbyegangster:20200529230350p:plain

Next をクリック。


利用者がAppStream上のアプリケーションを起動した際、起動されるアプリケーションの設定を反映させておくことができます。 Switch user をクリック。

f:id:goodbyegangster:20200529230355p:plain

利用ユーザーを訊かれるので、 Template User を選択。

f:id:goodbyegangster:20200529230401p:plain

すると、Template UserにてImage Builder上のDesktopにログインし直される事になります。再度Image Assistantを起動して、設定を追加したいアプリケーションを選択します。

f:id:goodbyegangster:20200529230405p:plain

特に設定したい項目はないのですが、検証を兼ねて、今回はDBeaver上の設定より Automatic updates check を外してみました。

f:id:goodbyegangster:20200529230411p:plain

アプリケーションを閉じて、再度Image Assistant上で Swithc user をクリックして、Administratorユーザーを選択します。

f:id:goodbyegangster:20200529230416p:plain

AdministratorユーザーのDesktopに戻ってきた後、Image Assistant上の Save settings をクリックします。

f:id:goodbyegangster:20200529230421p:plain

公開するアプリケーションの初期設定を登録できたため、 Next をクリックします。

尚、インストールされたアプリケーションへの設定の他、Image Builder上OSのタイムゾーンロケールを変更することで、仮想アプリケーション公開時のデフォルト設定を変更することができます。具体的には以下マニュアルとなり、デフォルト設定から変更する場合、このステップにて作業を実施する必要があります。

AppStream 2.0 ユーザーのためのデフォルトのリージョン設定を構成する


続いては、アプリケーションのテストを実施します。 Switch user を選択します。

f:id:goodbyegangster:20200529230421p:plain

今回は Test User を選択します。

f:id:goodbyegangster:20200529230433p:plain

Test UserのDesktop画面に移動され、Image Assistant上のテストをしたいアプリケーションを選択します。

f:id:goodbyegangster:20200529230437p:plain

先程設定した初期設定が反映されているかどうか、機能が利用できるかどうかを確認し、問題なければ再度Switch Userを実行して、AdministratorのDesktopへ戻ります。

テスト完了となるため、 Next をクリックします。

f:id:goodbyegangster:20200529230443p:plain

テスト結果がよろしくない場合、Template Userでのアプリケーション初期設定フェーズを再度実行する形となります。


Launch をクリックすると、登録したアプリケーションが起動してきます。

f:id:goodbyegangster:20200529230449p:plain

正しく起動できたことを確認して、 Continue をクリックします。アプリケーションOptimizeの処理が走り始めます。

f:id:goodbyegangster:20200529230453p:plain

登録したアプリケーションが複数ある場合、この処理を繰り返すことになります。すべてのアプリケーションをOptimizeした後、 Next をクリック。


作成されるImageについて、Name等の管理情報を入力し、 Next を選択します。

f:id:goodbyegangster:20200529230458p:plain

レビュー画面です。問題ないこと確認して、 Disconnect and Create Image を選択すると、Image BuilderのDesktop画面が切断され、Image作成が開始されます。

f:id:goodbyegangster:20200529230502p:plain

AWSコンソール上のImage BuilderのStatusが、 Snapshotting となっているはずです。この間、Image BuilderへのConnectは不可となります。


しばらくすると、Image Registryに作成したImageが出来上がります。StatusがAvailableであることを確認します。

f:id:goodbyegangster:20200529230507p:plain

フリートの作成

フリートとは、ストリーミングインスタンスクラスター設定のようなものです。ストリーミングインスタンスとは、仮想アプリケーション公開用のサーバー(VirtualApp/XenAppでいうところのアプリケーションサーバー)を指します。

公開するイメージやストリーミングインスタンスのHWスペック、AutoScaling設定等を指定してすることになります。マニュアルはこちら。

フリートを作成する

必要となるストリーミングインスタンス数は、AppStreamの最大同時接続ユーザー数となります。つまり、利用者1人あたり、1台のストリーミングインスタンスが必要となります。

フリート作成用のCloudFormationを置いておきます。ただし、CloudFormationでは、フリートのAutoScaling設定は実施できないようです。

https://github.com/goodbyegangster/cloudformation/tree/master/appstream-fleet

スタックの作成

スタックとは、以下の要素を束ねる設定となります。

具体的な設定方法は、以下のマニュアルより。

スタックの作成

利用ユーザーの登録

AppStreamを利用するユーザー情報を登録します。AppStream側にてユーザー管理機能を持っており、そこに情報を登録することになります。マニュアルは下記です。

ユーザープールの管理

実際のユーザー登録画面です。Emailアドレスと氏名を登録します。

f:id:goodbyegangster:20200529230511p:plain

登録されました。

f:id:goodbyegangster:20200529230516p:plain

利用したいスタックを、ユーザーに紐付けます。

f:id:goodbyegangster:20200529230520p:plain

スタックをアサインすると、ユーザーへAppStream招待メールが送られます。ログインURLと初期パスワードが記載されているため、その情報によりAppStreamにログイン可能となります。

利用してみる

実際の接続イメージです。AppStreamに接続するには、ブラウザ経由と専用のクライアントアプリケーションでの接続方法の2つが用意されています。詳細は下記マニュアルにて。

ユーザーに AppStream 2.0 へのアクセスを許可する

ブラウザにてアクセスしてみた例です。招待Mailで貰ったURLにアクセスして、ログイン情報を入力します。

f:id:goodbyegangster:20200529230526p:plain

ログインすると、利用可能な仮想アプリケーションが表示されます。尚、ストリーミングインスタンスをオンデマンド起動設定としている場合、即時利用可能なストリーミングインスタンスがない場合、ストリーミングインスタンス起動処理が走るので、画面表示まで多少の時間がかかります。

f:id:goodbyegangster:20200529230532p:plain

アプリケーションをクリックすると、ブラウザ上でアプリケーションが起動してきます。

f:id:goodbyegangster:20200529230537p:plain

その他機能

本記事では一切触れていないですが、AppStreamはActiveDirectoryと連携することができます。具体的な利用方法としては、下記のことが可能となります。

AppStream 2.0 で Active Directory を使用する

利用状況をモニタリングするための機能も提供しています。AWSコンソール上AppStream管理ページにモニタリングページがある他、いくつかのCloudwatchメトリクスを提供してくれます。その他、使用状況レポートを作成してくれる機能もあるようです。

モニタリングとレポート