

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

# 사용자 지정 앱 블록
<a name="custom-app-blocks"></a>

Elastic 플릿 스트리밍 인스턴스는 계정의 Amazon S3 버킷 내에 저장된 가상 하드 디스크(VHD) 파일에 설치된 애플리케이션을 활용합니다. 사용자 지정 패키징이 포함된 앱 블록을 사용하면 유연하게 자체 VHD 파일을 만들고 계정 내 Amazon S3 버킷에 업로드할 수 있습니다.

**Topics**
+ [

# VPC 생성
](create-vhd.md)
+ [

# Amazon WorkSpaces 애플리케이션에서 VHD용 설정 스크립트 생성
](create-setup-script.md)
+ [

# 사용자 지정 앱 블록 생성
](create-app-block.md)
+ [

# 앱 블록, VHD 및 설정 스크립트 업데이트
](update-app-block.md)

# VPC 생성
<a name="create-vhd"></a>

VHD는 운영 체제에 마운트될 때 하드 디스크처럼 취급되는 단일 파일입니다. VHD는 드라이브 문자나 폴더 경로 또는 둘 다로 마운트할 수 있습니다. VHD를 마운트하면 애플리케이션을 설치하거나 사용자가 필요로 하는 파일을 VHD에 복사하는 등 다른 하드 디스크와 마찬가지로 VHD를 처리할 수 있습니다.

앱 블록을 만들려면 VHD를 만들고 VHD에 애플리케이션을 설치한 다음 분리해야 합니다. 분리되면 다른 PC, EC2 인스턴스 또는 WorkSpaces 애플리케이션 이미지 빌더에서 VHD를 테스트하여 애플리케이션이 예상대로 작동하는지 확인할 수 있습니다. 완료되면 계정의 Amazon S3 버킷에 업로드하고 앱 블록을 생성합니다.

**참고**  
이 페이지에서는 VHD를 사용하여 애플리케이션을 전달하는 방법을 설명합니다. 하지만 WorkSpaces 애플리케이션 스트리밍 인스턴스는 Amazon S3에서 모든 객체를 다운로드합니다. Amazon S3에 저장하는 객체는 zip 파일, 애플리케이션 설치 프로그램 또는 애플리케이션 실행 파일일 수도 있습니다. 설정 스크립트를 사용하여 사용자가 애플리케이션을 시작하기 전에 스트리밍 인스턴스에서 이를 올바르게 구성할 수 있습니다.  
WorkSpaces 애플리케이션 스트리밍 인스턴스는 설정 스크립트가 실행되기 전에 VHD가 다운로드를 완료할 때까지 최대 120초까지 기다립니다. 이 시간 내에 VHD가 다운로드를 완료하지 못하면 다운로드가 중단되고 설정 스크립트가 실행되지 않습니다.  
VHD의 최대 크기는 1.5GB로 설정하는 것이 좋습니다. 압축하여 VHD 크기를 줄일 수 있습니다. 파일을 마운트하고 애플리케이션을 실행하려면 먼저 Amazon S3에서 파일을 완전히 다운로드해야 하므로 마운트하기 전에 설정 스크립트를 사용하여 압축을 풀어야 합니다. VHD가 클수록 애플리케이션을 시작하고 스트리밍 세션을 시작하는 데 걸리는 시간이 늘어납니다.

**Microsoft Windows용 VHD를 생성하는 방법**

1. Windows PC 또는 Windows Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 관리자 권한으로 명령 프롬프트를 엽니다.

1. 다음 명령을 입력하여 Microsoft **diskpart** 유틸리티를 실행합니다.

   **diskpart**

1. 다음 명령을 입력하여 포맷되지 않고 초기화되지 않은 VHD 파일을 만듭니다. 여기서 *<maximum file size>*는 VHD 파일의 크기(MB 입니다.

   **create vdisk file=C:\$1path\$1to\$1new\$1file.vhdx maximum=*<maximum file size>* type=expandable **

1. 다음 명령을 입력하여 새로 생성한 VHD를 선택합니다.

   **select vdisk file=C:\$1path\$1to\$1new\$1file.vhdx**

1. 다음 명령을 입력하여 새로 생성한 VHD를 연결합니다.

   **attach vdisk**

1. 다음 명령을 입력하여 새로 생성한 VHD를 초기화합니다.

   **convert mbr**

1. 다음 명령을 입력하여 VHD 전체에 걸친 기본 파티션을 생성합니다.

   **create partition primary**

1. 다음 명령을 입력하여 새로 생성한 파티션을 포맷합니다.

   **format fs=ntfs quick**

1. 새로 생성한 VHD를 사용하지 않는 드라이브 문자나 루트 볼륨의 폴더 경로 또는 둘 다에 마운트할 수 있습니다.

   드라이브 문자를 마운트하려면 **assign letter=*<unused drive letter>***를 입력합니다.

   폴더를 마운트하려면 **assign mount=*C:\$1path\$1to\$1empty\$1folder\$1to\$1mount\$1***를 입력합니다.
**참고**  
폴더 경로에 마운트하려면 폴더가 이미 존재하고 비어 있어야 합니다.

1. 이제 9단계에서 선택한 드라이브 문자나 폴더 마운트 경로를 사용하여 애플리케이션을 VHD에 설치할 수 있습니다.

VHD에 애플리케이션 설치를 완료한 후에는 애플리케이션을 분리해야 Amazon S3 버킷에 안전하게 업로드할 수 있습니다.

**Microsoft Windows용 VHD를 분리하는 방법**

1. 다음 명령을 입력하여 Microsoft diskpart 유틸리티를 실행합니다.

   **diskpart**

1. 다음 명령을 입력하여 VHD를 선택합니다.

   **select vdisk file=*C:\$1path\$1to\$1new\$1file.vhdx***

1. 다음 명령을 입력하여 VHD를 분리합니다.

   **detach vdisk**

1. 이제 VHD가 분리되었으며 다른 Windows PC, Amazon EC2 인스턴스 또는 WorkSpaces 애플리케이션 이미지 빌더에서 테스트할 수 있습니다.

**Linux용 VHD를 생성하는 방법**

1. 터미널을 엽니다.
   + Amazon Linux 2의 경우: Amazon Linux 2로 구동되는 EC2 인스턴스, WorkSpaces 애플리케이션 이미지 빌더 또는 WorkSpaces 사용
   + Ubuntu Pro 24.04 LTS의 경우: EC2 인스턴스 또는 Ubuntu Pro로 구동되는 WorkSpaces 사용

1. 포맷되지 않고 초기화되지 않은 VHD 파일을 생성합니다.

   **dd if=/dev/zero of=*<name of file>* bs=*<size of VHD>* count=1**

1. 다음 명령을 입력하여 생성한 VHD에 파일 시스템을 추가합니다.

   **sudo mkfs -t ext4 *<name of file>***
**참고**  
파일이 블록 특수 디바이스가 아니라는 메시지가 표시될 수 있습니다. 무시하고 계속 진행하면 됩니다.

1. 다음 명령을 입력하여 마운트 포인트로 사용할 빈 폴더를 생성합니다.

   **sudo mkdir */path/to/mount/point***

1. 다음 명령을 실행하여 새로 생성한 VHD를 파일 시스템 경로에 마운트합니다.

   **sudo mount -t auto -o loop *<name of file>* */path/to/mount/point***

1. 이제 4단계에서 선택한 폴더 마운트 경로를 사용하여 애플리케이션을 VHD에 설치할 수 있습니다.
**참고**  
VHD에서 만든 파일 및 폴더에 대한 기본 권한은 관리자가 아닌 사용자가 애플리케이션을 실행하거나 파일을 읽지 못하게 할 수 있습니다. 권한을 확인하고 필요한 경우 변경하세요.

VHD에 애플리케이션 설치를 완료한 후에는 애플리케이션을 분리해야 Amazon S3 버킷에 안전하게 업로드할 수 있습니다.

**Linux용 VHD를 분리하는 방법**

1. 터미널 세션을 열고 다음 명령을 입력합니다.

   **sudo umount */path/to/mount/point***

1. 이제 VHD가 분리되었으며 다른 Amazon Linux 2/Ubuntu Pro 24.04 LTS Amazon EC2 인스턴스, Amazon Linux 2 WorkSpaces 애플리케이션 이미지 빌더 또는 Amazon Linux 2/Ubuntu WorkSpaces Personal에서 테스트할 수 있습니다.

# Amazon WorkSpaces 애플리케이션에서 VHD용 설정 스크립트 생성
<a name="create-setup-script"></a>

WorkSpaces 애플리케이션은 애플리케이션이 시작되기 전에 사용자가 제공하는 설정 스크립트를 사용하여 VHD를 탑재합니다. 또한 설정 스크립트를 사용하여 애플리케이션이 작동하는 데 필요한 다른 작업을 완료할 수 있습니다. 예를 들어 설정 스크립트에서 레지스트리 키를 구성하거나, DLL을 등록하거나, 사전 조건을 관리하거나, 사용자 프로필을 수정할 수 있습니다. WorkSpaces 애플리케이션은 VHD를 탑재하는 데 사용할 수 있는 스크립트 예제를 제공합니다. VHD 및 애플리케이션 요구 사항에 맞게 이러한 스크립트를 수정해야 합니다.

**참고**  
WorkSpaces 애플리케이션 패키징이 있는 앱 블록에는 설정 스크립트가 필요하지 않습니다. 하지만 원한다면 설정 후 스크립트를 제공하여 애플리케이션 설치를 사용자 지정할 수 있습니다.

다음 링크를 사용하여 예시 스크립트를 다운로드하세요.
+ [Ubuntu Pro 24.04 LTS 및 Amazon Linux 2 bash 스크립트](samples/Linux-mount-vhd-script2.zip)
+ [Microsoft Windows Powershell 스크립트](samples/Windows-mount-vhd-script3.zip)
**참고**  
WorkSpaces 애플리케이션 및 Microsoft Windows 운영 체제는 드라이브 문자 A\$1E를 예약합니다. VHDs 또는 네트워크 공유를 이러한 드라이브 문자에 탑재하지 마십시오.

WorkSpaces 애플리케이션은 설정 스크립트와 VHD를 플릿 스트리밍 인스턴스의 디렉터리에 다운로드한 다음 설정 스크립트를 실행합니다. 설정 스크립트는 전체 관리자 권한이 있는 운영 체제에서 실행됩니다. 설정 스크립트는 Microsoft Windows의 `SYSTEM` 컨텍스트와 Amazon Linux 2 또는 Ubuntu Pro 24.04 LTS의 `root` 사용자로 실행됩니다.

VHD 및 설정 스크립트의 파일 시스템 위치:
+ Ubuntu Pro 24.04 LTS: 

  `/opt/appstream/AppBlocks/appblock-name/`  
**`appblock-name` **  
VHD 및 설정 스크립트가 해당하는 앱 블록의 이름입니다.
+ Amazon Linux 2: 

  `/opt/appstream/AppBlocks/appblock-name/`  
**`appblock-name` **  
VHD 및 설정 스크립트가 해당하는 앱 블록의 이름입니다.
+ Microsoft Windows:

  `C:\AppStream\AppBlocks\appblock-name\`  
**`appblock-name` **  
VHD 및 설정 스크립트가 해당하는 앱 블록의 이름입니다.

WorkSpaces 애플리케이션은 객체에 있는 파일 이름을 그대로 유지합니다. 예를 들어 앱 블록 이름이 `MyApps`이고 VHD 이름이 `apps.vhd`이며 설정 스크립트 이름이 `mount-apps.ps1`인 경우 Windows 스트리밍 인스턴스의 전체 경로는 다음과 같습니다.
+ VHD

  `C:\AppStream\AppBlocks\MyApps\apps.vhd`
+ 설정 스크립트

  `C:\AppStream\AppBlocks\MyApps\mount-apps.ps1`

WorkSpaces 애플리케이션은 플릿 스트리밍 인스턴스에서 실행될 때 설정 스크립트에서 표준 오류와 표준 출력을 캡처하고 계정 내 Amazon S3 버킷에 출력을 업로드합니다. 이러한 로그를 사용하여 설정 스크립트와 관련한 문제를 식별하고 해결할 수 있습니다. 버킷의 이름은 다음과 같은 특정 형식으로 지정됩니다.

```
appstream-logs-region-code-account-id-without-hyphens-random-identifier
```

**`region-code` **  
탄력적 플릿이 생성되는 AWS 리전 코드입니다.

**`account-id-without-hyphens` **  
 AWS 계정 식별자입니다. 임의의 ID를 통해 해당 리전의 다른 버킷과 충돌이 없도록 보장합니다. 버킷 이름의 첫 번째 부분인 appstream-logs는 계정이나 리전 간에 변경되지 않습니다.

예를 들어 계정 번호 123456789012의 미국 서부(오레곤) 리전(us-west-2)에서 탄력적 플릿을 생성하는 경우 WorkSpaces 애플리케이션은 표시된 이름으로 해당 리전의 계정 내에 Amazon S3 버킷을 생성합니다. 충분한 권한이 있는 관리자만 이 버킷을 삭제할 수 있습니다.

```
appstream-logs-us-west-2-1234567890123-abcdefg
```

계정 내 S3 버킷에 로그 파일이 저장되는 폴더의 경로는 다음 구조를 사용합니다.

```
bucket-name/fleet-name/instance-id/appblock-name/
```

**`bucket-name` **  
설정 스크립트 로그가 저장되는 Amazon S3 버킷의 이름입니다. 이름 형식은 본 섹션의 앞부분에서 설명했습니다.

**`Instance-id` **  
설정 스크립트가 실행된 스트리밍 인스턴스의 고유 식별자입니다.

**`appblock-name` **  
설정 스크립트가 해당하는 앱 블록의 이름입니다.

다음 폴더 구조 예는 `test-fleet`에서 시작된 스트리밍 세션에 적용됩니다. 세션은 AWS 계정 ID가 123456789012이고 앱 블록 이름은 미국 서부(오레곤) 리전(us-west-2)의 testappblock입니다.

`appstream-logs-us-west-2-1234567890123-abcdefg/test-fleet/i-084427ab4a1cff7f5/testappblock/`

이 예시 폴더 구조에는 표준 출력에 대한 로그 파일 1개와 표준 오류에 대한 로그 파일 1개가 포함되어 있습니다.

**Topics**
+ [

# Amazon WorkSpaces 애플리케이션에서 앱 블록 설정 스크립트 실행
](script-execution.md)

# Amazon WorkSpaces 애플리케이션에서 앱 블록 설정 스크립트 실행
<a name="script-execution"></a>

다음 다이어그램은 프로세스에서 설정 스크립트가 실행되는 위치를 나타냅니다. 실행 순서는 Elastic 플릿과 연결된 스택에서 애플리케이션 설정 지속성이 활성화되었는지에 따라 달라집니다.

**참고**  
WorkSpaces 애플리케이션은 VPC 세부 정보를 사용하여 Amazon S3 버킷에서 VHD 및 설정 스크립트를 다운로드합니다. VPC는 Amazon S3 버킷에 대한 액세스 권한을 부여해야 합니다. 자세한 내용은 [WorkSpaces 애플리케이션에 Amazon S3 VPC 엔드포인트 사용 기능](managing-network-vpce-iam-policy.md) 단원을 참조하십시오.

애플리케이션 설정 지속성이 활성화됨:

![\[애플리케이션 설정 지속성이 활성화됨되었습니다.\]](http://docs.aws.amazon.com/ko_kr/appstream2/latest/developerguide/images/app-settings-enabled.png)


애플리케이션 설정 지속성이 비활성화됨:

![\[애플리케이션 설정 지속성이 비활성화되었습니다.\]](http://docs.aws.amazon.com/ko_kr/appstream2/latest/developerguide/images/app-settings-disabled.png)


# 사용자 지정 앱 블록 생성
<a name="create-app-block"></a>

VHD 및 설정 스크립트가 생성되어의 S3 버킷에 업로드되면 WorkSpaces 애플리케이션 콘솔을 사용하여 앱 블록 리소스를 생성할 수 있습니다 AWS 계정. Amazon S3 버킷에 VHD 및 설정 스크립트를 저장하는 방법에 대한 자세한 내용은 [애플리케이션 아이콘, 설정 스크립트, 세션 스크립트 및 VHD를 S3 버킷에 저장](store-s3-bucket.md) 섹션을 참조하세요.

**참고**  
앱 블록 리소스를 생성하기 위해 Amazon S3 버킷에서 VHD에 `S3:GetObject` 작업을 실행하고 스크립트 객체를 설정하려면 IAM 권한이 있어야 합니다.

**앱 블록 리소스를 생성하는 방법**

1. [https://console.aws.amazon.com/appstream2](https://console.aws.amazon.com/appstream2) WorkSpaces 애플리케이션 콘솔을 엽니다.

1. 왼쪽 탐색 메뉴에서 **애플리케이션**, **앱 블록**, **앱 블록 생성**을 선택합니다.

1. 앱 블록 패키징의 경우 **사용자 지정**을 선택합니다.

1. **앱 블록 세부 정보**에는 앱 블록의 고유한 이름 식별자를 입력합니다. 선택적으로 다음을 지정할 수도 있습니다.
   + **표시 이름** - 앱 블록의 기억하기 쉬운 이름입니다.
   + **설명** - 앱 블록에 대한 설명입니다.

1. **스크립트 설정**에서 **S3의 가상 하드 디스크 객체**의 경우 VHD 객체를 나타내는 S3 URI를 입력하거나, **S3 찾아보기**를 선택하여 S3 버킷으로 이동한 후 VHD 객체를 찾습니다.

1. **스크립트 설정**에서 **S3의 설정 스크립트 객체**의 경우 설정 스크립트 객체를 나타내는 S3 URI를 입력하거나 **S3 찾아보기**를 선택하여 S3 버킷으로 이동한 후 설정 스크립트 객체를 찾습니다.

1. **스크립트 설정**에서 **설정 스크립트 실행 파일**의 경우 설정 스크립트에 필요한 실행 파일을 입력합니다.
**참고**  
설정 스크립트를 직접 실행할 수 있는 경우 설정 스크립트의 파일 이름을 입력합니다. 설정 스크립트가 다른 실행 파일(예: Microsoft PowerShell)을 사용하여 실행하는 경우 해당 실행 파일의 경로를 입력합니다.  
Microsoft Windows에서 Microsoft PowerShell로의 경로:  
`C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe`

1. 선택적으로 **스크립트 설정**에서 **설정 스크립트 실행 파일 인수**의 경우 설정 스크립트를 실행하기 위해 설정 스크립트 실행 파일에 제공해야 하는 인수를 입력합니다.
**참고**  
Microsoft PowerShell 스크립트를 사용하는 경우 설정 스크립트 이름과 함께 '-File' 파라미터를 실행 파일 인수로 지정해야 합니다. 또한 실행 정책에서 스크립트 실행을 허용하는지 확인하세요. 자세한 내용은 [about\$1Execution\$1Policies](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.2) 및 [What is PowerShell?](https://docs.microsoft.com/en-us/powershell/scripting/overview?view=powershell-7.2)을 참조하세요.

1. **스크립트 설정**에서 **실행 시간(초)**에 설정 스크립트의 제한 시간을 입력합니다.
**참고**  
초 단위의 실행 기간은 WorkSpaces 애플리케이션이 계속하기 전에 설정 스크립트가 실행될 때까지 대기하는 시간입니다. 이 시간 내에 설정 스크립트가 완료되지 않으면 사용자에게 오류가 표시되고 애플리케이션이 시작을 시도합니다. 실행 시간이 경과하면 설정 스크립트가 종료됩니다.

1. (선택 사항) **태그**에서 앱 블록 리소스의 태그를 생성합니다.

1. 입력한 정보를 검토한 후 **생성**을 선택합니다.

1. 앱 블록이 성공적으로 생성되면 콘솔 상단에 성공 메시지가 표시됩니다. 오류가 발생한 경우 설명이 포함된 오류 메시지가 표시되며 앱 블록을 다시 생성해야 합니다.

# 앱 블록, VHD 및 설정 스크립트 업데이트
<a name="update-app-block"></a>

앱 블록 리소스는 변경 불가능하므로 생성된 후에는 변경할 수 없습니다. VHD 또는 설정 스크립트를 이전 버전과 호환되도록 업데이트해야 하는 경우, 파일의 새 버전을 Amazon S3 버킷에 업로드하여 현재 버전을 덮어쓰는 것이 좋습니다. 새로운 Elastic 플릿 스트리밍 세션은 최신 버전의 객체를 다운로드하여 사용합니다.

VHD 또는 설정 스크립트를 이전 버전과 호환되지 않게 업데이트해야 하는 경우, Amazon S3 버킷에 새 객체로 업로드하고 새로운 앱 블록 및 애플리케이션 리소스를 생성하는 것이 좋습니다. 그런 다음 변경 기간이나 기타 운영 중단의 일환으로 사용자에 대한 배포를 관리할 수 있습니다.