AppStream 2.0 で IAM Identity Center を SAML 2.0 IdPとして利用する 〜 (2) AppStreamの基本環境構築

記事タイトルとURLをコピーする

はじめに

こんにちは、ドウミョウ と申します。

AppStream 2.0 の認証先として、IAM Identity Center を利用する検証を行ってみました。 何回かに分けて、実構築の模様をお届けします。

細かいチューニングは別途で行う前提で、
基本的な環境を構築し、フェデレーション設定を終わらせることをゴールとします。

本ポストでは

本ポストでは、AppStream 2.0 の基本的な環境を構築します。

インターネット接続可能なプライベートサブネット上に環境を構築する前提です。
また、細かいイメージの設定やチューニングについては、別途で行う前提としています。

イメージ構築 → フリート構築 → スタック構築と進みます。
AppStreamにおける、この3つの言葉の概念や、構築の前提条件については、1つの前のポストなどを参照下さい。

実構築

イメージの構築

それでは早速、イメージの構築から始めていきましょう。

AppStream 2.0 > Image > Launch Image Builder と進みます。

ベースとなるイメージを選択します。
今回は「General Purpose」の「Windows Server 2022 Base」としました。

Configure Image Builder にて、イメージの名前と、インスタンススペックを設定します。
今回は「stream.standard.medium」としました。

Configure Network にて、VPC とサブネット、セキュリティグループを選択します。
今回は、インターネット接続可能なプライベートサブネット上に構築し、セキュリティグループはデフォルトのものを適用しています。
Next を押下します。

レビュー画面にて、構築内容を確認します。
問題なければ、Launch Image builder を押下します。

イメージの作成が開始されます。少し時間がかかります。
Status が Pending から Running になればOKです。

イメージ の作り込み

Running となった イメージに対して、実際にログオンを行い、マスタイメージを構築していきます。
イメージを選択して、Connect を押下します。

イメージに対して、どのユーザーで接続するかの選択画面が表示されます。
実際にアプリケーションをインストールしていくために、Administrator ユーザを選択します。

ブラウザの中で、ベースイメージに接続できました。
ここから、OS上でイメージの作り込みを行っていきます。

まずは、インターネットから Chrome のセットアップファイルをダウンロードし、普通にインストールします。

その後、デスクトップ上の「Image Assistant」を実行します。

AppStream 2.0 Image Assistant が立ち上がります。
上記のタブに沿って、作業を進めていきましょう。
まずは、Add App を押下します。

Chrome の実行ファイルを選択します。

詳細なパラメータの設定画面が表示されます。
そのまま、Save します。

アプリケーションとして、Chrome が登録されました。
Next で次に進みます。

CONFIGURE APPS タブにて、ユーザーに共通のアプリケーションの設定を行うことができます。
今回は、別途でチューニングするものとして、一旦飛ばすものとします。
Next を押下します。

TEST タブにて、一般ユーザ権限でのアプリケーションの動作確認を行います。
Switch User を押下します。

Test User を選択します。

イメージに対して、Test User で接続した状態に切り替わります。

デスクトップ上の Image Assistant を実行します。
インストールした Chrome を選択し、Test User で Chrome が動作することを確認します。

一般ユーザ権限で、Chrome が起動しました。

本記事では、まず AppStream の環境を構築することに焦点を当てており、この時点で OS 側の設定を始めとしたイメージの作り込みやチューニングを行っていないため、日本語キーボードからの日本語入力などができないはずです。
その辺りの設定は別途でチューニングする前提として、進めます。

Image Assistant の Switch User を実行、Administrator を選択して、管理者権限での作業に戻ります。

TEST タブで、NEXT を押下します。

OPTIMIZE タブにて、アプリケーション起動の最適化を行います。
Launch を押下すると、Chrome が起動します。

アプリケーション起動に関する最適化が走ります。
アプリケーションが起動したら、Continue を押下します。

CONFIGURE IMAGE にて、イメージの名前やタグの設定を行います。
適当な名称や、概要を設定ください。

Image Name は 「Amazon」「AWS」「AppStream」から始まる名前は使えないようですので注意下さい。
また、Always use latest agent version のチェックを入れると、AppStream 2.0 agent を常に最新化してくれるようです。

設定後、NEXT を押下します。

REVIEW タブにて、設定確認です。
問題なければ、Disconnect and Create Image を押下します。

イメージへの接続セッションが切断され、イメージの作成が開始されます。

AppStream のコンソールに戻ります。
Image registry に、Private なイメージが作成され、Available となれば、イメージの作成は完了です。

フリートの作成

次は、作成したイメージを元に、フリートを作成していきます。

Fleets > Create fleet を実行します。

フリートのタイプを選択します。今回は On-Demand で構築します。 On-Demand を選択して、Next を押下します。

フリートの設定を行っていきます。
フリートの名称と、表示名を設定します。

フリートのインスタンスタイプを設定します。
今回は、General Purpose、stream.standard.large としてみました。

アイドル時のタイムアウト時間、フリートキャパシティ、スケーリング設定などが可能ですが、一旦今回はデフォルトで進みます。

「インストールしたアプリケーションの画面のみの配信とする」か「デスクトップ画面を配信する」かを、ここで設定できます。
今回は、Application で進みます。

フリートの元ネタとなるイメージを選択します。
先ほど作成した、プライベートなイメージを検索して指定し、Next を押下します。

フリートを作る VPC、Subnet と、フリートに適用するセキュリティグループを指定します。
今回は、インターネット接続可能なプライベートサブネットを選択し、セキュリティグループはデフォルトとしました。
Next を押下します。

レビュー画面が表示されるので、内容を確認の上、Create fleet を押下します。

オンデマンドの場合は、料金の注意事項が表示されます。
内容を確認後、チェックを入れて、Create を押下します。

フリートの作成には少し時間がかかります(体感15分程度)。
しばらく待ち、Status が Running になれば OK です。
フリートを作成している間に、スタックの作成に進んでしまっても大丈夫です。

スタックの作成

イメージを元にフリートを作ったので、最後にスタックを作成していきます。

Stacks > Create Stacks を実行します。

スタックの設定をしてきます。
まずは、スタックの名前を設定。
それから「Fleet」セクションにて、先ほど作成したフリートを選択して、スタックに紐づけます。

VPC Endpoint セクションは、今回はインターネット側からの利用を想定しているので、Internet のままとします。
利用するプロトコル(TCP or UDP)も、一旦デフォルトの TCP で。
Next を押下します。

ユーザごとのホームフォルダの設定です。
今回は、有効のままとします。
Next を押下します。

最後に、AppStream を実際に利用するユーザー側に対して、どのような操作を許可/禁止するかの設定です。
ローカルPCから接続先へのクリップボード共有や、ファイル転送機能を使うかなどのポリシーが設定できます。
今回は、デフォルトのままとします。

Windowsベースのスタックの場合は「永続的なアプリケーション設定」の設定が可能です。
今回は有効とし、適当な名前を設定しました。

スタックのレビュー画面で設定を確認し、Create Stack を実行します。
スタックの作成は、すぐに完了します。

動作確認

イメージ、フリート、スタックと作成し、AppStream2.0 が利用できる環境が整いました。
「Streaming URL」機能を使って、動作確認をしてみます。

作成したスタックを選択し、Action > Create Streaming URL を実行します。

適当なユーザー名を設定し、ストリーミング URL の有効時間を指定します。
ストリーミング URL には、認証情報を含みます。
この URL にアクセスするだけで、AppStream が利用できるようになるので、短めの有効時間が良いでしょう。
Get URL を実行します。

ストリーミングURLが発行されました。
さっそく、早速ブラウザで開いてみましょう。

AppStreamの画面が表示されました!
登録したアプリケーション「Chrome」も見えていますので、こちらを選択します。

AppStream 利用セッションの準備が始まります。
初回利用時は、セッションの準備に2分程度かかるようです。

無事に、ブラウザの中で、AppStreamで登録した Chrome が利用できるようになりました!

利用を終えるときの正規の手順は、右上の Profile から End Session を実行です。

セッション終了の確認画面が表示されるので、End Session を押下します。

動作確認が終わったら、不要な課金を避けるため、フリートを停止しておきます。

さいごに

AppStream 2.0 の利用環境の構築自体は、上記の通り、イメージ、スタック、フリートと、順番に環境を構築していく流れに沿えば、そこまで難しいものではないと感じました。
もちろん「どのようなアプリケーションを利用するか」「どれくらいの利用者を見込むか」や、利用料金の検討は重要ではありますが、まずはお試しで利用してみるというのも、悪くないと思います。

AppStream2.0 の基本動作環境の構築はここまでです。
次は、認証を行うための IAM Identity Center の設定を行っていきます。

blog.serverworks.co.jp

Yoshitaka Domyo (記事一覧)

エンタープライズクラウド本部所属 プログラムマネージャー/プロジェクトマネージャー。

好きなものは、AWS、電子音楽、マンガです。