【Amazon AppStream 2.0 実践ガイド】最小ステップでアプリケーション配信環境を構築!

AmazonAppStream2.0のブログのサムネ

こんにちは、TC部所属のN.Nです。
今回は Amazon AppStream 2.0 について、実際の案件で構築してみてわかった「基本的な仕組み」と「最低限必要な構築ステップ」をまとめます。

 

AppStreamは、アプリケーションのみを配信できるサービスです。
利用者にWindowsのデスクトップやOS設定を触らせたくない場合に特に有効で、アプリケーションのみ配信したい場合に活躍します。

 

この記事はこんな方におすすめです。

  • AWSは使っているが、AppStreamは初めて
  • AppStreamの全体像をざっくり把握したい
  • 最小限の構築ステップを知りたい

AppStream 2.0とは

概要

AppStream 2.0 は、AWSが提供するアプリケーションストリーミングサービスです。
クライアント環境にアプリをインストールせず、ブラウザから利用できます。

特徴

アプリケーションのみを配信することにより、OSやWindowsの機能を利用者に触らせない構成が可能です。(設定でDesktopを配信させることも可能です)

基本構成の理解

AppStreamは以下の要素で構成されます。

  1. イメージ(Image)
     アプリと設定をまとめた仮想マシンのテンプレート。これを元に配信されます。
  2. イメージビルダー(Image Builder)
     イメージを生成するための作業環境。
  3. フリート(Fleet)
     ユーザーにアプリを提供するサーバー。スケーリング設定もここで行います。
  4. スタック(Stack)
     ユーザーにどのアプリをどの設定で配信するかを定義します。
  5. ユーザープール(User Pool)
     利用するユーザーを登録します。

[AWS Black Belt Online Seminar] Amazon AppStream 2.0 P.36より

この5つを理解しておくと、構築手順がスムーズになります。

構築してみよう

構築環境

今回、AppStreamを構築するAWS環境は以下となります。

簡易的な構成図

AppStreamの最小構築手順

AWSコンソールにあるAppStreamサービスから構築します。

 

手順は以下の公式サイトに則り、実施します。

Image Builder を起動し、ストリーミングアプリケーションをインストールして設定する - Amazon AppStream 2.0

 

※あくまでAppStreamの構築手順のため、VPCなどのネットワーク周りや必要なIAMロールは、事前に作成しているものとします。

 

1.イメージビルダーを起動
AWSコンソールからOSやインスタンスタイプを選択し、起動します。

 

主な設定

  • OS
  • インスタンスタイプ
  • ネットワーク
    • イメージビルダーからインターネットに出れるような構成にする(アプリのインストール時、インターネットと通信するため)
  • セキュリティグループ
    • 最低限、443ポート(または80ポート)は開放

                                     etc...

追加設定

  • IAMロール
    • AppStreamからAWSサービスを操作したい場合は設定
    • AppStream用のポリシー(AmazonAppStreamFullAccess)などが付与されているロールを選択
  • Active Directory
    • イメージビルダーを組織のActive Directoryに参加させたい場合は設定

 

構築中(20分程待機)

構築完了

2.アプリケーションをインストール
イメージビルダー内で必要なソフトウェアや設定を行います。

※ソフトウェアのインストール方法や基本設定は通常のWindows上の設定方法と同じです。

 

基本設定

  • 日本語化
  • タイムゾーン etc...

 

利用したいアプリのインストール

  • 例)VSCode 

 ※インストールしたアプリケーションのパスはメモしておきましょう。

 ※複数のアプリをインストールして配信することも可能です。

 

主な基本設定とアプリのインストールが完了

 

3.イメージを作成・登録
基本設定とアプリのインストールが完了したら、イメージ化を実施します。

※先ほどメモしたパスをLaunch Pathに入力してください。

Image Assistantを起動し、配信するアプリを選択

アプリを選択し、Launchを押下

AWSコンソールに表示されるイメージ名を入力後、イメージを作成

イメージ化中(アプリの容量によって待機時間が異なる)

イメージ作成完了

これでイメージの作成が完了しました。

次はこのイメージをどのようにユーザーに展開するかを決めます。

 

4.フリートを作成
接続数やインスタンスタイプ、スケーリング設定を決定します。

 

主な設定

  • Minimum capacity(最小接続数)
    • フリートの常時起動台数を指定する項目
    • 設定値が高いほど、未使用時でも料金が発生
  • Maximum capacity(最大接続数)
    • フリートの最大接続台数を指定する項目
    • 設定値以上の接続依頼があった場合、ユーザは接続不可となる
  • Images(イメージ)
    • イメージビルダー内で作成したイメージ「test-image」を選択
  • ネットワーク
    • フリートからインターネットに出れるような構成にする
    • サブネットは2つ指定必須(障害時の切り替えやスケーリングのために複数AZ構成を取る必要があるため) 

                                     etc...

追加設定

  • IAMロール
    • AppStreamからAWSサービスを操作したい場合は設定
    • AppStream用のポリシー(AmazonAppStreamFullAccess)などが付与されているロールを選択
  • Active Directory
    • フリートを組織のActive Directoryに参加させたい場合は設定

 

その他、フリートのスケーリング設定やセッション維持時間なども設定できますが、詳細は割愛します。

 

フリート名、接続時間、接続台数を設定

作成したイメージの選択

フリート構築中(アプリの容量によって待機時間が異なる)

フリート構築完了

フリートの構築が完了しました。

これで、イメージをどのように配信するか、決めることができました。

次は、ユーザーが利用できる範囲を指定します。

 

5.スタックを作成
ユーザに配信するアプリや設定、コピー&ペーストやファイル転送などの操作可否を定義します。

 

主な設定

  • フリート
    • 使用するフリートを選択(後から変更が可能)
  • クリップボード
    • コピー&ペーストを許可する場合は選択
  • タイムゾーン
    • リモートセッションのタイムゾーンをローカルにするか否か選択

                                    etc...

スタック名、作成したフリートを選択

クリップボードの設定、タイムゾーンの設定を選択

スタック構築完了(ほぼ待機時間なしで構築が終了)

 

スタックの作成が完了しました。

 

6.ユーザープールの作成

イメージの配信方法を決めたフリートと

ユーザーの利用範囲を設定したスタックが作成完了した後、

利用するユーザーを登録します。

 

登録内容

  • Email
  • First name
    • 名前をローマ字で入力
  • Last name
    • 苗字をローマ字で入力

 

登録情報を入力

作成完了


ユーザープールの作成が完了しました。

登録したメールアドレス宛に初回パスワードが記載されたメールが届いているか確認します。

AWSからの自動送信メール

 

7.スタックを割り当て

作成したユーザープールとスタックを連携させ、ユーザーへアプリの配信を開始します。

連携はスタックの画面にて行います。

1ユーザに複数のスタックを割り当てることも可能です。

ユーザーに配信したいスタックを選択

割り当て完了



 

これで、AWS側の構築作業は終了です。

さっそく、AppStreamへ接続してみましょう。

 

8.AppStreamへの接続

AWSから自動で送信されたメールを確認し、ログインURLを選択してください。ログインすると以下の画面が表示されます。(初回ログイン時はパスワードの変更を求められます。)

ログイン後、AppStreamの画面

 

利用したいアプリ、VSCodeを選択します。

 

接続後、アプリが配信されている画面

接続できました!

これでVSCodeが利用できます!

案件で分かった注意ポイント

  • ユーザープールの削除はコマンドから
    • ユーザープールの削除は、コンソールから実施できない 
    • CloudShellからコマンドを実行し、削除する必要がある
  • スケーリング設定は適切に
    • フリートは、最小起動台数と最大起動台数が設定できる
    • 最小台数(=常時起動台数)を多くしすぎると、利用が少ない時でもコストがかかる
  • サービスクォータの上限
    • AppStreamには利用できるリソースに上限数がある(稼働可能なフリート数やユーザプールに登録できるユーザ数など) 
    • 必要に応じサービスクォータにて、AWSへ上限緩和申請を行う必要がある(事前に上限数と、必要になるリソース数を確認しておく)
  • アプリの更新時はイメージの再作成が必要
    • イメージビルダー内でイメージ化したアプリをユーザーに配信している
    • アプリを更新したい場合、イメージビルダーから再度、イメージを作成する必要がある(実際の運用では、イメージ更新のタイミングなどを取り決めておくとよい)

まとめ

今回は、Amazon AppStream 2.0 の概要と最低限必要な構築ステップを紹介しました。
AppStreamは、適切に構成すればとても便利にアプリを配信できるサービスです。

 

本章では紹介しませんでしたが、「セッションスクリプト」という設定もあります。(ユーザーのストリーミングセッションが開始される前に、セッションスクリプトを使用して AppStream 2.0 環境を準備できるもの)

 

それらを使用し、よりニーズにあった利用ができるとよいですね。

 

参考サイト

https://d1.awsstatic.com/webinars/jp/pdf/services/20191126_AWS-BlackBelt_AmazonAppStream2.0.pdf

Amazon AppStream 2.0 とは何ですか? - Amazon AppStream 2.0

Workshop Studio

Amazon AppStream 2.0 Service Quotas - Amazon AppStream 2.0

 

この記事を書いた人

ニックネーム:NN
経歴:入社3年目です。主にAWSのインフラ案件に携わってきました。最近はBIツールにも触れています。
一言:港町や海沿いの風景が好きです。写真は、横浜の海を撮影したものです。神戸や熱海、舞浜のあたりも好きです。

 

\DX推進・AI導入支援なら、株式会社シー・エス・エスへ/