Amazon WorkSpaces Application Manager Studioを使ってアプリケーションをパッケージ化してみた

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

前回の記事で、WorkSpacesにアプリケーションを配布する方法を試してみました。
しかし配布するアプリケーションはMarketplaceに公開されているものだったので、自社のアプリなど「Marketplaceに存在しないもの」を配布したいという要望があると思います。

【WorkSpaces利用者必見!】Amazon WorkSpaces Application Managerを使って効率的にアプリケーションを管理する

ということで、今回は独自アプリの配布を行ってみたいと思いますが、独自アプリの配布には大きく分けて2つの工程があります。

1. アプリケーションのパッケージ化
2. パッケージの検証

今回のエントリでは、下記のドキュメントに沿って「アプリケーションのパッケージ化」までをご紹介したいと思います。

Amazon WorkSpaces Application Manager Studio でアプリケーションをパッケージ化する - Amazon WorkSpaces Application Manager

概要

アプリケーションのパッケージ化には「Amazon WorkSpaces Application Manager Studio」(以下、WAM Studioと表記)というものを利用します。
今回はこの「WAM Studio」を使ってアプリケーションをパッケージ化し、Amazon WAMにパッケージをアップロードするところまでをやってみます。

下記に主な作業項目を列挙してみました。

  • パッケージインスタンス(Amazon WAManager Studioインスタンス)の作成
    • 「WAM Studio」を使うには専用のEC2インスタンス(パッケージインスタンス)が必要となります。
  • アプリケーションパッケージの作成
  • アプリケーションのインストールをキャプチャ
  • アプリケーションパッケージのアップロード

それでは作業内容を見ていきたいと思います。

アプリケーションのパッケージ化ロールの作成

まずは、Amazon WAMパッケージインスタンスがアプリケーションパッケージカタログにアクセスできるようにIAM Roleを作成します。

Amazon WAM のリソースに対するアクセスの制御 - Amazon WorkSpaces Application Manager

01-create-role

ロールタイプは「EC2」を選択します。

02-select-type

アタッチするポリシーは「AmazonWorkSpacesApplicationManagerAdminAccess」です。検索してチェックを入れます。

03-AmazonWorkSpacesApplicationManagerAdminAccess

適当なRole名をつけてください。今回は「AmazonWamAppPackaging」という名前で作成しました。

04-AmazonWamAppPackaging

パッケージインスタンス(Amazon WAManager Studioインスタンス)の作成

次に、Amzon WAMが対応しているリージョンでパッケージインスタンスを作成します。専用のAMIが用意されているので下記のように「Amazon WAM Studio」で検索して見つけます。

05-select-ami

インスタンスサイズは「m3.xlarge以上」が推奨されているので、今回は「m4.xlarge」を選択しました。

06-m4xlarge

次にインスタンスの詳細設定を行います。VPC、サブネットは適当なものを選択します。
「Auto-assign Public IP」を「Enable」にして、IAM Roleは先程作成した「AmazonWamAppPackaging」を選択します。

07-configure-instance

ストレージの設定はデフォルトのままとします。

08-storage

タグの設定は任意ですが、分かりやすさの為にAWSのドキュメントと同じように「WAM packaging instance」という名前をNameタグに付けておきます。

09-name-tag

セキュリティグループはRDP接続できるようにしておきましょう。今回は新規に作成しました。

10-security-group

最後にレビューで問題なければ「Launch」をクリックして完了です。

11-launch-wam-instance

アプリケーションパッケージの作成

パッケージインスタンスにログインしたら、パッケージ化したいアプリケーションのWindowsインストーラをサーバに保存します。

今回はTeraPadを配布してみようと思うので、TeraPadのインストーラをダウンロードします。

14-download-terapad

インストーラを適当なフォルダに保存します。

15-download-terapad-exe

次に「WAM Studio」をショートカットから起動します。

16-launch-wam-studio

起動できたら、ツールバーから「New」をクリックします。

17-new-file

「1. Application Package Information」で下記の2点を記入して下さい。

  • 「Package title」
    • 適当なアプリケーションの名前を入力します。
    • 今回は「MyTeraPad」にしました。
  • 「Description」
    • アプリケーションの説明を入力します。

18-1-title

ここで上部の「Save」をクリックして入力内容を保存しておきましょう。

18-2-save

アプリケーションのインストールをキャプチャ

アプリケーションパッケージを作成する際、パッケージインスタンスにアプリケーションをインストールする必要があります。 なぜなら、このインストール処理を通して、WAM Studioがファイルシステムやレジストリといったシステムに対するインストール中に発生する全ての変更をキャプチャすることでパッケージが作成されるからです。

「2. Application Installation」の箇所でインストール対象とするOSを選択します。デフォルトでは「Windows 7 /2008R2」にチェックが入っています。

19-app-install

今回はWindows 10 desktop experience環境にもインストールしたいので、追加で「Windows8 / 8.1 /2012 / 2012 R2」にもチェックを入れました。

この状態で「Install」をクリックします。

20-app-install

「Install」をクリックするとインストールのキャプチャが開始されますが、キャプチャの開始は「インストーラがある場合」と「インストーラがない場合」で手順が変わります。

それぞれの手順は下記に詳細が記載されています。

ステップ 3: アプリケーションのインストールをキャプチャする - Amazon WorkSpaces Application Manager

今回はTeraPadのインストーラがあるので、「インストーラがある場合」で作業を進めます。

先程の画面で「Install」をクリックすると、下記のような画面が開くので「Browse」ボタンをクリックしてアプリケーションのインストーラパスを指定します。先程ダウンロードしたTeraPadのインストーラを指定すればOKです。

「Capture file and registry activity for the following prosses:」の項目は「Installer process and sub-processes only」を選択します。

21-installer-path

22-specify-terapad

各指定が完了したら「Launch」をクリックして下さい。

23-launch

すると、インストールのキャプチャ画面と共にTeraPadのインストーラが起動するので、TeraPadをそのままインストールします。
(TeraPadのインストーラが文字化けしていますが、これはパッケージインスタンスが日本語対応していない為なので問題ありません。)

24-install-terapad

アプリケーション(TeraPad)のインストールが完了すると「インストールのキャプチャ」も終了するので、別ウィンドウで開いていたキャプチャ画面が下記のような表示になります。

(TeraPadの場合、インストール完了後にReadme.txtがTeraPadで起動するので、これを閉じるとキャプチャー終了とみなされました。)

「OK」で次に進みましょう。

25-finish-install-terapad

ログの出力場所を確認したら「Close」をクリックしてキャプチャを終了します。
作業が完了したら一旦「Save」で保存しておきます。

26-1-done

インストールのキャプチャが正常に完了すると、WAM Studioの下にある各タブにキャプチャした情報が格納されます。例えば「File」タブではファイルシステムへの変更が記載されています。

26-2-capture-info-Files

「Registry」タブはレジストリへの変更内容が記載されています。

26-3-capture-info-reg

次に「4. Package Build Information」でパッケージのラベルを入力します。これはAmazon WAMのマネジメントコンソールにバージョンラベルとして表示されるものになります。

今回は、TeraPadのバージョンである「0.19」を指定しました。

27-label

ラベル欄の下にある「Command line:」の欄にはアプリケーションの実行ファイルのパスを指定します。指定するには「Launch Settings」をクリックします。

28-launch-setting

次のような画面が現れるので「Browse」ボタンをクリックして「Command line」欄にパスを入力します。

29-select-exe

アプリケーション(TeraPad)の実行ファイルを指定します。

30-terapad-exe

実行ファイルの指定が完了したら「OK」をクリックして終了します。再度「Save」をクリックして作業内容を保存しておきましょう。

31-ok-app-launch-settings

アプリケーションパッケージのアップロード

最後に「5. Package Upload」「Upload」をクリックして、Amazon WAMにアプリケーションパッケージをアップロードします。

32-upload-package

アップロードが完了すればエラーが出ていないことを確認して「Close」をクリックして閉じます。

33-complete-upload

最後に

以上でアプリケーションのパッケージ化が完了しました。残りの作業は「パッケージの検証」と「配布」です。次回は「パッケージの検証」を行いたいと思います。

以上です。