

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Linux 기반 이미지 만들기
<a name="create-linux-based-images"></a>

Linux 이미지 빌더에 연결하고, 필요한 애플리케이션을 설치하고, 기본 애플리케이션 설정 및 환경 변수를 생성하고, 명령줄 인터페이스(CLI) 도구 또는 Image Assistant(GUI) 도구를 사용하여 이러한 애플리케이션을 애플리케이션 카탈로그에 추가하여 Linux 기반 Amazon WorkSpaces 애플리케이션 이미지를 생성할 수 있습니다. 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단계: 이미지 빌더에 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단계: 이미지 빌더에 Linux 애플리케이션 설치
<a name="app-settings-image-install"></a>

이 단계에서는 Linux 이미지 빌더에 연결하고 이미지 빌더에 애플리케이션을 설치합니다.

**이미지 빌더에 애플리케이션을 설치하려면**

1. 다음 중 하나를 수행하여 이미지 빌더에 연결합니다.
   + [WorkSpaces 애플리케이션 콘솔 사용](managing-image-builders-connect-console.md)(웹 연결에만 해당)
   + [스트리밍 URL 생성](managing-image-builders-connect-streaming-URL.md)(웹 또는 WorkSpaces 애플리케이션 클라이언트 연결용)
**참고**  
Amazon Linux GNOME 데스크톱에 ImageBuilderAdmin 사용자로 로그인하고 루트 관리자 권한을 갖게 됩니다.

1. 필요한 애플리케이션을 설치합니다. 예를 들어 퍼블릭 yum 리포지토리에서 Chromium 브라우저를 설치하려면 먼저 터미널 애플리케이션을 열고 다음 명령을 실행합니다.

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

## 2단계: TemplateUser 계정 생성
<a name="app-settings-template-user"></a>

이 단계에서는 스트리밍 사용자를 위한 기본 애플리케이션 설정을 생성하는 TemplateUser 계정을 생성합니다.

**TemplateUser 계정을 만드는 방법**

1. 루트 권한이 없는 TemplateUser 계정을 생성합니다. 예를 들어 터미널 창에서 다음 명령을 실행하여 이미지 빌더에서 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 애플리케이션 사용자를 위한 기본 애플리케이션 설정을 생성합니다. 이렇게 하면 사용자가 WorkSpaces 애플리케이션 스트리밍 세션 중에 이러한 설정을 직접 생성하거나 구성할 필요 없이 애플리케이션을 빠르게 시작할 수 있습니다.

**사용자의 기본 애플리케이션 설정을 만드는 방법**

1. 기본 설정을 만들려는 애플리케이션을 시작합니다. 예를 들어 터미널 창에서 다음 명령을 실행하여 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>

이 단계에서는 추가한 애플리케이션이 제대로 실행되고 기본 애플리케이션 설정이 예상대로 작동하는지 확인합니다.

**이미지 빌더에서 애플리케이션 및 기본 설정을 테스트하는 방법**

1. 루트 권한이 없는 테스트 사용자를 만듭니다. 예를 들어 **터미널** 창에서 다음 명령을 실행하여 이미지 빌더에서 **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 이미지 빌더 인스턴스에서 환경 변수를 생성할 수 있습니다. 환경 변수를 만들면 해당 이미지로 만든 스트리밍 인스턴스에서 환경 변수를 사용할 수 있습니다.

**참고**  
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 이미지 빌더의 터미널에서 다음 명령을 실행합니다.

   **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 Assistant CLI 도구 **AppStreamImageAssistant**를 사용하여 WorkSpaces 애플리케이션 이미지를 생성하고 관리할 수 있습니다. 도구는 `/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 애플리케이션은 로컬 웹캠 비디오 입력을 WorkSpaces 애플리케이션 스트리밍 세션으로 리디렉션하여 실시간 오디오-비디오(AV)를 지원합니다. 이 기능을 사용하면 사용자가 WorkSpaces 애플리케이션 스트리밍 세션 내에서 비디오 및 오디오 회의에 로컬 웹캠을 사용할 수 있습니다. 실시간 AV 및 실시간 오디오 지원을 통해 사용자는 WorkSpaces 애플리케이션 스트리밍 세션을 종료하지 않고도 익숙한 비디오 및 오디오 회의 애플리케이션을 사용하여 협업할 수 있습니다.

이 기능을 사용하려면 2022년 9월 21일 이후에 릴리스된 Linux WorkSpaces 애플리케이션 에이전트를 사용하는 Linux WorkSpaces 애플리케이션 이미지를 사용해야 합니다.

**참고**  
Rocky Linux 또는 Red Hat Enterprise Linux로 구동되는 stream.standard.small 인스턴스에는 실시간 AV가 지원되지 않습니다. 따라서 클라이언트 도구 모음에 카메라 및 마이크 아이콘이 표시되지 않습니다.

Linux 스트리밍 세션에서는 실시간 AV 기능이 기본적으로 활성화됩니다. Linux 이미지 빌더에서 사용자의 웹캠 권한을 구성하려면 `/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** 구성 옵션을 켤 수 있습니다. WorkSpaces 이 옵션을 켜면 홈 폴더 파일 동기화 프로세스가 약간 지연될 수 있지만 Amazon S3에 대한 모든 동기화의 완전성이 보장됩니다.

이 기능은 2024년 9월 12일 또는 그 이후에 릴리스된 Linux WorkSpaces 애플리케이션 에이전트를 사용하는 모든 Red Hat Enterprise Linux 이미지 및 Linux WorkSpaces 애플리케이션 이미지에서 사용할 수 있습니다.

헤비 동기화 기능은 기본적으로 Red Hat Enterprise Linux 및 Amazon Linux 스트리밍 세션에 대해 비활성화되어 있습니다. Red Hat Enterprise Linux or Amazon Linux 이미지 빌더에서 사용자의 헤비 동기화 권한을 구성하려면 `/etc/appstream/appstream.conf`를 생성하고 다음 내용을 추가합니다.

**참고**  
헤비 동기화를 활성화하려면 **1**을 지정하고, 헤비 동기화를 비활성화하려면 **0**을 지정합니다.

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

# 자습서: 사용자 지정 Linux 기반 WorkSpaces 애플리케이션 이미지 생성
<a name="tutorial-create-linux-image"></a>

이 자습서에서는 사용자에게 스트리밍할 수 있는 애플리케이션이 포함된 사용자 지정 Linux 기반 Amazon WorkSpaces 애플리케이션 이미지를 생성하는 방법을 설명합니다.

**중요**  
이미지 빌더에서 "as2-streaming-user"라는 사용자를 생성하지 마세요. 플릿에 예약된 사용자 이름입니다. WorkSpaces 애플리케이션 워크플로 외부에서이 사용자 이름을 생성하면 플릿에서 스트리밍 문제가 발생할 수 있습니다.

**Topics**
+ [1단계: 이미지 빌더에 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단계: 이미지 빌더에 Linux 애플리케이션 설치
<a name="tutorial-linux-image-install"></a>

이 단계에서는 Linux 이미지 빌더에 연결하고 이미지 빌더에 애플리케이션을 설치합니다.

**이미지 빌더에 애플리케이션을 설치하려면**

1. 다음 중 하나를 수행하여 이미지 빌더에 연결합니다.
   + [WorkSpaces 애플리케이션 콘솔 사용](managing-image-builders-connect-console.md)(웹 연결에만 해당)
   + [스트리밍 URL 생성](managing-image-builders-connect-streaming-URL.md)(웹 또는 WorkSpaces 애플리케이션 클라이언트 연결용)
**참고**  
Amazon Linux GNOME 데스크톱에 ImageBuilderAdmin 사용자로 로그인하고 루트 관리자 권한을 갖게 됩니다.

1. 필요한 애플리케이션을 설치합니다. 예를 들어 퍼블릭 yum 리포지토리에서 Chromium 브라우저를 설치하려면 먼저 터미널 애플리케이션을 열고 다음 명령을 실행합니다.

   **[ImageBuilderAdmin]\$1 sudo yum update && sudo yum install chromium.x86\$164** 
**참고**  
신뢰할 수 있는 사이트에서만 애플리케이션을 다운로드하여 설치합니다.

## 2단계: 애플리케이션 최적화 매니페스트 파일 생성
<a name="tutorial-linux-image-manifest"></a>

이 단계에서는 1단계에서 설치한 각 애플리케이션에 대한 매니페스트 파일을 생성합니다.

**애플리케이션의 실행 성능을 최적화하기 위한 매니페스트 파일을 생성하는 방법**

1. 최적화하려는 애플리케이션(예: Chromium)이 시작되어 실행 중인지 확인합니다.

1. 터미널 창에서 다음 명령을 실행하여 애플리케이션과 관련된 프로세스를 나열합니다.

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

이 단계에서는 이미지 빌더`AppStreamImageAssistant`의 CLI 도구를 사용하여 이미지에 대한 애플리케이션을 지정하여 WorkSpaces 애플리케이션 카탈로그를 생성합니다. 스트리밍하려는 각 애플리케이션에 대해 이름, 표시 이름, 시작할 실행 파일, 표시할 아이콘을 지정할 수 있습니다.

**WorkSpaces 애플리케이션 애플리케이션 카탈로그를 생성하려면**

1. 이미지 빌더 데스크톱에서 사이드 패널로부터 또는 앱 그리드를 열어 **터미널**을 엽니다.

1. **AppStreamImageAssistant --help**를 실행하여 사용 가능한 명령 목록을 확인합니다. 이 명령을 사용하여 애플리케이션을 추가하고 이미지를 생성합니다.

1. 다음 명령을 실행하여 WorkSpaces 애플리케이션 사용자의 애플리케이션 목록에 설치된 애플리케이션(예: Chromium)을 추가합니다.

   ```
   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 애플리케이션 사용자를 위한 기본 애플리케이션 설정 및 환경 변수를 생성합니다. 이렇게 하면 사용자가 WorkSpaces 애플리케이션 스트리밍 세션 중에 이러한 설정을 직접 생성하거나 구성할 필요 없이 애플리케이션을 빠르게 시작할 수 있습니다.

**사용자를 위한 기본 애플리케이션 및 환경 변수를 생성하는 방법**

1. 기본 설정을 만들려는 애플리케이션을 시작합니다. 예를 들어 터미널 창에서 다음 명령을 실행하여 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>

이 단계에서는 추가한 애플리케이션이 제대로 실행되고 기본 애플리케이션 설정과 환경 변수가 예상대로 작동하는지 확인합니다.

**이미지 빌더에서 애플리케이션 및 기본 설정을 테스트하는 방법**

1. 루트 권한이 없는 테스트 사용자를 만듭니다. 예를 들어 **터미널** 창에서 다음 명령을 실행하여 이미지 빌더에서 **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***

   이 명령은 ***BAR*** 터미널에 출력을 표시합니다.

1. 이 이미지 빌더에서 이미지를 생성하기 전에 다음 명령을 실행하여 테스트 사용자를 삭제합니다.

   **\$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. **터미널** 창에서 **AppStreamImageAssistant create-image**를 실행하여 이미지를 생성합니다. 이 이미지에는 설치 및 등록된 애플리케이션, 구성한 모든 세션 스크립트 및 기본 애플리케이션 설정이 들어 있습니다.

   사용 가능한 명령 목록을 확인하려면 **AppStreamImageAssistant create-image --help**를 실행합니다. 자세한 내용은 [Image Assistant CLI 작업을 사용하여 프로그래밍 방식으로 Amazon WorkSpaces 애플리케이션 이미지 생성](programmatically-create-image.md)의 **create-image**를 참조하세요.

1. 원격 세션이 잠시 후 연결 해제됩니다. **Lost Connectivity(연결 끊김)** 메시지가 표시되면 브라우저 탭을 닫습니다. 이미지가 생성되는 동안 이미지 빌더 상태는 **Snapshotting(스냅샷을 만드는 중)**으로 표시됩니다. 이 프로세스를 완료할 때까지 이미지 빌더에 연결할 수 없습니다.

1. 콘솔로 되돌아가 [**Images**], [**Image Registry**]를 선택합니다. 새 이미지가 목록에 나타나는지 확인합니다.

   이미지가 생성되는 동안 콘솔의 이미지 레지스트리에 있는 이미지 상태는 **Pending(대기 중)**으로 표시됩니다. **보류 중**중 상태인 이미지에는 연결할 수 없습니다.

1. **새로 고침** 아이콘을 선택하여 상태를 업데이트합니다. 이미지가 생성되면 이미지 상태가 **Available(사용 가능)**로 변경되고 이미지 빌더가 자동으로 중지됩니다.

   이미지 만들기를 계속하려면 이미지 빌더를 시작하고 콘솔에서 이미지 빌더에 연결하거나, 새 이미지 빌더를 만듭니다.

## 7단계(선택 사항): 이미지 태그 및 복사
<a name="tutorial-linux-image-tag-copy"></a>

이미지 생성 중에 또는 이미지를 생성한 후 이미지에 태그를 하나 이상 추가할 수 있습니다. 이미지를 동일한 리전 안에서 복사하거나 동일한 Amazon Web Services 계정 안의 새 리전으로 복사할 수도 있습니다. 그러나 소스 이미지를 복사하면 동일하지만 고유한 대상 이미지가 생성됩니다.는 사용자 정의 태그를 복사하지 AWS 않습니다. 그리고 AWS가 제공하는 기본 이미지가 아니라 사용자가 생성하는 사용자 지정 이미지만 복사할 수 있습니다.

**참고**  
동시에 2개의 이미지를 한 대상에 복사할 수 있습니다. 이미지를 복사하려는 대상이 이미지 한계에 도달한 경우, 오류가 발생합니다. 이 경우 이미지를 복사하려면 먼저 그 대상에서 이미지를 삭제해야 합니다. 대상이 이미지 할당량(한도라고도 함)보다 작으면 소스 리전에서 이미지 복사본을 시작합니다. 자세한 내용은 [Amazon WorkSpaces 애플리케이션 Service Quotas](limits.md) 단원을 참조하십시오.

**기존 이미지에 태그를 추가하려면**

1. 탐색 창에서 [**Images**], [**Image Registry**]를 선택합니다.

1. 이미지 목록에서 태그를 추가할 이미지를 선택합니다.

1. **태그**를 선택하고 **태그 추가/편집**을 선택한 후 **태그 추가**를 선택합니다. 태그의 키와 값을 지정한 다음 **저장**을 선택합니다.

자세한 내용은 [Amazon WorkSpaces 애플리케이션 리소스에 태그 지정](tagging-basic.md) 단원을 참조하십시오.

**이미지를 복사하려면**

지리적으로 분산된 리전들에 걸쳐 이미지를 복사하면 동일한 이미지에 기초하여 여러 리전의 애플리케이션들을 스트리밍할 수 있습니다. 사용자와 가까운 곳에서 애플리케이션을 스트리밍하면 WorkSpaces 애플리케이션을 사용하여 애플리케이션을 스트리밍하는 사용자 경험을 개선할 수 있습니다.

1. 탐색 창에서 [**Images**], [**Image Registry**]를 선택합니다.

1. 이미지 목록에서 복사하려는 이미지를 선택합니다.

1. [**Actions**], [**Copy**]를 선택합니다.

1. [**Copy Image**] 대화 상자에서 다음 정보를 지정한 다음 [**Copy Image**]를 선택합니다.
   + [**Destination region**]에서 새 이미지를 복사할 리전을 선택합니다.
   + **Name**에는 그 이미지가 대상에 복사될 때 갖게 될 이름을 지정합니다.
   + **Description**(선택 사항)에는 그 이미지가 대상에 복사될 때 갖게 될 설명 정보를 지정합니다.

1. 복사 작업의 진행률을 확인하려면 콘솔로 돌아가서 [**Images**], [**Image Registry**]로 이동합니다. 탐색 모음을 이용하여 대상 리전으로 전환하고, 이미지 목록에 새 이미지가 나타나는지 확인합니다.

   새 이미지는 처음에 콘솔의 이미지 레지스트리에 **Copying** 상태로 나타납니다. 이미지가 생성된 후에는 이미지 상태가 **사용 가능**으로 바뀝니다. 이 상태가 되면 이제 이미지를 사용하여 스택을 시작하고 애플리케이션을 스트리밍할 수 있습니다.

## 8단계: 정리
<a name="tutorial-linux-image-finish"></a>

마지막으로 이미지 빌더 실행을 중지하여 리소스를 비우고 의도하지 않은 계정 변경을 방지할 수 있습니다. 사용하지 않는 실행 중인 이미지 빌더를 모두 중단하는 것이 좋습니다. 자세한 내용은 [WorkSpaces 애플리케이션 요금을](https://aws.amazon.com/appstream2/pricing/) 참조하세요.

**실행 중인 이미지 빌더를 중단하려면**

1. 탐색 창에서 [**Images**], [**Image Builders**]를 선택하고 실행 중인 이미지 빌더 인스턴스를 선택합니다.

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단계: 이미지 빌더에서 확인](#tutorial-japense-verify)
+ [7단계: 이미지 생성](#tutorial-japanese-create)

## 1단계: 일본어 글꼴 및 입력 방법 설치
<a name="tutorial-japanese-font"></a>

이 단계에서는 Linux 이미지 빌더를 연결하고 원하는 글꼴 및 입력 방법 패키지를 설치합니다.

**일본어 글꼴 및 입력 방법을 설치하는 방법**

1. 다음 중 하나를 수행하여 이미지 빌더에 연결합니다.
   + [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\$1Space'와 'Shift\$1Control\$1Space'가 지정되어 있습니다. 스트리밍 세션 중에 사용자가 입력 방법을 전환하는 데 사용할 수 있는 고유한 키 조합을 지정할 수 있습니다.

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단계: 이미지 빌더에서 확인
<a name="tutorial-japense-verify"></a>

이미지 빌더에서 확인하려면 먼저 **sudo shutdown -r now** 명령을 실행하여 이미지 빌더를 재부팅합니다. 재부팅한 후 이미지 빌더에 다시 연결하고 시간대, 로캘, 언어, 입력 방법 등 모든 항목이 예상대로 작동하는지 확인합니다.

## 7단계: 이미지 생성
<a name="tutorial-japanese-create"></a>

이미지 빌더에서 이미지를 생성합니다. 자세한 내용은 [자습서: 사용자 지정 Linux 기반 WorkSpaces 애플리케이션 이미지 생성](tutorial-create-linux-image.md) 단원을 참조하십시오. 방금 구성한 리전별 설정을 포함하여 기본 애플리케이션 설정을 생성해야 합니다. 자세한 내용은 [Linux 기반 이미지 만들기](create-linux-based-images.md)에서 '사용자를 위한 기본 애플리케이션 설정 만들기'를 참조하세요.

이 이미지에서 생성된 모든 Linux 플릿 인스턴스는 이미지에 구성한 것과 동일한 기본 시간대, 로캘, 언어 및 입력 방법 설정을 갖게 됩니다.