LoginSignup
0
0

Amazon Appstream2.0のLinuxインスタンスを設定してみた。

Posted at

Amazon AppStream2.0とは

Amazon AppStream2.0は、サーバー上で動かすアプリケーションの画面をインターネットを通じてユーザーのブラウザーに動画配信するサービスです。デスクトップ仮想化のように利用することができます。アプリケーションの実行はAWS内(AppStreamサーバー上)で実行されるため、データそのものはインターネットの外には出ていかずセキュアに利用できます。また使用した分だけ課金される仕組みです。

料金

公式サイトで確認できます。

AppStreamのフリートインスタンスの種類とOS、月間の利用時間により料金が決まります。
Windowsサーバーの場合、1回でも接続するとRDPライセンス(4.19USD/month、シングルセッションの場合)が必要となりますので、ちょっと自宅でためそうにも少しハードルが高いです。

ここではLinuxインスタンス(RDPライセンス料がかかりません)を使用して動作を確認しようと思います。

アーキテクチャ図

今回予定している構成図です。以前作成したPrivateSubnet1と2にAppStream Fleetを配置します。
IAM Identity Centerをうっすらと表示させている理由は、Amazon Linux 2のストリーミングができたら、接続を試す予定があるためです。
image.png

ImageBuilderでイメージを作成

まずはイメージを作成していきます。

マネジメントコンソール > AppStream2.0 > Images と開き、「Image Builder」タブを開きます。
まだ何も作成されていません。「Launch Image Builder」をクリックします。
image.png

「Choose an Image」で、AmazonLinux2ベースのイメージを選択します。
投稿時点では2023.11.13のものが最新のようでした。
image.png

「Configure Image Builder」で、ImageBuilderの名前設定します。
image.png

インスタンスタイプを選択します。一番コストが安い stream.standard.small(1vCPU、2GiB RAM)のTypeを選択しました。
image.png

IAM Roleは、ImageBuilderからS3などの他のサービスを利用する場合に設定します。今回利用予定はないため、設定しません。

VPC Endpointsは、VPC内のリソースと通信させる場合に設定します。こちらも利用予定はないため、設定しません。

次に、ネットワークの設定をします。予定していたPrivateSubnet1に配置します。
セキュリティグループも設定します。通信要件がないため、インバウンドは何も許可せず、アウトバンドのみALL許可にしています。
image.png

「Review and Create」で作成内容をレビューして問題なければ、「Launch Image Builder」をクリックします。
image.png

ImageBuilderの作成が開始されました。ステータスがRunningにかわるまで、5分ほど待ちます。
image.png

ステータスがRunnningに変わりました。作成したImage Builderが選択された状態で、「Connect」をクリックします。
image.png

Image Builderに接続されました。ここからアプリを登録していきます。
image.png

左上「Applicatons」 > 左の9面すごろくみたいなマークから、「Image Assistant」を起動します。
image.png

Image Assistantが起動します。「+ Add App」をクリックします。
image.png

適当にアプリを選択します。テキストエディターがあったので、それを選択してみました。
image.png

アプリが追加されます。
image.png

2個ほど登録して、「Next」をクリックします。
image.png

そのまま「Next」をクリックします。
image.png

こちらもそのまま「Next」をクリックします。
image.png

「Launch」をクリックします。アプリ起動を最適化してくれるようです。
image.png

image.png

アプリが起動したことを確認して、「Continue」をクリックします。
登録したアプリの数だけ繰り返します。
image.png

作成するフリートイメージの名前を入力して、「Next」をクリックします。
image.png

「Disconnect and Create Image」をクリックして、イメージ作成を開始します。
image.png

Image Builderへのコネクションが失われます。タブは閉じてください。
image.png

「Image Builder」タブに戻ると、ステータスが「Snapshotting」となっています。
10分〜20分はかかる場合があります。気長に待ちましょう。
image.png

ステータスが「Stopped」に変わったので、「Image Registory」タブを表示します。
イメージが作成されています。
image.png

詳細ページで「Applications」を確認すると、登録したアプリが一覧に表示されています。
image.png

これでイメージの準備はできました。

フリート起動

次に作成したイメージを使って、フリートを起動します。
AppStream2.0 > Fleetsへ移動します。
「Create Fleet」をクリックします。
image.png

一番コストのかからない「On-Demand」を選択します。
image.png

「Configure Fleet」の画面で、フリートの名前を入力します。
image.png

インスタンスタイプは、Image Builder同様に一番安いタイプにします。
image.png

ユーザーセッションの詳細はデフォルトのままにします。
image.png

フリートキャパシティについては、兎に角コストがかかるといやなので、Maximam capacityを1にしました。これで2以上のセッションが接続されることはなくなります。(実際の運用でこんな設定をすることはないと思います。。。)
image.png

その他、デフォルトのままにして、「Next」をクリックします。
※今回フリートから他のAWSサービスの利用はないので、IAM rolesも設定しません。
image.png

作成したイメージを選択します。
image.png

ネットワークを設定します。フリートはサブネットを2つ設定する必要があります。予定していたPrivateSubnet1と2を設定します。通信要件もないため、インバウンドを許可していないセキュリティグループを設定します。
image.png

レビュー画面で問題なければ、「Create fleet」をクリックします。
image.png

コストがかかる旨の表示がでます。私は〜を了承したのチェックを入れて、「Create」をクリックします。
※本当にコストがかかるので、確認終わったらすぐに停止、削除するつもりです!
image.png

フリートの起動が開始されました。起動するまで10分〜20分くらいかかる場合がありますので、気長にまちましょう。
image.png

フリートのステータスがRunningに変わりました。
image.png

ユーザーを追加

今回はAppStream2.0自身のユーザープールを使用します。AppStream2.0 > userpoolへ移動します。
「Create User」をクリックします。
image.png

Emailなど必要な情報を入力して、「Create User」をクリックします。
image.png

ユーザープールに追加されました。
image.png

ユーザーにはこのような招待メールが届きます。
image.png

ちなみに追加したユーザーの削除はGUIではできないため、AWS CLIを使用します。
image.png

スタックの作成と、ユーザーとフリートの関連づけ

AppStream2.0 > Stacksへ移動します。
「Create Stack」をクリックします。
image.png

スタックの詳細画面で、スタック名とフリートを選択します。
image.png

その他はデフォルトのまま「Next」をクリックします。
image.png

ストレージは使用しませんので、チェックは外して「Next」をクリックします。
image.png

何にも利用しませんので、チェック外しやDisable選択を怠りません。
image.png

レビュー画面で、余分な設定をしていないことを確認したら、「Create Stack」をクリックします。
image.png

スタックが作成されました。
image.png

次にユーザーを割当ます。
User poolの画面で、ユーザー選択 「Action」> 「Assign Stack」をクリックします。
image.png

内容を確認して、「Assign Stack」をクリックします。
image.png

ユーザーに新しいアプリが利用できるようになった旨のメールが届きます。
image.png

AppStreamへアクセス

いよいよストリーミングの準備ができました。
ユーザーのメールにあったログインページのURLへアクセスします。

登録したメールアドレス、パスワードを入力して、「Log in」します。
image.png

このような画面になりました。
image.png

アプリを選択するとストリーミングセッションの開始が始まります。
image.png

ブラウザ上でアプリケーションがストリーミングされるようになりました!
image.png

ここまで確認できたので、ログアウトします。

フリートやイメージビルダーは停止してもコストが若干かかるため、完全に削除します。

まとめ

今回は最低限必要な手順を確認しました。Windowsインスタンスを使用することのほうが多いと思いますが、Linuxでもアプリケーションのストリーミングができることを確認できました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0