チュートリアル: Linux ベースのカスタム AppStream 2.0 イメージを作成する - Amazon AppStream 2.0

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

チュートリアル: Linux ベースのカスタム AppStream 2.0 イメージを作成する

このチュートリアルでは、ユーザーにストリーミングできるアプリケーションが含まれた、Linux ベースのカスタム Amazon AppStream 2.0 イメージを作成する方法を説明します。

ステップ 1: Image Builder に Linux アプリケーションをインストールする

このステップでは、Linux Image Builder を接続して、Image Builder にアプリケーションをインストールします。

Image Builder にアプリケーションをインストールする
  1. 以下のいずれかを実行して、Image Builder に接続します。

  2. 必要なアプリケーションをインストールします。例えば、パブリック yum リポジトリから Chromium ブラウザをインストールするには、まず Terminal アプリケーションを開いてから、以下のコマンドを実行します。

    [ImageBuilderAdmin]$ sudo yum update && sudo yum install chromium.x86_64

    注記

    アプリケーションのダウンロードおよびインストールは、信頼済みサイトからのみ行います。

ステップ 2: アプリケーション最適化マニフェストファイルを生成する

このステップでは、手順 1 でインストールしたアプリケーションごとにマニフェストファイルを生成します。

アプリケーションの起動パフォーマンスを最適化するためのマニフェストファイルを生成する
  1. 最適化しようとしているアプリケーション (Chromium など) が起動済みで実行中であることを確認します。

  2. Terminal ウィンドウで以下のコマンドを実行して、アプリケーションに関連するプロセスをリストします。

    [ImageBuilderAdmin]$ ps -ef | grep chromium

  3. 上記のコマンドの出力から、ルート親 PID を見つけます。以下はサンプル出力で、ルート親 PID は 16712 です。

    [ImageBuilderAdmin]$ ps -ef | grep chromium ImageBu+ 16712 4128 0 Aug26 ? 00:00:44 /usr/lib64/chromium- browser/chromium-browser --enable-plugins --enable-extensions -- enable-user- scripts --enable-printing --enable-gpu-rasterization -- enable-sync --auto-ssl- client-auth ImageBu+ 16726 16712 0 Aug26 ? 00:00:00 /usr/lib64/chromium- browser/chromium-browser --type=zygote --no-zygote-sandbox ImageBu+ 16727 16712 0 Aug26 ? 00:00:00 /usr/lib64/chromium- browser/chromium- browser --type=zygote ImageBu+ 16731 16727 0 Aug26 ? 00:00:00 /usr/lib64/chromium- browser/chromium-browser --type=zygot
  4. アプリケーションが実行されている状態を維持して、ユーザーが必要とする初期コンポーネントを使用するようにしてください。そうすることで、これらのコンポーネントが最適化プロセスによってキャプチャされることを確実にします。

  5. 以下のコンテンツを使用して、スクリプトファイル (~/getfilestool.sh など) を作成します。

    #!/bin/bash ## usage getfilestool.sh $pid lsof -p $(pstree -p $1 | grep -o '([0-9]\+)' | grep -o '[0-9]\+' | tr '\012' ,)|grep REG | sed -n '1!p' | awk '{print $9}'|awk 'NF'
  6. 以下のコマンドを実行して、ファイルが実行可能であることを検証します。

    [ImageBuilderAdmin]$ chmod u+x ~/getfilestool.sh

  7. 以下のコマンドを実行して、上記のステップ 3 で見つかったルート親プロセスからの実行中ファイルをすべてキャプチャし、一時的なマニフェストファイルに保存します。

    [ImageBuilderAdmin]$ sudo ~/getfilestool.sh 16712 > /tmp/chromium-manifest.txt

  8. 最適化マニフェストの内容を確認します。最適化マニフェストは、アプリケーションごとの行区切りテキストファイルです。

ステップ 3: AppStream 2.0 アプリケーションカタログを作成する

このステップでは、Image Builder で CLI ツール AppStreamImageAssistant を使用して、イメージ用のアプリケーションを指定することで AppStream 2.0 アプリケーションカタログを作成します。ストリーミングする予定のアプリケーションごとに、名前、表示名、起動する実行可能ファイル、および表示するアイコンを指定できます。

AppStream 2.0 アプリケーションカタログを作成する
  1. Image Builder デスクトップで、サイドパネルから、またはアプリケーショングリッドを開いて [Terminal] (ターミナル) を開きます。

  2. AppStreamImageAssistant --help を実行して、使用可能なコマンドのリストを表示します。これらのコマンドを使用して、アプリケーションを追加し、イメージを作成します。

  3. 以下のコマンドを実行して、インストール済みのアプリケーション (Chromium など) を AppStream 2.0 ユーザーのアプリケーションリストに追加します。

    AppStreamImageAssistant add-application \ --name Chromium \ --absolute-app-path /usr/lib64/chromium-browser/chromium-browser \ --display-name Chromium \ --absolute-icon-path /usr/share/icons/hicolor/256x256/apps/chromium-browser.png \ --absolute-manifest-path /tmp/chromium-manifest.txt

    または、以下のコマンドを実行します。

    AppStreamImageAssistant add-application \ --name="Chromium" \ --absolute-app-path="/usr/lib64/chromium-browser/chromium-browser" \ --display-name="Chromium" \ --absolute-icon-path="/usr/share/icons/hicolor/256x256/apps/chromium-browser.png" \ --absolute-manifest-path="/tmp/chromium-manifest.txt"
  4. 他のアプリケーションを追加するには、追加のアプリケーションごとにステップ 3 を繰り返します。

  5. カタログに追加されたアプリケーションのリストを、アイコンパスや起動パラメータといったメタデータと共に表示するには、以下のコマンドを実行します。

    AppStreamImageAssistant list-applications

  6. アプリケーションをカタログから削除するには、以下のコマンドを実行します。

    AppStreamImageAssistant remove-application –-name application_name

ステップ 4: デフォルトのアプリケーション設定と環境変数を作成する

このステップでは、AppStream 2.0 ユーザー用のデフォルトのアプリケーション設定と環境変数を作成します。これにより、ユーザーがこれらの設定を作成または構成する必要がなくなるため、AppStream 2.0 ストリーミングセッション中にアプリケーションを迅速に開始できます。

ユーザー用のデフォルトのアプリケーション変数と環境変数を作成する
  1. デフォルト設定を作成するアプリケーションを起動します。例えば、Terminal ウィンドウで以下のコマンドを実行して、Chromium ブラウザを起動します。

    [ImageBuilderAdmin]$ chromium-browser

  2. アプリケーションの設定を行う 例えば、Chromium ブラウザのホームページを https://aws.amazon.com に設定します。

  3. 以下のコマンドを実行して、Chromium の設定を /etc/skel にコピーします。

    [ImageBuilderAdmin]$ sudo mkdir /etc/skel/.config

    [ImageBuilderAdmin]$ sudo cp -R ~/.config/chromium /etc/skel/.config

  4. 環境変数を設定して、スクリプトファイルに追加します。例えば、以下のコマンドを実行します。

    [ImageBuilderAdmin]$ echo "export FOO=BAR" | sudo tee -a /etc/profile.d/myenvvars.sh

    [ImageBuilderAdmin]$ sudo chmod +x /etc/profile.d/myenvvars.sh

ステップ 5: アプリケーションと設定をテストする

このステップでは、追加したアプリケーションが正しく実行され、デフォルトのアプリケーション設定と環境変数が期待どおりに動作することを検証します。

Image Builder でアプリケーションとデフォルト設定をテストする
  1. root 権限がないテストユーザーを作成します。例えば、[Terminal] (ターミナル) ウィンドウで以下のコマンドを実行して、Image Builder に test-user を作成します。

    [ImageBuilderAdmin]$ sudo useradd -m test-user

    [ImageBuilderAdmin]$ echo -e 'Pa55w0rdas2!!!\nPa55w0rdas2!!!\n' | sudo passwd test-user

  2. テストユーザーに切り替えます。

    [ImageBuilderAdmin]$ su - test-user

  3. アプリケーション (Chromium など) をテストユーザーとして起動します。

    [test-user]$ /usr/bin/chromium-browser

  4. テストユーザーに対してデフォルト設定が利用可能であることを検証します (Chromium ホームページが https://aws.amazon.com/ であるなど)。

  5. テストユーザーに対して環境変数が利用可能であることを検証します。例えば、以下のコマンドを使用します。

    [test-user]$ echo $FOO

    このコマンドは、Terminal に出力 BAR を表示します。

  6. この Image Builder からイメージを作成する前に、以下のコマンドを実行してテストユーザーを削除します。

    # logout test user

    [test-user]$ logout

    # kill test user's running processes

    [ImageBuilderAdmin]$ sudo killall -u test-user

    # delete user

    [ImageBuilderAdmin]$ sudo userdel -r test-user

ステップ 6: イメージの作成を完了する

このステップでは、イメージの名前を選択してイメージの作成を完了します。

イメージを作成する
  1. [Terminal] (ターミナル) ウィンドウで AppStreamImageAssistant create-image を実行して、Image Builder からイメージを作成します。このイメージには、インストール済みかつ登録済みのアプリケーションに加えて、設定したセッションスクリプトとデフォルトのアプリケーション設定が含まれています。

    利用可能なオプションのリストを表示するには、AppStreamImageAssistant create-image --help を実行します。詳細については、Image Assistant CLIオペレーションを使用して Amazon AppStream 2.0 イメージをプログラムで作成するcreate-image 操作を参照してください。

  2. 数秒後にリモートセッションが切断されます。[Lost Connectivity] メッセージが表示されたら、ブラウザタブを閉じます。イメージが作成されると、Image Builder のステータスが [Snapshotting] と表示されます。このプロセスが終了するまで Image Builder に接続することはできません。

  3. コンソールに戻り、[Images]、[Image Registry] の順に移動します。新しいイメージがリストに表示されていることを確認します。

    イメージの作成中、イメージのステータスは、コンソールのイメージレジストリに [Pending (保留中)] と表示されます。[Pending] (保留中) ステータスのイメージに接続することはできません。status。

  4. ステータスを更新するには、[Refresh] (更新) アイコンをクリックします。イメージが作成されたら、イメージのステータスは [Available] に変わり、Image Builder が自動的に停止されます。

    イメージの作成を続行するには、Image Builder を開始してコンソールから接続するか、新しい Image Builder を作成することができます。

ステップ 7 (オプション): イメージにタグを付け、コピーする

イメージの作成中または作成後に 1 つ以上のタグをイメージに追加できます。イメージは、同じリージョン内でコピーする、または同じ Amazon Web Services アカウント内の新しいリージョンにコピーすることもできます。ソースイメージをコピーすると、同一でありながらも個別の宛先イメージが作成されますが、AWS はユーザー定義タグを一切コピーしません。また、コピーできるのは独自に作成したカスタムイメージのみであり、AWS が提供するベースイメージはコピーできません。

注記

同時に 2 つのイメージをコピー先にコピーできます。イメージのコピー先がイメージの制限に達している場合は、エラーが発生します。この場合にイメージをコピーするには、最初にコピー先からイメージを削除する必要があります。コピー先がイメージのクォータ(制限とも呼ばれます)を下回ったら、ソースリージョンからイメージのコピーを開始します。詳細については、「Amazon AppStream 2.0 Service Quotas」を参照してください。

既存のイメージにタグを追加するには
  1. ナビゲーションペインで、[イメージ]、[イメージレジストリ] の順に選択します。

  2. イメージのリストで、タグを追加するイメージを選択します。

  3. [Tags] (タグ)、[Add/Edit Tags] (タグの追加/編集) の順に選択してから、[Add Tag] (タグを追加する) をクリックします。タグのキーと値を指定してから、[Save] (保存) をクリックします。

詳細については、「Amazon AppStream 2.0 リソースのタグ付け」を参照してください。

イメージをコピーするには

地理的に異なるリージョン間でイメージをコピーすると、同じイメージに基づいて複数のリージョンからアプリケーションをストリーミングできます。ユーザーに近い場所でアプリケーションをストリーミングすることによって、AppStream 2.0 を使用したアプリケーションのストリーミングに関するユーザーのエクスペリエンスを向上させることができます。

  1. ナビゲーションペインで、[イメージ]、[イメージレジストリ] の順に選択します。

  2. イメージのリストで、コピーするイメージを選択します。

  3. [アクション][コピー] の順に選択します。

  4. [Copy Image (イメージのコピー)] ダイアログボックスで、以下の情報を指定し、[Copy Image (イメージのコピー)] を選択します。

    • [送信先リージョン] で、新しいイメージのコピー先となるリージョンを選択します。

    • [名前] に、イメージが送信先にコピーされるときの名前を指定します。

    • [説明] (オプション) に、イメージが送信先にコピーされるときの説明を指定します。

  5. コピー操作の進行状況を確認するには、コンソールに戻り、[イメージ]、[イメージレジストリ] に移動します。ナビゲーションバーを使用して、コピー先のリージョンに切り替え (該当する場合)、新しいイメージがイメージのリストに表示されることを確認します。

    新しいイメージは、コンソールのイメージレジストリで、最初のステータスがコピー中として表示されます。イメージが正常に作成されると、イメージのステータスが [Available] に変わります。つまり、イメージを使用してスタックを起動し、アプリケーションをストリーミングすることができます。

ステップ 8: クリーンアップ

最後に、実行中の Image Builder を停止してリソースを解放し、アカウントに意図しない料金が発生しないようにすることができます。使用していない、実行中の Image Builder を停止することをお勧めします。詳細については、AppStream 2.0 の料金をご覧ください。

実行中の Image Builder を停止するには
  1. ナビゲーションペインで、[Images]、[Image Builders] の順に選択し、実行中の Image Builder インスタンスを選択します。

  2. [Actions]、[Stop] の順に選択します。