AppStreamは記事やマニュアル、blackbeltも詳細が乏しいので記載してみました。
2種類のWindowsインスタンス
image builderインスタンス | イメージをビルドするためだけに存在するインスタンスです。ビルドが終わったら役割を終えます |
fleetインスタンス | ビルドしたイメージを実際の配信に使う、auto scaling可能なインスタンスです。1配信1インスタンスのはず。 |
ビルドするための3つのユーザー
image builderで利用します。
template user
配信したいアプリケーションのセップアップをするユーザーです
このユーザー上で設定したものが新しいユーザーにコピーされ、配信されます
Windowsユーザー名:DefaultProfileUser
administrator user
用途は2つ。
- イメージをビルドするツールで実際にビルドすること
- template userが使うようなOS全体の設定を行うこと
例えばOSの地域設定やlocal group policyの変更など。
こみいったことをする場合Windowsの知識が必要です
Windowsユーザー名:ImageBuilderAdmin
test user
template userの設定を検証できるユーザーです
しかし残念ながら配信時の完全に同一な環境ではありません
例えば配信時に実行されるsession scriptは実行されませんし、ホームフォルダの場所も異なります
Windowsユーザー名:ImageBuilderTest
作ったイメージはどこに行くか
Images -> Image Registoryにあります
GUIがわかりにくいのですが、絞り込み可能です
session script
session scriptというもので配信時にスクリプトを実行できます。
image builderインスタンスの中にC:\AppStream\SessionScripts\config.json
があるので、administratorユーザーで修正しましょう。
実行ログはs3に出力されます。
https://docs.aws.amazon.com/ja_jp/appstream2/latest/developerguide/use-session-scripts.html
検証時は管理者権限でメモ帳を開いて修正しました。
配信アプリを実行するWindowsユーザー
PhotonUserというWindowsユーザーです。
デスクトップなどもC:¥PhotonUser
配下にあります
残る課題
開発サイクル
純粋に時間がかかります
- ビルド 40分ぐらい
- fleet 起動10分ぐらい
- 初回セッション 2,3分ぐらい
また、単体のデバッグ機能に乏しいので、外部へのメトリクスやログ送信があると良さそうです。
セッション終了後もしばらくセッションが残るところも少し困ります
セキュリティ
まだ発展途上にみえます。
sampleのFirefoxからフォルダを開いてみた事例です
https://aws.amazon.com/jp/appstream2/try-sample-applications/
メモ帳も一瞬開かれた後消えます。様々なコマンドも実行できそうです
不特定多数への配信はあまり向かず、特定のある程度信頼できるユーザーへの配信なら有効活用できそうです
デモ環境など。