

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

# Linux ベースのイメージを作成する
<a name="create-linux-based-images"></a>

Linux ベースの Amazon WorkSpaces アプリケーションイメージを作成するには、Linux Image Builder に接続し、必要なアプリケーションをインストールし、デフォルトのアプリケーション設定と環境変数を作成し、コマンドラインインターフェイス (CLI) ツールまたは Image Assistant (GUI) ツールを使用してこれらのアプリケーションをアプリケーションカタログに追加します。GUI ツールを開くには、アプリケーションのリストで [**Image Assistant**] を見つけます。

**Topics**
+ [ユーザー用のデフォルトアプリケーション設定の作成](create-default-app-settings.md)
+ [Linux ユーザー用のデフォルト環境変数の作成](create-default-variables-linux.md)
+ [Linux アプリケーションの起動パフォーマンスの最適化](optimize-launch-performance.md)
+ [セッションスクリプトの作成](create-session-scripts.md)
+ [Linux 用の Image Assistant CLI ツールの使用](image-assistant-cli.md)
+ [ウェブカメラのサポートの有効化と無効化](webcam-support.md)
+ [ホームフォルダのヘビーファイル同期モードの有効化と無効化](heavy-file-sync.md)
+ [チュートリアル: Linux ベースのカスタム WorkSpaces アプリケーションイメージを作成する](tutorial-create-linux-image.md)
+ [Linux イメージの日本語サポートを有効にする](enable-japanese-support-linux.md)

# ユーザー用のデフォルトアプリケーション設定の作成
<a name="create-default-app-settings"></a>

ユーザーに対してデフォルトのアプリケーション設定を作成するには、以下の手順に従います。

**Topics**
+ [ステップ 1: Image Builder に Linux アプリケーションをインストールする](#app-settings-image-install)
+ [ステップ 2: TemplateUser アカウントを作成する](#app-settings-template-user)
+ [ステップ 3: デフォルトのアプリケーション設定を作成する](#app-settings-image-create-default-app-settings)
+ [ステップ 4: デフォルトのアプリケーション設定を保存する](#app-settings-image-save-default-app-settings)
+ [ステップ 5: デフォルトのアプリケーション設定をテストする (オプション)](#app-settings-image-test-applications)
+ [ステップ 6: クリーンアップ](#app-settings-image-finish)

## ステップ 1: Image Builder に Linux アプリケーションをインストールする
<a name="app-settings-image-install"></a>

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

**Image Builder にアプリケーションをインストールする**

1. 以下のいずれかを実行して、Image Builder に接続します。
   + [WorkSpaces アプリケーションコンソールを使用する](managing-image-builders-connect-console.md) (ウェブ接続のみ)
   + [ストリーミング URL を作成する](managing-image-builders-connect-streaming-URL.md) (ウェブまたは WorkSpaces アプリケーションクライアント接続用)
**注記**  
Amazon Linux GNOME デスクトップには ImageBuilderAdmin ユーザーとしてログインされ、ルート管理者権限が付与されます。

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

   **[ImageBuilderAdmin]\$1 sudo yum update && sudo yum install chromium.x86\$164** 

## ステップ 2: TemplateUser アカウントを作成する
<a name="app-settings-template-user"></a>

このステップでは、TemplateUser アカウントを作成します。これにより、ストリーミングユーザー用のデフォルトのアプリケーション設定が作成されます。

**TemplateUser アカウントを作成するには**

1. root 権限がない TemplateUser アカウントを作成します。例えば、[Terminal] (ターミナル) ウィンドウで以下のコマンドを実行して、Image Builder に TemplateUser を作成します。

   **[ImageBuilderAdmin]\$1 sudo useradd -m TemplateUser** 

   **[ImageBuilderAdmin]\$1 echo -e '<*password*>\$1n<*password*>\$1n' \$1 sudo passwd TemplateUser**

1. TemplateUser アカウントに切り替えます。

   **[ImageBuilderAdmin]\$1 su - TemplateUser** 

## ステップ 3: デフォルトのアプリケーション設定を作成する
<a name="app-settings-image-create-default-app-settings"></a>

このステップでは、WorkSpaces Applications ユーザーのデフォルトのアプリケーション設定を作成します。これにより、ユーザーは WorkSpaces アプリケーションストリーミングセッション中にアプリケーションをすばやく開始できます。これらの設定を自分で作成または設定する必要はありません。

**ユーザーに対してデフォルトのアプリケーション設定を作成するには**

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

    **[TemplateUser]\$1 chromium-browser**

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

1. アプリケーションを閉じます。

1. ログアウト:

   **[TemplateUser]\$1 logout** 

## ステップ 4: デフォルトのアプリケーション設定を保存する
<a name="app-settings-image-save-default-app-settings"></a>

このステップでは、**/etc/skel/** ディレクトリに追加したデフォルトのアプリケーション設定をコピーし、ストリーミングユーザーが利用できるようにします。

**デフォルトのアプリケーション設定を保存するには**
+ ターミナルウィンドウで次のコマンドを実行して、ストリーミングユーザー用のデフォルトのアプリケーション設定をコピーします。

   **[ImageBuilderAdmin]\$1 sudo cp -r -f /home/TemplateUser/. /etc/skel**

## ステップ 5: デフォルトのアプリケーション設定をテストする (オプション)
<a name="app-settings-image-test-applications"></a>

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

**Image Builder でアプリケーションとデフォルト設定をテストする**

1. root 権限がないテストユーザーを作成します。例えば、**[Terminal]** (ターミナル) ウィンドウで以下のコマンドを実行して、Image Builder に **test-user** を作成します。

   **[ImageBuilderAdmin]\$1 sudo useradd -m test-user**

   **[ImageBuilderAdmin]\$1 echo -e '*password*>\$1n<*password*>\$1n' \$1 sudo passwd test-user** 

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

   **[ImageBuilderAdmin]\$1 su - test-user**

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

   **[test-user]\$1 /usr/bin/chromium-browser** 

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

1. ログアウト:

   **[test-user]\$1 logout**

## ステップ 6: クリーンアップ
<a name="app-settings-image-finish"></a>

最後のステップは、クリーンアップです。

**次をクリーンアップするには：**

1. TemplateUser を削除する:

   **[ImageBuilderAdmin]\$1 sudo killall -u TemplateUser**

   **[ImageBuilderAdmin]\$1 sudo userdel -r TemplateUser**

1. test-user を削除する (ステップ 5 をスキップした場合は不要):

   **[ImageBuilderAdmin]\$1 sudo killall -u test-user**

   **ImageBuilderAdmin]\$1 sudo userdel -r test-user**

# Linux ユーザー用のデフォルト環境変数の作成
<a name="create-default-variables-linux"></a>

Linux Image Builder インスタンスに環境変数を作成することができます。環境変数を作成すると、そのイメージから作成されたストリーミングインスタンスでそれらを使用できるようになります。

**注記**  
Linux フリートインスタンスで、Image Assistant (GUI) ツールを使用して設定された環境変数とデフォルトのシステム環境変数は、/etc/profile.d/appstream\$1system\$1vars.sh スクリプトを通じてエクスポートされます。これらの環境変数にアクセスするには、アプリケーションで /etc/profile.d/appstream\$1system\$1vars.sh スクリプトを明示的にソースにする必要があります。

**ユーザー用の環境変数を作成する**

1. `/etc/profile` フォルダが存在しない場合は、以下のコマンドを実行してフォルダを作成します。

   **[ImageBuilderAdmin]\$1 sudo mkdir -p /etc/profile.d** 

1. このフォルダ内に新しいシェルスクリプトファイル (my-environment.sh など) を作成するには、以下のコマンドを実行します。

   **[ImageBuilderAdmin]\$1 vim my-environment.sh**

1. スクリプトファイルの最初の行に、以下のコンテンツを追加します。

   **\$1\$1/bin/sh **

1. 後続の各行に、イメージの環境変数を設定するための **export** コマンドを追加します。以下の例は、`PATH` 変数に `$HOME/bin` を追加します。

   **export PATH=”\$1HOME/bin:\$1PATH”**

1. **Esc** キーを押して vim のコマンドモードに戻ってから、以下のコマンドを実行してスクリプトを保存し、vim を終了します。

   **:x**

1. 以下のコマンドを実行して、プログラムとしてのスクリプトの実行を許可します。

   **[ImageBuilderAdmin]\$1 chmod \$1x my-environment.sh**

# Linux アプリケーションの起動パフォーマンスの最適化
<a name="optimize-launch-performance"></a>

Image Assistant GUI ツールを使用している場合、アプリケーションの起動パフォーマンスが自動的に最適化されます。

Image Assistant CLI を使用している場合は、以下のステップに従って起動パフォーマンスを手動で最適化します。アプリケーション最適化マニフェストを作成してファイルを追加すると、新しいフリートインスタンスでの初回起動時におけるアプリケーションの起動がより迅速になります。ただし、これにより、ユーザーがフリートインスタンスを利用できるようになるまでの時間が長くなります。最適化マニフェストは、アプリケーションごとに 1 つある行区切りのテキストファイルです。

マニフェストファイル (<*your-app*>-manifest.txt など) は、手動で作成する、または以下の手順に従って作成することができます。

**マニフェストファイルを作成する**

1. 最適化しようとしているアプリケーションが起動済みで実行中であることを確認します。

1. Linux Image Builder のターミナルから、以下のコマンドを実行します。

   **ps -ef \$1 grep <*application-process-name*>**

1. 最後のステップの出力で最小の PID 番号を検索します。これは、アプリケーションのルート親プロセスの PID です。

1. アプリケーションが実行されている状態を維持して、ユーザーが必要とする初期コンポーネントを使用するようにしてください。そうすることで、これらのコンポーネントが最適化プロセスによってキャプチャされることを確実にします。

1. 以下のコンテンツを使用して、スクリプトファイル (`~/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'
   ```

1. 以下のコマンドを使用して、ファイルが実行可能であることを確認します。

   **[ImageBuilderAdmin]\$1 chmod u\$1x \$1/getfilestool.sh**

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

   **[ImageBuilderAdmin]\$1 sudo \$1/getfilestool.sh <*root-parent-pid*> > /tmp/<y*our-app*>-manifest.txt **

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

最適化マニフェストは、Image Assistant コマンドラインインターフェイス (CLI) ツールを使用して、アプリケーションごとに指定することができます。詳細については、「[Linux 用の Image Assistant CLI ツールの使用](image-assistant-cli.md)」を参照してください。

# セッションスクリプトの作成
<a name="create-session-scripts"></a>

WorkSpaces アプリケーションは、Windows ベースと Linux ベースの両方のストリーミングインスタンスでインスタンスセッションスクリプトを提供します。セッションスクリプトの詳細については、[セッションスクリプトを使用して Amazon WorkSpaces アプリケーションのユーザーのストリーミングエクスペリエンスを管理する](use-session-scripts.md) を参照してください。

セッションスクリプトは WorkSpaces アプリケーションイメージ内で指定されます。Linux インスタンス上のセッションスクリプト設定ファイルを見つけるには、`/opt/appstream/SessionScripts/config.json` に移動します。以下のコードは、「`test-session-start`」という名前のセッション開始スクリプトと、「`test-session-stop`」という名前のセッション終了スクリプトを、それらのランタイムパラメータと共に指定するサンプル `config.json` ファイルです。`config.json` で参照されているスクリプトに実行許可があり、コマンドインタプリタが定義されていることを確認します (例 : \$1\$1/bin/bash)。

```
{
     "SessionStart": {
          "Executables": [
               {
                    "Context": "system",
                    "Filename": "/opt/appstream/SessionScripts/test-session-start",
                    "Arguments": "arg1",
                    "S3LogEnabled": true
               }
          ],
          "WaitingTime": 30
     },
     "SessionTermination": {
          "Executables": [
               { 
                    "Context": "system",
                    "Filename": "/opt/appstream/SessionScripts/test-session-stop", 
                    "Arguments": "arg2", 
                    "S3LogEnabled": true
               }
          ],
          "WaitingTime": 30
     }
}
```

# Linux 用の Image Assistant CLI ツールの使用
<a name="image-assistant-cli"></a>

Linux ベースの Image Builder では、Image Assistant CLI ツール **AppStreamImageAssistant** を使用して WorkSpaces Applications イメージを作成および管理できます。このツールは `/usr/local/appstream/image-assistant/AppStreamImageAssistant` にあり、シンボリックリンクは `/bin/AppStreamImageAssistant` にあります。Linux 用のこの CLI ツールは、Windows 用の Image Assistant CLI ツールと同じ操作を多数サポートしています。これらの操作の詳細については、[Amazon WorkSpaces アプリケーションイメージを作成および管理するための Image Assistant CLI オペレーション](cli-operations-managing-creating-image-image-assistant.md) を参照してください。

# ウェブカメラのサポートの有効化と無効化
<a name="webcam-support"></a>

WorkSpaces Applications は、ローカルウェブカメラビデオ入力を WorkSpaces Applications ストリーミングセッションにリダイレクトすることで、リアルタイムオーディオビデオ (AV) をサポートします。この機能を使用すると、ユーザーは WorkSpaces アプリケーションストリーミングセッション内のビデオ会議や音声会議にローカルウェブカメラを使用できます。リアルタイム AV とリアルタイムオーディオのサポートにより、ユーザーは WorkSpaces アプリケーションストリーミングセッションを離れることなく、使い慣れたビデオおよびオーディオ会議アプリケーションを使用してコラボレーションできます。

この機能を使用するには、2022 年 9 月 21 日以降にリリースされた Linux WorkSpaces Applications エージェントを使用する Linux WorkSpaces Applications イメージを使用する必要があります。

**注記**  
リアルタイム AV は、Rocky Linux または Red Hat Enterprise Linux を利用した stream.standard.small インスタンスではサポートされていません。クライアントツールバーにカメラアイコンとマイクアイコンが表示されません。

リアルタイム AV 機能は、Linux ストリーミングセッションではデフォルトで有効になっています。Linux Image Builder でユーザーのウェブカメラのアクセス許可を設定するには、`/etc/appstream/appstream.conf` を作成し、次のコンテンツを追加します。

**注記**  
ウェブカメラを有効にする場合は **1** を、無効にする場合は **0** を指定します。

```
[webcam]
permission = 1
```

# ホームフォルダのヘビーファイル同期モードの有効化と無効化
<a name="heavy-file-sync"></a>

組織の Amazon Simple Storage Service ホームフォルダオプションを有効にできます。WorkSpaces アプリケーションスタックの Amazon S3 ホームフォルダを有効にすると、スタックのユーザーはアプリケーションストリーミングセッション中に永続的ストレージフォルダにアクセスできます。ユーザーがホームフォルダにアクセスするために必要な設定はありません。ユーザーがホームフォルダに保存しているデータは、 の Amazon S3 バケットに自動的にバックアップされ AWS アカウント、以降のセッションでそれらのユーザーが利用できるようになります。詳細については、「[WorkSpaces アプリケーションユーザーのホームフォルダの有効化と管理](home-folders.md)」を参照してください。

ユーザーがストリーミングインスタンスからホームフォルダに大きなテキストファイルを保存するときに一貫性のないファイル同期が発生する可能性のある、スムーズなエクスペリエンスと既存の制限に対応するために、WorkSpaces アプリケーション管理者は、WorkSpaces アプリケーションの使用中に Amazon S3 への大きなファイルのアップロードが一般的なユーザーシナリオである場合に **heavy\$1sync** 設定オプションを有効にできます。このオプションをオンにすると、ホームフォルダのファイル同期プロセスにレイテンシーが追加される可能性がありますが、Amazon S3 へのすべての同期の完全性が保証されます。

この機能は、2024 年 9 月 12 日以降にリリースされたすべての Red Hat Enterprise Linux イメージ、および Linux WorkSpaces Applications エージェントを使用する Linux WorkSpaces Applications イメージで使用できます。

Red Hat Enterprise Linux および Amazon Linux ストリーミングセッションでは、重同期機能はデフォルトで無効になっています。Red Hat Enterprise Linux または Amazon Linux Image Builder でユーザーの重同期のアクセス許可を設定するには、`/etc/appstream/appstream.conf` を作成し、次のコンテンツを追加します。

**注記**  
**1** を指定して重同期を有効にするか、**0** を指定して重同期を無効にします。

```
[storage]
heavy_sync = 1
```

# チュートリアル: Linux ベースのカスタム WorkSpaces アプリケーションイメージを作成する
<a name="tutorial-create-linux-image"></a>

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

**重要**  
Image Builder で「as2-streaming-user」という名前のユーザーを作成しないでください。これは Fleet の予約ユーザー名です。WorkSpaces アプリケーションワークフローの外部でこのユーザー名を作成すると、フリートでストリーミングの問題が発生する可能性があります。

**Topics**
+ [ステップ 1: Image Builder に Linux アプリケーションをインストールする](#tutorial-linux-image-install)
+ [ステップ 2: アプリケーション最適化マニフェストファイルを生成する](#tutorial-linux-image-manifest)
+ [ステップ 3: WorkSpaces アプリケーションアプリケーションカタログを作成する](#tutorial-linux-image-catalog)
+ [ステップ 4: デフォルトのアプリケーション設定と環境変数を作成する](#tutorial-linux-image-create-default-app-settings)
+ [ステップ 5: アプリケーションと設定をテストする](#tutorial-linux-image-test-applications)
+ [ステップ 6: イメージの作成を完了する](#tutorial-linux-image-finish-create-image)
+ [ステップ 7 (オプション): イメージにタグを付け、コピーする](#tutorial-linux-image-tag-copy)
+ [ステップ 8: クリーンアップ](#tutorial-linux-image-finish)

## ステップ 1: Image Builder に Linux アプリケーションをインストールする
<a name="tutorial-linux-image-install"></a>

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

**Image Builder にアプリケーションをインストールする**

1. 以下のいずれかを実行して、Image Builder に接続します。
   + [WorkSpaces アプリケーションコンソールを使用する](managing-image-builders-connect-console.md) (ウェブ接続のみ)
   + [ストリーミング URL を作成する](managing-image-builders-connect-streaming-URL.md) (ウェブまたは WorkSpaces アプリケーションクライアント接続用)
**注記**  
Amazon Linux GNOME デスクトップには ImageBuilderAdmin ユーザーとしてログインされ、ルート管理者権限が付与されます。

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

   **[ImageBuilderAdmin]\$1 sudo yum update && sudo yum install chromium.x86\$164** 
**注記**  
アプリケーションのダウンロードおよびインストールは、信頼済みサイトからのみ行います。

## ステップ 2: アプリケーション最適化マニフェストファイルを生成する
<a name="tutorial-linux-image-manifest"></a>

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

**アプリケーションの起動パフォーマンスを最適化するためのマニフェストファイルを生成する**

1. 最適化しようとしているアプリケーション (Chromium など) が起動済みで実行中であることを確認します。

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

   **[ImageBuilderAdmin]\$1 ps -ef \$1 grep chromium **

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

   ```
   [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
   ```

1. アプリケーションが実行されている状態を維持して、ユーザーが必要とする初期コンポーネントを使用するようにしてください。そうすることで、これらのコンポーネントが最適化プロセスによってキャプチャされることを確実にします。

1. 以下のコンテンツを使用して、スクリプトファイル (`~/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'
   ```

1. 以下のコマンドを実行して、ファイルが実行可能であることを検証します。

   **[ImageBuilderAdmin]\$1 chmod u\$1x \$1/getfilestool.sh** 

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

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

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

## ステップ 3: WorkSpaces アプリケーションアプリケーションカタログを作成する
<a name="tutorial-linux-image-catalog"></a>

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

**WorkSpaces アプリケーションカタログを作成するには**

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

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

1. 次のコマンドを実行して、インストールされたアプリケーション (Chromium など) を WorkSpaces Applications ユーザーのアプリケーションリストに追加します。

   ```
   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"
   ```

1. 他のアプリケーションを追加するには、追加のアプリケーションごとにステップ 3 を繰り返します。

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

   **AppStreamImageAssistant list-applications**

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

   **AppStreamImageAssistant remove-application –-name *application\$1name***

## ステップ 4: デフォルトのアプリケーション設定と環境変数を作成する
<a name="tutorial-linux-image-create-default-app-settings"></a>

このステップでは、WorkSpaces Applications ユーザーのデフォルトのアプリケーション設定と環境変数を作成します。これにより、ユーザーは WorkSpaces アプリケーションストリーミングセッション中にアプリケーションをすばやく開始できます。これらの設定を自分で作成または設定する必要はありません。

**ユーザー用のデフォルトのアプリケーション変数と環境変数を作成する**

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

    **[ImageBuilderAdmin]\$1 chromium-browser**

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

1. Chromium アプリケーションが閉じられていることを確認し、次のコマンドを実行して Chromium の設定を **/etc/skel** にコピーします。

   **[ImageBuilderAdmin]\$1 sudo mkdir /etc/skel/.config**

   **[ImageBuilderAdmin]\$1 sudo cp -R \$1/.config/chromium /etc/skel/.config** 

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

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

   **[ImageBuilderAdmin]\$1 sudo chmod \$1x /etc/profile.d/myenvvars.sh** 

## ステップ 5: アプリケーションと設定をテストする
<a name="tutorial-linux-image-test-applications"></a>

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

**Image Builder でアプリケーションとデフォルト設定をテストする**

1. root 権限がないテストユーザーを作成します。例えば、**[Terminal]** (ターミナル) ウィンドウで以下のコマンドを実行して、Image Builder に **test-user** を作成します。

   **[ImageBuilderAdmin]\$1 sudo useradd -m test-user**

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

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

   **[ImageBuilderAdmin]\$1 su - test-user**

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

   **[test-user]\$1 /usr/bin/chromium-browser** 

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

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

   **[test-user]\$1 echo \$1*FOO***

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

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

   **\$1 logout test user**

   **[test-user]\$1 logout**

   **\$1 kill test user's running processes**

   **[ImageBuilderAdmin]\$1 sudo killall -u test-user**

   **\$1 delete user**

   **[ImageBuilderAdmin]\$1 sudo userdel -r test-user**

## ステップ 6: イメージの作成を完了する
<a name="tutorial-linux-image-finish-create-image"></a>

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

**イメージを作成する**

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

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

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

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

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

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

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

## ステップ 7 (オプション): イメージにタグを付け、コピーする
<a name="tutorial-linux-image-tag-copy"></a>

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

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

**既存のイメージにタグを追加するには**

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

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

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

詳細については、「[Amazon WorkSpaces アプリケーションリソースのタグ付け](tagging-basic.md)」を参照してください。

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

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

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

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

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

1. [**Copy Image (イメージのコピー)**] ダイアログボックスで、以下の情報を指定し、[**Copy Image (イメージのコピー)**] を選択します。
   + [**送信先リージョン**] で、新しいイメージのコピー先となるリージョンを選択します。
   + [**名前**] に、イメージが送信先にコピーされるときの名前を指定します。
   + [**説明**] (オプション) に、イメージが送信先にコピーされるときの説明を指定します。

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

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

## ステップ 8: クリーンアップ
<a name="tutorial-linux-image-finish"></a>

最後に、実行中の Image Builder を停止してリソースを解放し、アカウントに意図しない料金が発生しないようにすることができます。使用していない、実行中の Image Builder を停止することをお勧めします。詳細については、[WorkSpaces アプリケーションの料金](https://aws.amazon.com/appstream2/pricing/)」を参照してください。

**実行中の Image Builder を停止するには**

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

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

# Linux イメージの日本語サポートを有効にする
<a name="enable-japanese-support-linux"></a>

このチュートリアルでは、Linux イメージの日本語サポートを有効にする方法について説明します。これにより、イメージ上のアプリケーションは日本語の文字を表示でき、ストリーミングユーザーはイメージからのストリーミングセッションで日本語入力方法を使用できるようになります。

**Topics**
+ [ステップ 1: 日本語フォントと入力方法をインストールする](#tutorial-japanese-font)
+ [ステップ 2: システムタイムゾーンを設定する](#tutorial-japanese-zone)
+ [ステップ 3: システムロケールと表示言語を設定する](#tutorial-japanese-locale)
+ [ステップ 4: 入力方法を設定する](#tutorial-japanese-input)
+ [ステップ 5: キーボードレイアウトを設定する](#tutorial-japense-keyboard)
+ [ステップ 6: Image Builder で検証を行う](#tutorial-japense-verify)
+ [ステップ 7: イメージを作成する](#tutorial-japanese-create)

## ステップ 1: 日本語フォントと入力方法をインストールする
<a name="tutorial-japanese-font"></a>

このステップでは、Linux Image Builder に接続し、任意のフォントパッケージと入力方法パッケージをインストールします。

**日本語フォントと入力方法をインストールするには**

1. 以下のいずれかを実行して、Image Builder に接続します。
   + [WorkSpaces アプリケーションコンソールを使用する](managing-image-builders-connect-console.md) (ウェブ接続のみ)
   + [ストリーミング URL を作成する](managing-image-builders-connect-streaming-URL.md) (ウェブまたは WorkSpaces アプリケーションクライアント接続用)
**注記**  
Amazon Linux GNOME デスクトップには ImageBuilderAdmin ユーザーとしてログインされ、ルート管理者権限が付与されます。

1. 必要なフォントと入力方法をインストールします。これを行うには、ターミナルアプリケーションを開き、次のコマンドを実行します。

   **sudo yum install vlgothic-p-fonts.noarch**

   **sudo yum install ibus-kkc.x86\$164**

1. 上記のコマンドに加えて、Rocky Linux および Red Hat Enterprise Linux では、次のコマンドを実行します。

   **sudo yum install glibc-langpack-ja**

## ステップ 2: システムタイムゾーンを設定する
<a name="tutorial-japanese-zone"></a>

システムタイムゾーンを設定するには、次のコマンドを実行します。

**sudo timedatectl set-timezone "Asia/Tokyo"**

## ステップ 3: システムロケールと表示言語を設定する
<a name="tutorial-japanese-locale"></a>

システムロケールと表示言語を設定するには、次のコマンドを実行します。

**システムロケールと表示言語を設定するには**

1. **sudo vim /etc/cloud/cloud.cfg** コマンドを実行して `cloud-init config` ファイルを更新し、[**ロケール**] を [**locale: ja\$1jp.utf8**] に変更し、ファイルを保存して閉じます。

1. **sudo localectl set-locale LANG=ja\$1JP.utf8** を実行してシステム設定を更新します。

1. **sudo gsettings set org.gnome.system.locale region "ja\$1JP.utf8"** を実行して Gnome シェル設定を更新します。

## ステップ 4: 入力方法を設定する
<a name="tutorial-japanese-input"></a>

イメージに追加するアプリケーションの入力方法を設定します。アプリケーションのインストール方法、マニフェストファイルの生成方法、およびデフォルト設定の作成方法の詳細については、「[チュートリアル: Linux ベースのカスタム WorkSpaces アプリケーションイメージを作成する](tutorial-create-linux-image.md)」を参照してください。このステップでは、`/usr/local/firefox/firefox` にある Firefox アプリケーションが既にインストールされていることを前提としています。

**入力方法を設定するには**

1. **sudo vim /usr/local/bin/update-input-method.sh** コマンドを実行してスクリプトを作成します。スクリプトに次のコンテンツを追加します。

   ```
   #!/bin/bash
   
   function start_process()
   {
       command=$1
       process_name=$2
   
       process_count=$(pgrep $process_name -c)
       echo "$(date) current $process_name count: $process_count"
       while [ $process_count -lt 1 ]
       do
           echo "$(date) starting $process_name"
           eval $command
           sleep 1
           process_count=$(pgrep $process_name -c)
       done
       echo "$(date) $process_name started"
   }
   
   start_process "ibus-daemon --xim &" "ibus-daemon"
   start_process "/usr/libexec/ibus-engine-kkc --ibus &" "ibus-engine-kkc"
   
   gsettings set org.gnome.desktop.input-sources sources "[('ibus','kkc'), ('xkb', 'us')]"
   gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Control>space']"
   gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['<Shift><Control>space']"
   
   echo "$(date) updated input source and switch shortcut"
   ```

   上記のスクリプトでは、最初の入力ソース ('ibus', 'kkc') がデフォルトの入力方法です。デフォルトの入力方法を変更するには、入力ソースの順序を変更します。また、入力方法を切り替えるためのショートカットキーの組み合わせとして、Control \$1 Space と Shift \$1 Control \$1 Space が指定されています。ユーザーがストリーミングセッション中に入力方法を切り替えるために使用できる、独自のキーの組み合わせを指定できます。

1. イメージに追加するアプリケーション (Firefox) を起動するためのスクリプトを作成します。これを行うには、コマンド を実行し**sudo vim /usr/local/bin/firefox-jp.sh**、スクリプトに次のコンテンツを追加します。

   ```
   #!/bin/bash
   
   # Gather required environment variables from the GNOME shell session
   while IFS= read -r -d $'\0' env_var; do
       case "$env_var" in
           DBUS_SESSION_BUS_ADDRESS=*|\
           GTK_IM_MODULE=*|\
           QT_IM_MODULE=*|\
           XMODIFIERS=*|\
           XAUTHORITY=*)
               echo "$env_var"
               export "$env_var"
               ;;
       esac
   done < "/proc/$(pgrep -u as2-streaming-user gnome-shell | head -n1)/environ"
   
   /usr/local/bin/update-input-method.sh > /var/tmp/update-input-method.log 2>&1 &
   
   /usr/local/firefox/firefox &
   ```

1. 次のコマンドを実行して、両方のスクリプトに実行許可を追加します。

   **sudo chmod \$1x /usr/local/bin/update-input-method.sh**

   **sudo chmod \$1x /usr/local/bin/firefox-jp.sh**

1. アプリケーションの最適化マニフェストファイルを既に作成している場合は、次のコマンドを実行して、アプリケーション起動スクリプトをアプリケーションカタログに追加します。

   ```
   sudo AppStreamImageAssistant add-application \
   --name firefox \
   --absolute-app-path /usr/local/bin/firefox-jp.sh \
   --display-name firefox \
   --absolute-icon-path /usr/local/firefox/browser/chrome/icons/default/default128.png \
   --absolute-manifest-path /tmp/firefox-manifest.txt
   ```

または、update-input-method.sh スクリプトをイメージのアプリケーションカタログに別のアプリケーションとして追加して、入力方法を設定することもできます。ストリーミングセッション中、ユーザーはこのアプリケーションを起動して日本語入力を有効にし、同じセッション内で指定したショートカットキーを使用して入力方法を切り替えることができます。

## ステップ 5: キーボードレイアウトを設定する
<a name="tutorial-japense-keyboard"></a>

ストリーミングセッション中にユーザーが使用するキーボードに合わせてキーボードレイアウトを設定します。**localectl list-keymaps** コマンドを使用して、使用可能なすべてのキーマップを一覧表示し、**sudo localectl set-keymap jp106** コマンドを使用して、106 キーなどの日本語キーボードにキーマップを設定できます。

## ステップ 6: Image Builder で検証を行う
<a name="tutorial-japense-verify"></a>

Image Builder で検証を行うには、最初に **sudo shutdown -r now** コマンドを実行して Image Builder を再起動します。再起動後、Image Builder に再度接続し、タイムゾーン、ロケール、言語、入力方法などのすべてが想定どおりに機能することを確認します。

## ステップ 7: イメージを作成する
<a name="tutorial-japanese-create"></a>

Image Builder にイメージを作成します。詳細については、「[チュートリアル: Linux ベースのカスタム WorkSpaces アプリケーションイメージを作成する](tutorial-create-linux-image.md)」を参照してください。必ず、先ほど指定したリージョン設定を含む、デフォルトのアプリケーション設定を作成します。詳細については、[Linux ベースのイメージを作成する](create-linux-based-images.md)の「ユーザー用のデフォルトアプリケーション設定の作成」を参照してください。

このイメージから作成されたすべての Linux フリートインスタンスは、イメージに対して設定したデフォルトのタイムゾーン、ロケール、言語、および入力方法の設定と同じになります。