

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

# WorkSpaces Pools의 번들 및 이미지
<a name="pools-images"></a>

*WorkSpaces 번들*은 운영 체제, 스토리지, 컴퓨팅 및 소프트웨어 리소스의 조합입니다. WorkSpaces를 시작할 때 요구 사항을 충족하는 번들을 선택합니다. WorkSpaces에 사용할 수 있는 기본 번들을 *퍼블릭 번들*이라고 합니다. WorkSpaces에 사용할 수 있는 다양한 퍼블릭 번들에 대한 자세한 내용은 [Amazon WorkSpaces 번들](https://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles)을 참조하세요.

Windows WorkSpace를 시작하고 사용자 지정한 경우 WorkSpaces Pools에서 사용할 수 있는 사용자 지정 이미지를 해당 WorkSpace에서 만들 수 있습니다. Linux는 WorkSpaces Pools에서 지원되지 않습니다.

*사용자 지정 이미지*에는 WorkSpace에 대한 OS, 소프트웨어 및 설정만 포함됩니다. WorkSpaces를 실행할 수 있는 하드웨어 및 사용자 지정 이미지가 통합된 것이 *사용자 지정 번들*입니다.

사용자 지정 이미지를 생성한 후, 사용자 지정 WorkSpace 이미지와 선택한 스토리지 구성 및 기본 컴퓨팅을 결합하는 사용자 지정 번들을 빌드할 수 있습니다. 새 WorkSpaces Pools를 만들 때 이 사용자 지정 번들을 지정하면 풀의 새 WorkSpaces가 동일한 일관된 구성(하드웨어 및 소프트웨어)을 갖도록 할 수 있습니다.

WorkSpaces에서 소프트웨어 업데이트를 수행하고 추가 소프트웨어를 설치해야 하는 경우, 사용자 지정 번들을 업데이트하고 이를 사용하여 WorkSpaces를 다시 빌드할 수 있습니다.

WorkSpaces Pools는 여러 가지 운영 체제(OS), 스트리밍 프로토콜 및 번들을 지원합니다. 다음 표에서는 각 OS에서 지원하는 라이선스, 스트리밍 프로토콜 및 번들에 대한 정보를 제공합니다.


| 운영 체제 | 라이선스 | 스트리밍 프로토콜 | 지원되는 번들 | 수명 주기 정책/사용 중지 날짜 | 
| --- | --- | --- | --- | --- | 
| Windows Server 2019 | 포함 | DCV | Value, Standard, Performance, Power, PowerPro | [2029년 1월 9일](https://learn.microsoft.com/en-us/lifecycle/products/windows-server-2019) | 
| Windows Server 2022 | 포함 | DCV | Standard, Performance, Power, PowerPro, Graphics.G4dn, GraphicsPro.G4dn | [2031년 10월 14일](https://learn.microsoft.com/en-us/lifecycle/products/windows-server-2022) | 

**참고**  
공급업체에서 더 이상 지원하지 않는 운영 체제 버전은 작동이 보장되지 않으며 AWS 지원에서 지원되지 않습니다.

**Topics**
+ [WorkSpaces Pools의 번들 옵션](pools-custom-images-bundles.md)
+ [WorkSpaces Pools용 사용자 지정 이미지 및 번들 만들기](pools-images-custom-image.md)
+ [WorkSpaces Pools용 사용자 지정 이미지 및 번들 관리](pools-images-managing.md)
+ [세션 스크립트를 사용하여 사용자의 스트리밍 환경 관리](pools-images-session-scripts.md)

# WorkSpaces Pools의 번들 옵션
<a name="pools-custom-images-bundles"></a>

WorkSpaces Pool과 함께 사용할 번들을 선택하기 전에, 선택하려는 번들이 WorkSpaces의 프로토콜, 운영 체제, 네트워크 및 컴퓨팅 유형과 호환되는지 확인하세요. 사용자의 일상 작업을 복제하는 애플리케이션을 실행하고 사용하여 테스트 환경에서 선택하려는 번들의 성능을 테스트하는 것이 좋습니다. 프로토콜에 대한 자세한 내용은 [WorkSpaces Personal용 프로토콜](amazon-workspaces-networking.md#amazon-workspaces-protocols)를 참조하세요. 네트워크에 대한 자세한 내용은 [WorkSpaces Personal용 클라이언트 네트워크 요구 사항](workspaces-network-requirements.md) 섹션을 참조하세요.

다음 퍼블릭 번들은 WorkSpaces Pools와 함께 사용할 수 있습니다. WorkSpaces의 번들에 대한 자세한 내용은 [Amazon WorkSpaces 번들](https://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles)을 참조하세요. Value, Standard, Performance, Power, PowerPro

## Value 번들
<a name="value"></a>

이 번들은 다음과 같은 경우에 적합합니다.
+ 기본 텍스트 편집 및 데이터 입력
+ 사용량이 적은 웹 브라우징
+ 인스턴트 메시징

이 번들은 워드 프로세싱, 오디오 및 화상 회의, 화면 공유, 소프트웨어 개발 도구, 비즈니스 인텔리전스 애플리케이션, 그래픽 애플리케이션에는 권장되지 않습니다.

## Standard 번들
<a name="standard"></a>

이 번들은 다음과 같은 경우에 적합합니다.
+ 기본 텍스트 편집 및 데이터 입력
+ 웹 브라우징
+ 인스턴트 메시징
+ 이메일

이 번들은 오디오 및 화상 회의, 화면 공유, 워드 프로세싱, 소프트웨어 개발 도구, 비즈니스 인텔리전스 애플리케이션, 그래픽 애플리케이션에는 권장되지 않습니다.

## Performance 번들
<a name="performance"></a>

이 번들은 다음과 같은 경우에 적합합니다.
+ 웹 브라우징
+ 워드 프로세싱
+ 인스턴트 메시징
+ 이메일
+ 스프레드시트
+ 오디오 프로세싱
+ 코스웨어

이 번들은 화상 회의, 화면 공유, 소프트웨어 개발 도구, 비즈니스 인텔리전스 애플리케이션, 그래픽 애플리케이션에는 권장되지 않습니다.

## Power 번들
<a name="power"></a>

이 번들은 다음과 같은 경우에 적합합니다.
+ 웹 브라우징
+ 워드 프로세싱
+ 이메일
+ 인스턴트 메시징
+ 스프레드시트
+ 오디오 프로세싱
+ 소프트웨어 개발(통합 개발 환경(IDE))
+ 초급에서 중급 수준의 데이터 프로세싱
+ 오디오 및 화상 회의

이 번들은 화면 공유, 소프트웨어 개발 도구, 비즈니스 인텔리전스 애플리케이션, 그래픽 애플리케이션에는 권장되지 않습니다.

## PowerPro 번들
<a name="powerpro"></a>

이 번들은 다음과 같은 경우에 적합합니다.
+ 웹 브라우징
+ 워드 프로세싱
+ 이메일
+ 인스턴트 메시징
+ 스프레드시트
+ 오디오 프로세싱
+ 소프트웨어 개발(통합 개발 환경(IDE))
+ 데이터 웨어하우징
+ 비즈니스 인텔리전스 애플리케이션
+ 오디오 및 화상 회의

이 번들은 기계 학습 모델 훈련 및 그래픽 애플리케이션에는 권장되지 않습니다.

## Graphics.g4dn 번들
<a name="graphicsg4dn"></a>

이 번들은 WorkSpaces를 위한 높은 수준의 그래픽 성능과 보통 수준의 CPU 성능 및 메모리를 제공하며 다음과 같은 경우에 적합합니다.
+ 웹 브라우징
+ 워드 프로세싱
+ 이메일
+ 스프레드시트
+ 인스턴트 메시징
+ 오디오 회의
+ 소프트웨어 개발(통합 개발 환경(IDE))
+ 초급에서 중급 수준의 데이터 프로세싱
+ 데이터 웨어하우징
+ 비즈니스 인텔리전스 애플리케이션
+ 그래픽 디자인
+ 컴퓨터 지원 설계/컴퓨터 지원 제조(CAD/CAM)

이 번들은 오디오 및 화상 회의, 3D 렌더링 및 실사 수준의 디자인 및 기계 학습 모델 훈련에는 권장되지 않습니다.

## GraphicsPro.g4dn 번들
<a name="graphicsprog4dn"></a>

이 번들은 WorkSpaces를 위한 높은 수준의 그래픽 성능과 CPU 성능, 메모리를 제공하며 다음과 같은 경우에 적합합니다.
+ 웹 브라우징
+ 워드 프로세싱
+ 이메일
+ 스프레드시트
+ 인스턴트 메시징
+ 오디오 회의
+ 소프트웨어 개발(통합 개발 환경(IDE))
+ 초급에서 중급 수준의 데이터 프로세싱
+ 데이터 웨어하우징
+ 비즈니스 인텔리전스 애플리케이션
+ 그래픽 디자인
+ 컴퓨터 지원 설계/컴퓨터 지원 제조(CAD/CAM)
+ 비디오 트랜스코딩
+ 3D 렌더링
+ 실사 수준의 디자인
+ 게임 스트리밍
+ 기계 학습(ML) 모델 훈련 및 ML 추론

이 번들은 오디오 및 비디오 컨퍼런싱에는 권장되지 않습니다.

# WorkSpaces Pools용 사용자 지정 이미지 및 번들 만들기
<a name="pools-images-custom-image"></a>

WorkSpaces Pools는 Windows 이미지 및 번들만 지원합니다. Windows 또는 WorkSpace를 시작하고 사용자 지정한 경우, 해당 WorkSpace에서 사용자 지정 이미지 및 사용자 지정 번들을 생성할 수 있습니다.

*사용자 지정 이미지*에는 WorkSpace에 대한 OS, 소프트웨어 및 설정만 포함됩니다. WorkSpaces를 실행할 수 있는 하드웨어 및 사용자 지정 이미지가 통합된 것이 *사용자 지정 번들*입니다.

사용자 지정 이미지를 생성한 후, 사용자 지정 이미지와 선택한 스토리지 구성 및 기본 컴퓨팅을 결합하는 사용자 지정 번들을 빌드할 수 있습니다. 새 WorkSpaces를 시작할 때 이 사용자 지정 번들을 지정하면 새 WorkSpaces가 동일한 일관된 구성(하드웨어 및 소프트웨어)을 갖도록 할 수 있습니다.

동일한 사용자 지정 이미지를 이용해 각 번들에 대해 서로 다른 컴퓨팅 및 스토리지 옵션을 선택하여 다양한 사용자 지정 번들을 생성할 수 있습니다.

**중요**  
사용자 지정 번들 스토리지 볼륨은 이미지 스토리지 볼륨보다 작을 수 없습니다.

사용자 지정 번들은 만들어진 퍼블릭 번들과 같은 비용이 듭니다. 요금에 대한 자세한 내용은 [Amazon WorkSpaces 요금](https://aws.amazon.com/workspaces/pricing/)을 참조하세요.

**Topics**
+ [Windows 사용자 지정 이미지 생성 시 적용되는 요구 사항](#pools-windows_custom_image_requirements)
+ [모범 사례](#pools-custom_image_best_practices)
+ [1단계: 이미지 검사기 실행](#pools-run_image_checker)
+ [2단계: 사용자 지정 이미지 및 사용자 지정 번들 생성](#pools-create_custom_image_bundle)
+ [Windows WorkSpaces 사용자 지정 이미지에 포함된 항목](#pools-image_creation_windows)

## Windows 사용자 지정 이미지 생성 시 적용되는 요구 사항
<a name="pools-windows_custom_image_requirements"></a>

**참고**  
Windows는 현재 1GB를 1,073,741,824바이트로 정의합니다. WorkSpace 이미지를 만들기 위해 C 드라이브에 12,884,901,888바이트(또는 12GiB) 이상의 여유 공간이 있어야 하고 사용자 프로필이 10,737,418,240바이트(또는 10GiB) 미만인지 확인해야 합니다.
+ WorkSpace의 상태가 **사용 가능**이어야 하며 수정 상태가 **없음**이어야 합니다.
+ WorkSpaces 이미지에 있는 모든 애플리케이션과 사용자 프로필은 Microsoft Sysprep과 호환 가능해야 합니다.
+ 이미지에 포함할 모든 애플리케이션을 `C` 드라이브에 설치해야 합니다.
+ WorkSpaces에서 실행되는 모든 애플리케이션 서비스는 도메인 사용자 자격 증명 대신 로컬 시스템 계정을 사용해야 합니다. 예를 들어 도메인 사용자의 자격 증명을 사용하여 Microsoft SQL Server Express 설치를 실행할 수 없습니다.
+ WorkSpace는 암호화하면 안 됩니다. 암호화된 WorkSpace에서의 이미지 생성은 현재 지원되지 않습니다.
+ 다음 구성 요소가 이미지에 필요합니다. 이러한 구성 요소가 없으면 이미지에서 실행하는 WorkSpaces가 제대로 작동하지 않습니다. 자세한 내용은 [WorkSpaces Personal에 대한 필수 구성 및 서비스 구성 요소](required-service-components.md) 섹션을 참조하세요.
  + Windows PowerShell 버전 3.0 이상
  + 원격 데스크톱 서비스
  + AWS PV 드라이버
  + Windows 원격 관리(WinRM)
  + Teradici PCoIP 에이전트 및 드라이버
  + STXHD 에이전트 및 드라이버
  + AWS 및 WorkSpaces 인증서
  + Skylight 에이전트
+ WorkSpaces Pools는 200GB의 최대 번들/이미지 루트 볼륨 크기만 지원합니다. Windows 사용자 지정 이미지를 생성할 때 루트 볼륨 크기가 200GB인지 확인합니다.

## 모범 사례
<a name="pools-custom_image_best_practices"></a>

WorkSpaces에서 이미지를 생성하기 전에 다음을 수행합니다.
+ 프로덕션 환경에 연결되지 않은 별도의 VPC를 사용합니다.
+ 프라이빗 서브넷에서 WorkSpace를 배포하고 아웃바운드 트래픽에 NAT 인스턴스를 사용합니다.
+ 작은 Simple AD 디렉터리를 사용합니다.
+ 소스 WorkSpace에 가장 작은 볼륨 크기를 사용하고 사용자 지정 번들을 생성할 때 필요에 따라 볼륨 크기를 조정합니다.
+ WorkSpace에 모든 운영 체제 업데이트(Windows 기능/버전 업데이트 제외) 및 모든 애플리케이션 업데이트를 설치합니다.
+ WorkSpaces에서 번들에 포함되면 안 되는 캐싱된 데이터(예: 브라우저 기록, 캐싱된 파일, 브라우저 쿠키)를 삭제합니다.
+ WorkSpaces에서 번들에 포함되면 안 되는 구성 설정(예: 이메일 프로필)을 삭제합니다.
+ DHCP를 사용하여 동적 IP 주소 설정으로 전환합니다.
+ 리전에 허용된 WorkSpace 이미지의 할당량을 초과하지 않았는지 확인합니다. 기본적으로 리전당 40개의 WorkSpace 이미지가 허용됩니다. 이 할당량에 도달한 경우 이미지를 생성하려고 시도하면 실패합니다. 할당량 증가를 요청하려면 [WorkSpaces Limits 양식](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=workspaces)을 사용하세요.
+ 암호화된 WorkSpace에서 이미지를 생성하고 있지 않은지 확인합니다. 암호화된 WorkSpace에서의 이미지 생성은 현재 지원되지 않습니다.
+ WorkSpace에 안티바이러스 소프트웨어가 실행 중인 경우 이미지를 생성할 때 이 소프트웨어를 비활성화합니다.
+ WorkSpace에 방화벽이 활성화된 경우 방화벽이 필요한 포트를 차단하고 있지 않은지 확인합니다. 자세한 내용은 [WorkSpaces Personal의 IP 주소 및 포트 요구 사항](workspaces-port-requirements.md) 섹션을 참조하세요.
+ Windows WorkSpaces의 경우 이미지를 생성하기 전에 그룹 정책 객체(GPO)를 구성하지 마세요.
+ Windows WorkSpaces의 경우 이미지를 생성하기 전에 기본 사용자 프로필(`C:\Users\Default`)을 사용자 지정하지 마세요. 이미지 생성 후에 GPO를 통해 사용자 프로필을 사용자 지정하고 적용하는 것이 좋습니다. GPO는 쉽게 수정하거나 롤백할 수 있으므로 기본 사용자 프로필에 수행된 사용자 지정보다 오류가 발생할 가능성이 낮습니다.
+ WorkSpaces에서 ENA, NVMe 및 PV 드라이버와 같은 네트워킹 종속성 드라이버를 업데이트해야 합니다. 최소 6개월에 한 번 이 작업을 수행해야 합니다. 자세한 내용은 [Elastic Network Adapter(ENA) 드라이버 설치 또는 업그레이드](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/enhanced-networking-ena.html#ena-adapter-driver-install-upgrade-win), [Windows 인스턴스용AWS NVMe 드라이버](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/aws-nvme-drivers.html) 및 [Windows 인스턴스의 PV 드라이버 업그레이드](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Upgrading_PV_drivers.html)를 참조하세요.
+ EC2Config, EC2Launch 및 EC2Launch V2 에이전트를 최신 버전으로 주기적으로 업데이트해야 합니다. 최소 6개월에 한 번 이 작업을 수행해야 합니다. 자세한 내용은 [EC2Config 및 EC2Launch 업데이트](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/migrating-latest-types.html#upgdate-ec2config-ec2launch)를 참조하세요.

## 1단계: 이미지 검사기 실행
<a name="pools-run_image_checker"></a>

Windows WorkSpace가 이미지 만들기 요구 사항을 충족하는지 확인하려면 이미지 검사기 애플리케이션을 실행하는 것이 좋습니다. 이미지 검사기는 이미지를 생성하는 데 사용하려는 WorkSpace에서 일련의 테스트를 수행하고 발견된 문제를 해결하는 방법에 대한 지침을 제공합니다. 이미지 검사기는 Windows WorkSpaces에서만 사용할 수 있습니다.

**중요**  
WorkSpace는 이미지 생성에 사용하기 전에 이미지 검사기에서 실행하는 모든 테스트를 통과해야 합니다.
이미지 검사기를 실행하기 전에 최신 Windows 보안 및 누적 업데이트가 WorkSpace에 설치되어 있는지 확인합니다.

이미지 검사기를 가져오려면 다음 중 하나를 수행합니다.
+ [WorkSpace를 재부팅합니다](reboot-workspaces.md). 이미지 검사기는 재부팅하는 동안 자동으로 다운로드되고 `C:\Program Files\Amazon\ImageChecker.exe`에 설치됩니다.
+ [https://tools.amazonworkspaces.com/ImageChecker.zip](https://tools.amazonworkspaces.com/ImageChecker.zip) 에서 Amazon WorkSpaces 이미지 검사기를 다운로드하고 `ImageChecker.exe` 파일을 추출합니다. 이 파일을 `C:\Program Files\Amazon\`에 복사합니다.

**이미지 검사기를 실행하려면**

1. `C:\Program Files\Amazon\ImageChecker.exe` 파일을 엽니다.

1. **Amazon WorkSpaces Image Checker** 대화 상자에서 **실행**을 선택합니다.

1. 각 테스트가 완료된 후 테스트의 상태를 볼 수 있습니다.

   테스트의 상태가 **실패**인 경우 **정보**를 선택하여 실패의 원인이 된 문제를 해결하는 방법에 대한 정보를 표시합니다. 이러한 문제를 해결하는 방법에 대한 자세한 내용은 [이미지 검사기에서 감지한 문제 해결을 위한 팁](#pools-image_checker_tips) 섹션을 참조하세요.

   테스트가 **경고** 상태를 표시하는 경우 **모든 경고 수정** 버튼을 선택합니다.

   이 도구는 이미지 검사기가 위치해 있는 동일한 디렉터리에 출력 로그 파일을 생성합니다. 이 파일의 기본 위치는 `C:\Program Files\Amazon\ImageChecker_yyyyMMddhhmmss.log`입니다. 이 로그 파일을 삭제하지 마세요. 문제가 발생하는 경우 이러한 로그 파일이 문제 해결에 도움이 될 수 있습니다.

1. 해당하는 경우 테스트 실패 및 경고의 원인이되는 문제를 해결하고 WorkSpace가 모든 테스트를 통과할 때까지 이미지 검사기 실행 프로세스를 반복합니다. 이미지를 생성하기 전에 모든 실패 및 경고를 해결해야 합니다.

1. WorkSpace에서 모든 테스트를 통과하면 **검증 성공** 메시지가 표시됩니다. 이제 사용자 지정 번들을 생성할 준비가 되었습니다.

### 이미지 검사기에서 감지한 문제 해결을 위한 팁
<a name="pools-image_checker_tips"></a>

이미지 검사기에서 감지한 문제를 해결하기 위한 다음 팁을 고려하는 것 외에도 `C:\Program Files\Amazon\ImageChecker_yyyyMMddhhmmss.log`에서 이미지 검사기 로그 파일을 검토해야 합니다.

#### PowerShell 버전 3.0 이상을 설치해야 합니다.
<a name="pools-tips_powershell"></a>

최신 버전의 [Microsoft Windows PowerShell](https://docs.microsoft.com/powershell)을 설치합니다.

**중요**  
**RemoteSigned** 스크립트를 허용하도록 WorkSpace에 대한 PowerShell 실행 정책을 설정해야 합니다. 실행 정책을 확인하려면 **Get-ExecutionPolicy** PowerShell 명령을 실행합니다. 실행 정책이 **Unrestricted** 또는 **RemoteSigned**로 설정되지 않은 경우 **Set-ExecutionPolicy –ExecutionPolicy RemoteSigned** 명령을 실행하여 실행 정책의 값을 변경합니다. **RemoteSigned** 설정을 사용하면 이미지를 생성하는 데 필요한 Amazon WorkSpaces에 스크립트를 실행할 수 있습니다.

#### C 및 D 드라이브만 있을 수 있습니다.
<a name="pools-tips_local_drives"></a>

이미징에 사용되는 WorkSpace에는 `C` 및 `D` 드라이브만 있을 수 있습니다. 가상 드라이브를 포함한 기타 모든 드라이브를 제거합니다.

#### Windows Update로 인해 보류 중인 재부팅을 감지할 수 없음
<a name="pools-tips_pending_updates"></a>
+ 보안 또는 누적 업데이트 설치를 완료하기 위해 Windows를 재부팅할 때까지 이미지 생성 프로세스를 실행할 수 없습니다. Windows를 재부팅하여 이러한 업데이트를 적용하고 보류 중인 기타 Windows 보안 또는 누적 업데이트를 설치할 필요가 없는지 확인합니다.
+ 한 버전의 Windows 10에서 더 최신 버전의 Windows 10으로 업그레이드(Windows 기능/버전 업그레이드)를 수행한 Windows 10 시스템에서는 이미지 생성이 지원되지 않습니다. 그러나 Windows 누적 업데이트 또는 보안 업데이트는 WorkSpaces 이미지 생성 프로세스에서 지원됩니다.

#### Sysprep 파일이 있어야 하며 비워 둘 수 없습니다.
<a name="pools-tips_blank_sysprep"></a>

Sysprep 파일에 문제가 있는 경우 [AWS Support Center](https://console.aws.amazon.com/support/home#/)에 문의하여 EC2Config 또는 EC2Launch를 복구합니다.

#### 사용자 프로필 크기는 10GB 미만이어야 합니다.
<a name="pools-tips_large_profile"></a>

Windows 7 WorkSpaces의 경우 사용자 프로필(`D:\Users\username`)이 총 10GB 미만이어야 합니다. 필요에 따라 파일을 제거하여 사용자 프로필의 크기를 줄입니다.

#### C 드라이브에는 충분한 사용 가능한 공간이 있어야 합니다.
<a name="pools-tips_drive_c_full"></a>

Windows 7 WorkSpaces의 경우 `C` 드라이브에 최소 12GB의 사용 가능한 공간이 있어야 합니다. 필요에 따라 파일을 제거하여 `C` 드라이브의 공간을 확보합니다. Windows 10 WorkSpaces의 경우 `FAILED` 메시지를 수신하고 디스크 공간이 2GB를 초과하면 무시하세요.

#### 도메인 계정에서 서비스를 실행할 수 없습니다.
<a name="pools-tips_services_domain_accounts"></a>

이미지 생성 프로세스를 실행하려는 경우 WorkSpace의 어떤 서비스도 도메인 계정에서 실행할 수 없습니다. 모든 서비스는 로컬 계정에서 실행해야 합니다.

**로컬 계정에서 서비스를 실행하려면**

1. `C:\Program Files\Amazon\ImageChecker_yyyyMMddhhmmss.log`를 열고 도메인 계정에서 실행 중인 서비스 목록을 찾습니다.

1. Windows 검색 상자에 **services.msc**를 입력하여 Windows Services Manager를 엽니다.

1. **로그온 계정**에서, 도메인 계정에서 실행 중인 서비스를 찾습니다. (**로컬 시스템**, **로컬 서비스** 또는 **네트워크 서비스**로 실행 중인 서비스는 이미지 생성을 방해하지 않습니다.)

1. 도메인 계정에서 실행 중인 서비스를 선택한 다음 **작업**, **속성**을 선택합니다.

1. **로그온** 탭을 엽니다. **로그온 계정**에서 **로컬 시스템 계정**을 선택합니다.

1. **확인**을 선택합니다.

#### DHCP를 사용하도록 WorkSpace가 구성되어 있어야 합니다.
<a name="pools-tips_static_ip"></a>

정적 IP 주소 대신 DHCP를 사용하도록 WorkSpace의 모든 네트워크 어댑터를 구성해야 합니다.

**DHCP를 사용하도록 모든 네트워크 어댑터를 설정하려면**

1. Windows 검색 상자에 **control panel**을 입력하여 제어판을 엽니다.

1. **네트워크 및 인터넷**을 선택합니다.

1. **네트워크 및 공유 센터**를 선택합니다.

1. **어댑터 설정 변경**을 선택하고 어댑터를 선택합니다.

1. **이 연결의 설정 변경**을 선택합니다.

1. **네트워킹** 탭에서 **인터넷 프로토콜 버전 4(TCP/IPv4)**를 선택한 다음 **속성**을 선택합니다.

1. **인터넷 프로토콜 버전 4(TCP/IPv4) 속성** 대화 상자에서 **IP 주소 자동으로 가져오기**를 선택합니다.

1. **확인**을 선택합니다.

1. WorkSpace의 모든 네트워크 어댑터에 대해 이 프로세스를 반복합니다.

#### 원격 데스크톱 서비스가 활성화되어 있어야 합니다.
<a name="pools-tips_enable_rds"></a>

이미지 생성 프로세스를 수행하려면 원격 데스크톱 서비스를 활성화해야 합니다.

**원격 데스크톱 서비스를 활성화하려면**

1. Windows 검색 상자에 **services.msc**를 입력하여 Windows Services Manager를 엽니다.

1. **이름** 열에서 **원격 데스크톱 서비스**를 찾습니다.

1. **원격 데스크톱 서비스**를 선택한 다음 **작업**, **속성**을 선택합니다.

1. **일반** 탭에서 **시작 유형**에 대해 **수동** 또는 **자동**을 선택합니다.

1. **확인**을 선택합니다.

#### 사용자 프로필이 있어야 합니다.
<a name="pools-tips_user_profile_missing"></a>

이미지를 생성하는 데 사용하는 WorkSpace에는 사용자 프로필(`D:\Users\username`)이 있어야 합니다. 이 테스트가 실패하면 [AWS Support Center](https://console.aws.amazon.com/support/home#/)에 문의하여 도움을 받으세요.

#### 환경 변수 경로가 올바르게 구성되어 있어야 합니다.
<a name="pools-tips_environment_variables"></a>

로컬 시스템의 환경 변수 경로에 System32 및 Windows PowerShell에 대한 항목이 누락되었습니다. 이러한 항목은 이미지 생성을 실행하는 데 필요합니다.

**환경 변수 경로를 구성하려면**

1. Windows 검색 상자에 **environment variables**를 입력한 다음 **시스템 환경 변수 편집**을 선택합니다.

1. **시스템 속성** 대화 상자에서 **고급** 탭을 선택한 다음 **환경 변수**를 선택합니다.

1. **환경 변수** 대화 상자의 **시스템 변수**에서 **경로** 항목을 선택한 다음 **편집**을 선택합니다.

1. **새로 만들기**를 선택하고 다음 경로를 추가합니다.

   `C:\Windows\System32`

1. **새로 만들기**를 다시 선택하고 다음 경로를 추가합니다.

   `C:\Windows\System32\WindowsPowerShell\v1.0\`

1. **확인**을 선택합니다.

1. WorkSpace를 다시 시작합니다.
**작은 정보**  
환경 변수 경로에 항목이 표시되는 순서가 중요합니다. 올바른 순서를 결정하기 위해, WorkSpace의 환경 변수 경로를 새로 만든 WorkSpace 또는 새 Windows 인스턴스의 환경 변수 경로와 비교할 수 있습니다.

#### Windows 모듈 설치 관리자가 활성화되어 있어야 합니다.
<a name="pools-tips_enable_wmi"></a>

이미지 생성 프로세스를 수행하려면 Windows 모듈 설치 관리자 서비스를 활성화해야 합니다.

**Windows 모듈 설치 관리자 서비스를 활성화하려면**

1. Windows 검색 상자에 **services.msc**를 입력하여 Windows Services Manager를 엽니다.

1. **이름** 열에서 **Windows Modules Installer**를 찾습니다.

1. **Windows Modules Installer**를 선택한 다음 **작업**, **속성**을 선택합니다.

1. **일반** 탭에서 **시작 유형**에 대해 **수동** 또는 **자동**을 선택합니다.

1. **확인**을 선택합니다.

#### Amazon SSM Agent가 비활성화되어 있어야 합니다.
<a name="pools-tips_disable_ssm"></a>

이미지 생성 프로세스를 수행하려면 Amazon SSM Agent 서비스를 비활성화해야 합니다.

**Amazon SSM Agent 서비스를 비활성화하려면**

1. Windows 검색 상자에 **services.msc**를 입력하여 Windows Services Manager를 엽니다.

1. **이름** 열에서 **Amazon SSM Agent**를 찾습니다.

1. **Amazon SSM Agent**를 선택한 다음 **작업**, **속성**을 선택합니다.

1. **일반** 탭에서 **시작 유형**에 대해 **비활성**을 선택합니다.

1. **확인**을 선택합니다.

#### SSL3 및 TLS 버전 1.2가 활성화되어 있어야 합니다.
<a name="pools-tips_enable_ssl_tls"></a>

Windows용 SSL/TLS를 구성하려면 Microsoft Windows 설명서에서 [TLS 1.2를 활성화하는 방법](https://docs.microsoft.com/configmgr/core/plan-design/security/enable-tls-1-2)을 참조하세요.

#### WorkSpace에는 사용자 프로필이 하나만 있을 수 있습니다.
<a name="pools-tips_remove_extra_profiles"></a>

이미지를 생성하는 데 사용하는 WorkSpace에는 WorkSpaces 사용자 프로필(`D:\Users\username`)이 하나만 있을 수 있습니다. WorkSpace의 의도한 사용자에 속하지 않는 사용자 프로필을 삭제합니다.

이미지 생성이 작동하려면 WorkSpace에는 세 개의 사용자 프로필만 있어야 합니다.
+ WorkSpace의 의도한 사용자의 사용자 프로필(`D:\Users\username`)
+ 기본 사용자 프로필(기본 프로필이라고도 함)
+ 관리자 사용자 프로필

추가 사용자 프로필이 있는 경우 Windows 제어판에서 고급 시스템 속성을 통해 삭제할 수 있습니다.

**사용자 프로필을 삭제하려면**

1. 고급 시스템 속성에 액세스하려면 다음 중 하나를 수행합니다.
   + **Windows 키\$1일시 중지/중단**을 누른 다음 **제어판** 왼쪽 창의 **고급 시스템 설정** > **시스템 및 보안** > **시스템** 대화 상자를 선택합니다.
   + Windows 검색 상자에 **control panel**을 입력합니다. 제어판에서 **시스템 및 보안**을 선택한 다음 시스템을 선택하고 **제어판** 왼쪽 창의 **고급 시스템 설정** > **시스템 및 보안** > **시스템** 대화 상자를 선택합니다.

1. **시스템 속성** 대화 상자의 **고급** 탭에 있는 **사용자 프로필**에서 **설정**을 선택합니다.

1. 관리자 프로필, 기본 프로필 및 의도한 WorkSpaces 사용자의 프로필 외의 프로필이 나열된 경우 해당 추가 프로필을 선택하고 **삭제**를 선택합니다.

1. 프로필을 삭제할 것인지 묻는 메시지가 나타나면 **예**를 선택합니다.

1. 필요한 경우 3단계와 4단계를 반복하여 WorkSpace에 속하지 않는 다른 모든 프로파일을 제거합니다.

1. **확인**을 두 번 선택하고 제어판을 닫습니다.

1. WorkSpace를 다시 시작합니다.

#### AppX 패키지는 스테이징된 상태일 수 없습니다.
<a name="pools-tips_unstage_appx"></a>

하나 이상의 AppX 패키지가 스테이징된 상태에 있습니다. 이로 인해 이미지를 생성하는 중에 Sysprep 오류가 발생할 수 있습니다.

**스테이징된 AppX 패키지를 모두 제거하려면**

1. Windows 검색 상자에 **powershell**을 입력합니다. **관리자 권한으로 실행**을 선택합니다.

1. “이 앱이 디바이스를 변경할 수 있도록 허용하시겠습니까?“라고 묻는 메시지가 나타나면 **예**를 선택합니다.

1. Windows PowerShell 창에서 다음 명령을 입력하여 스테이징된 AppX 패키지를 모두 나열하고, 각 명령 다음에는 Enter 키를 누릅니다.

   ```
   $workSpaceUserName = $env:username
   ```

   ```
   $allAppxPackages = Get-AppxPackage -AllUsers
   ```

   ```
   $packages = $allAppxPackages |    Where-Object { `
                                   (($_.PackageUserInformation -like "*S-1-5-18*" -and !($_.PackageUserInformation -like "*$workSpaceUserName*")) -and `
                                   ($_.PackageUserInformation -like "*Staged*" -or $_.PackageUserInformation -like "*Installed*")) -or `
                                   ((!($_.PackageUserInformation -like "*S-1-5-18*") -and $_.PackageUserInformation -like "*$workSpaceUserName*") -and `
                                   $_.PackageUserInformation -like "*Staged*")
                                   }
   ```

1. 승격된 SYSTEM 권한으로 다음 명령을 실행하여 스테이징된 모든 AppX 패키지 프로비저닝 항목을 제거하고 Enter 키를 누릅니다.

   ```
   $packages | Remove-AppxPackage -ErrorAction SilentlyContinue
   ```

1. 이미지 검사기를 다시 실행합니다. 이 테스트가 여전히 실패하면 다음 명령을 입력하여 AppX 패키지를 모두 제거하고, 각 명령 다음에는 Enter 키를 누릅니다.

   ```
   Get-AppxProvisionedPackage -Online | Remove-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue
   ```

   ```
   Get-AppxPackage -AllUsers | Remove-AppxPackage -ErrorAction SilentlyContinue
   ```

#### Windows가 이전 버전에서 업그레이드되지 않았어야 합니다.
<a name="pools-tips_version_upgrade"></a>

한 버전의 Windows 10에서 더 최신 버전의 Windows 10으로 업그레이드(Windows 기능/버전 업그레이드)를 수행한 Windows 시스템에서는 이미지 생성이 지원되지 않습니다.

이미지를 생성하려면 Windows 기능/버전 업그레이드가 수행되지 않은 WorkSpace를 사용합니다.

#### Windows 초기화 횟수는 0이 아니어야 합니다.
<a name="pools-tips_reset_rearm_count"></a>

초기화 기능을 사용하면 Windows 평가판의 정품 인증 기간을 연장할 수 있습니다. 이미지 생성 프로세스에서는 초기화 횟수가 0이외의 값이어야 합니다.

**Windows 초기화 횟수를 확인하려면**

1. Windows **시작** 메뉴에서 **Windows 시스템**을 선택한 다음 **명령 프롬프트**를 선택합니다.

1. 명령 프롬프트 창에 다음 명령을 입력한 다음 Enter 키를 누릅니다.

   `cscript C:\Windows\System32\slmgr.vbs /dlv`

초기화 횟수를 0 이외의 값으로 재설정하려면 Microsoft Windows 설명서의 [Windows 설치 Sysprep(일반화)](https://docs.microsoft.com/windows-hardware/manufacture/desktop/sysprep--generalize--a-windows-installation)을 참조하세요.

#### 기타 문제 해결 팁
<a name="pools-images_troubleshooting_tips"></a>

WorkSpace가 이미지 검사기에서 실행한 모든 테스트를 통과했지만 여전히 WorkSpace에서 이미지를 생성할 수 없는 경우 다음 사항을 확인하세요.
+ WorkSpace가 **도메인 게스트** 그룹 내의 사용자에게 할당되지 않았는지 확인합니다. 도메인 계정이 있는지 확인하려면 다음 PowerShell 명령을 실행합니다.

  ```
  Get-WmiObject -Class Win32_Service | Where-Object { $_.StartName -like "*$env:USERDOMAIN*" }
  ```
+ 일부 그룹 정책 객체(GPO)는 Windows 인스턴스 구성 중에 EC2Config 서비스 또는 EC2Launch 스크립트에서 요청할 때 RDP 인증서 지문에 대한 액세스를 제한합니다. 이미지를 생성하기 전에, 상속이 차단되고 GPO가 적용되지 않은 새 조직 단위(OU)로 WorkSpace를 이동합니다.
+ Windows 원격 관리(WinRM) 서비스가 자동으로 시작되도록 구성되어 있는지 확인합니다. 해결 방법:

  1. Windows 검색 상자에 `services.msc`를 입력하여 Windows Services Manager를 엽니다.

  1. **이름** 열에서 **Windows Remote Management (WS-Management)**를 찾습니다.

  1. **Windows Remote Management (WS-Management)**를 선택한 다음 **작업**, **속성**을 선택합니다.

  1. **일반** 탭에서 **시작 유형**에 대해 **자동**을 선택합니다.

  1. **확인**을 선택합니다.

## 2단계: 사용자 지정 이미지 및 사용자 지정 번들 생성
<a name="pools-create_custom_image_bundle"></a>

WorkSpace 이미지를 확인한 후 다음 절차를 완료하여 WorkSpaces 콘솔을 사용하여 사용자 지정 이미지 및 사용자 지정 번들을 만듭니다. 프로그래밍 방식으로 이미지를 만들려면 CreateWorkspaceImage API 작업을 사용하세요. 자세한 내용은 *Amazon WorkSpaces API 참조*의 [CreateWorkspaceImage](https://docs.aws.amazon.com/workspaces/latest/api/API_CreateWorkspaceImage.html)를 참조하세요. 프로그래밍 방식으로 번들을 생성하려면 **CreateWorkspaceBundle** API 작업을 사용하세요. 자세한 내용을 알아보려면 *Amazon WorkSpaces API 참조*의 [CreateWorkspaceBundle](https://docs.aws.amazon.com/workspaces/latest/api/API_CreateWorkspaceBundle.html)을 참조하세요.

**WorkSpaces 콘솔을 사용하여 사용자 지정 이미지 및 사용자 지정 번들을 만들려면**

1. 여전히 WorkSpaces에 연결되어 있는 경우 WorkSpaces 클라이언트 애플리케이션에서 **Amazon WorkSpaces**, **연결 해제**를 선택하여 연결을 끊습니다.

1. [https://console.aws.amazon.com/workspaces/v2/home](https://console.aws.amazon.com/workspaces/v2/home) WorkSpaces 콘솔을 엽니다.

1. 탐색 창에서 **WorkSpaces**를 선택합니다.

1. <a name="pools-step_create_image"></a>WorkSpace를 선택하여 세부 정보 페이지를 열고 **이미지 생성**을 선택합니다. WorkSpaces의 상태가 **중지됨**인 경우 **작업**, **WorkSpaces 시작**을 선택하여 먼저 시작한 후 **작업**, **이미지 생성**을 선택합니다.

1. 계속하기 전에 WorkSpace를 재부팅(다시 시작)하라는 메시지가 표시됩니다. WorkSpaces를 재부팅하면 Amazon WorkSpaces 소프트웨어가 최신 버전으로 업데이트됩니다.

   메시지를 닫고 [WorkSpaces Personal에서 WorkSpaces 재부팅](reboot-workspaces.md)에 설명된 단계에 따라 WorkSpace를 재부팅합니다. 완료되면 이 절차의 [Step 4](create-custom-bundle.md#step_create_image)를 반복하되 이번에는 재부팅 메시지가 나타나면 **다음**을 선택합니다. 이미지를 생성하려면 WorkSpace의 상태가 **사용 가능**이어야 하며 수정 상태가 **없음**이어야 합니다.

1. 이미지를 식별하는 데 도움이 되는 이미지 이름과 설명을 입력하고 **이미지 생성**을 선택합니다. 이미지가 생성되는 동안에는 WorkSpaces의 상태가 **일시 중지됨** 상태이므로 WorkSpace를 사용할 수 없습니다.

   설명에 대시(`-`) 특수 문자를 사용하지 마세요. 오류가 발생합니다.

1. 탐색 창에서 **이미지**를 선택합니다. WorkSpace의 상태가 **사용 가능**으로 변경되면 이미지가 완료된 것입니다. 최대 45분이 걸릴 수 있습니다.

1. 이미지를 선택하고 **작업**, **번들 생성**을 선택합니다.

1. 번들 이름과 설명을 입력하고 다음 작업을 수행합니다.
   + **번들 하드웨어 유형**에서 이 사용자 지정 번들에서 WorkSpaces를 시작할 때 사용할 하드웨어를 선택합니다.
   + 루트 볼륨에 사용 가능한 기본 크기 조합은 WorkSpace당 200GB입니다.

1. 번들이 생성되었는지 확인하려면 **번들**을 생성하고 번들이 목록에 있는지 확인합니다.

## Windows WorkSpaces 사용자 지정 이미지에 포함된 항목
<a name="pools-image_creation_windows"></a>

Windows WorkSpace에서 이미지를 생성하는 경우 `C` 드라이브의 전체 내용이 포함됩니다.
+ 연락처
+ 다운로드
+ 음악
+ 사진
+ 저장된 게임
+ 비디오
+ 팟캐스트
+ 가상 머신
+ .virtualbox
+ 추적
+ appdata\$1local\$1temp
+ appdata\$1roaming\$1apple computer\$1mobilesync\$1
+ appdata\$1roaming\$1apple computer\$1logs\$1
+ appdata\$1roaming\$1apple computer\$1itunes\$1iphone software updates\$1
+ appdata\$1roaming\$1macromedia\$1flash player\$1macromedia.com\$1support\$1flashplayer\$1sys\$1
+ appdata\$1roaming\$1macromedia\$1flash player\$1\$1sharedobjects\$1
+ appdata\$1roaming\$1adobe\$1flash player\$1assetcache\$1
+ appdata\$1roaming\$1microsoft\$1windows\$1recent\$1
+ appdata\$1roaming\$1microsoft\$1office\$1recent\$1
+ appdata\$1roaming\$1microsoft office\$1live meeting
+ appdata\$1roaming\$1microsoft shared\$1livemeeting shared\$1
+ appdata\$1roaming\$1mozilla\$1firefox\$1crash reports\$1
+ appdata\$1roaming\$1mcafee\$1common framework\$1
+ appdata\$1local\$1microsoft\$1feeds cache
+ appdata\$1local\$1microsoft\$1windows\$1temporary internet files\$1
+ appdata\$1local\$1microsoft\$1windows\$1history\$1
+ appdata\$1local\$1microsoft\$1internet explorer\$1domstore\$1
+ appdata\$1local\$1microsoft\$1internet explorer\$1imagestore\$1
+ appdata\$1locallow\$1microsoft\$1internet explorer\$1iconcache\$1
+ appdata\$1locallow\$1microsoft\$1internet explorer\$1domstore\$1
+ appdata\$1locallow\$1microsoft\$1internet explorer\$1imagestore\$1
+ appdata\$1local\$1microsoft\$1internet explorer\$1recovery\$1
+ appdata\$1local\$1mozilla\$1firefox\$1profiles\$1

# WorkSpaces Pools용 사용자 지정 이미지 및 번들 관리
<a name="pools-images-managing"></a>

사용자 지정 이미지 및 번들을 관리하는 프로세스는 WorkSpaces Personal과 WorkSpaces Pools 간에 동일합니다. 이미지 및 번들 관리 방법에 대한 자세한 내용은 이 가이드의 WorkSpaces Personal 섹션에 있는 다음 설명서를 참조하세요.

**참고**  
WorkSpaces Personal에 사용할 수 있는 사용자 지정 번들과 WorkSpaces Pools에 사용할 수 있는 사용자 지정 번들의 주요 차이점은 사용할 수 있는 운영 체제와 기본 퍼블릭 번들입니다. WorkSpaces Pools에서 지원되는 운영 체제 및 번들은 [ WorkSpaces Pools 번들번들  WorkSpaces Pools 번들에 대해 알아봅니다.   *WorkSpaces 번들*은 운영 체제, 스토리지, 컴퓨팅 및 소프트웨어 리소스의 조합입니다. WorkSpaces를 시작할 때 요구 사항을 충족하는 번들을 선택합니다. WorkSpaces에 사용할 수 있는 기본 번들을 *퍼블릭 번들*이라고 합니다. WorkSpaces에 사용할 수 있는 다양한 퍼블릭 번들에 대한 자세한 내용은 [Amazon WorkSpaces 번들](https://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles)을 참조하세요. 다음 표에서는 각 OS에서 지원하는 라이선스, 스트리밍 프로토콜 및 번들에 대한 정보를 제공합니다. 


| 운영 체제 | 라이선스 | 스트리밍 프로토콜 | 지원되는 번들 | 
| --- | --- | --- | --- | 
| Windows Server 2019 | 포함 | DCV | Value, Standard, Performance, Power, PowerPro | 
| Windows Server 2022 | 포함 | DCV | Standard, Performance, Power, PowerPro, Graphics.G4dn, GraphicsPro.G4dn |     공급업체에서 더 이상 지원하지 않는 운영 체제 버전은 작동이 보장되지 않으며 AWS 지원에서 지원되지 않습니다.    ](instance-types.md#instance-types.title) 섹션을 참조하세요.
+ [WorkSpaces Personal에 대한 사용자 지정 번들 업데이트](update-custom-bundle.md).
+ [WorkSpaces Personal에서 사용자 지정 이미지 복사](copy-custom-image.md).
+ [WorkSpaces Personal에서 사용자 지정 이미지 공유 또는 공유 해제](share-custom-image.md).
+ [WorkSpaces Personal에서 사용자 지정 번들 또는 이미지 삭제](delete_bundle.md).

# 세션 스크립트를 사용하여 사용자의 스트리밍 환경 관리
<a name="pools-images-session-scripts"></a>

WorkSpaces Pools는 인스턴스상 세션 스크립트를 제공합니다. 이러한 스크립트를 사용하여 사용자의 스트리밍 세션에서 특정 이벤트가 발생했을 때 자체 사용자 지정 스크립트를 실행할 수 있습니다. 예를 들어 사용자 지정 스크립트를 사용하여 사용자의 스트리밍 세션이 시작되기 전에 WorkSpaces Pools 환경을 준비할 수 있습니다. 또한 사용자 지정 스크립트를 사용하여 사용자가 스트리밍 세션을 완료한 후 스트리밍 인스턴스를 정리할 수도 있습니다.

세션 스크립트는 WorkSpace 이미지 내에 지정됩니다. 이러한 스크립트는 사용자 컨텍스트 또는 시스템 컨텍스트 내에서 실행됩니다. 세션 스크립트가 표준 출력을 사용하여 정보, 오류 또는 디버깅 메시징을 쓰는 경우, Amazon Web Services 계정 내의 Amazon S3 버킷에 이러한 것을 저장할 수도 있습니다.

**Topics**
+ [스트리밍 세션이 시작되기 전에 스크립트 실행](#run-scripts-before-streaming-sessions-begin)
+ [스트리밍 세션이 종료된 후 스크립트 실행](#run-scripts-after-streaming-sessions-end)
+ [세션 스크립트 생성 및 지정](#create-specify-session-scripts)
+ [세션 스크립트 구성 파일](#session-script-configuration-file)
+ [Windows PowerShell 파일 사용](#using-powershell-files-with-session-scripts)
+ [세션 스크립트 출력 로깅](#logging-session-output)
+ [세션 스크립트와 함께 영구 스토리지 사용](#use-storage-connectors-with-session-scripts)
+ [세션 스크립트 로그를 저장하기 위해 Amazon S3 버킷 스토리지 활성화](#enable-S3-bucket-storage-session-script-logs)

## 스트리밍 세션이 시작되기 전에 스크립트 실행
<a name="run-scripts-before-streaming-sessions-begin"></a>

사용자의 애플리케이션이 시작되고 스트리밍 세션이 시작되기 전에 최대 60초 동안 스크립트가 실행되도록 구성할 수 있습니다. 그렇게 하면 사용자가 애플리케이션 스트리밍을 시작하기 전에 WorkSpaces Pools 환경을 사용자 지정할 수 있습니다. 세션 스크립트가 실행되면 사용자에게 로딩 회전자가 표시됩니다. 스크립트가 성공적으로 완료되거나 최대 대기 시간이 경과하면, 사용자의 스트리밍 세션이 시작됩니다. 스크립트가 성공적으로 완료되지 않은 경우 사용자에게 오류 메시지가 표시됩니다. 그러나 사용자의 스트리밍 세션 사용이 방해되지는 않습니다.

Windows 인스턴스에서 파일 이름을 지정할 때 이중 백슬래시를 사용해야 합니다. 예제:

```
C:\\Scripts\\Myscript.bat
```

이중 백슬래시를 사용하지 않으면 `.json` 파일이 잘못 포맷되었다는 오류가 표시됩니다.

**참고**  
스크립트가 성공적으로 완료되면 스크립트는 값 0을 반환합니다. 스크립트가 0 이외의 값을 반환하면, WorkSpaces가 사용자에게 오류 메시지를 표시합니다.

스트리밍 세션이 시작되기 전에 스크립트를 실행하면, 다음 프로세스가 발생합니다.

1. 사용자가 도메인에 조인되지 않은 WorkSpaces Pools의 WorkSpaces에 연결합니다. SAML 2.0을 사용하여 연결합니다.

1. 다음 중 하나가 발생합니다.
   + 사용자에게 애플리케이션 설정 지속성이 활성화된 경우, 사용자의 사용자 지정 및 Windows 설정을 저장하는 애플리케이션 설정 VHD(가상 하드 디스크) 파일이 다운로드 및 탑재됩니다. 이 경우 Windows 사용자 로그인이 필요합니다.

     애플리케이션 설정 지속성에 대한 자세한 내용은 [WorkSpaces Pools 사용자에 대한 애플리케이션 설정 지속성 활성화](app-settings-persistence.md) 섹션을 참조하세요.
   + 애플리케이션 설정 지속성이 활성화되지 않은 경우, Windows 사용자가 이미 로그인한 것입니다.

1. 세션 스크립트가 시작됩니다. 사용자에게 영구 스토리지가 활성화된 경우, 스토리지 커넥터 탑재도 시작됩니다. 영구 스토리지에 대한 자세한 내용은 [WorkSpaces Pools에 대한 영구 스토리지 활성화 및 관리](persistent-storage.md) 섹션을 참조하세요.
**참고**  
스트리밍 세션을 시작하기 위해 스토리지 커넥터 탑재를 완료할 필요는 없습니다. 스토리지 커넥터 탑재가 완료되기 전에 세션 스크립트가 완료되면, 스트리밍 세션이 시작됩니다.  
스토리지 커넥터의 장착 상태 모니터링에 대한 자세한 내용은 [세션 스크립트와 함께 영구 스토리지 사용](#use-storage-connectors-with-session-scripts) 섹션을 참조하세요.

1. 세션 스크립트가 완료되거나 시간 초과됩니다.

1. 사용자의 스트리밍 세션이 시작됩니다.

## 스트리밍 세션이 종료된 후 스크립트 실행
<a name="run-scripts-after-streaming-sessions-end"></a>

사용자의 스트리밍 세션이 종료된 후 스크립트가 실행되도록 구성할 수도 있습니다. 예를 들어, 사용자가 WorkSpaces 클라이언트 도구 모음에서 **세션 종료**를 선택하거나 세션에 허용된 최대 지속 시간에 도달했을 때 스크립트를 실행할 수 있습니다. 또한 이러한 세션 스크립트를 사용하여 스트리밍 인스턴스가 종료되기 전에 WorkSpaces 환경을 정리할 수도 있습니다. 예를 들어 스크립트를 사용하여 파일 잠금을 풀거나 로그 파일을 업로드할 수 있습니다. 스트리밍 세션이 종료된 후 스크립트를 실행하면, 다음 프로세스가 발생합니다.

1. 사용자의 WorkSpaces 스트리밍 세션이 종료됩니다.

1. 세션 종료 스크립트가 시작됩니다.

1. 세션 종료 스크립트가 완료되거나 시간 초과됩니다.

1. Windows 사용자 로그아웃이 발생합니다.

1. 해당하는 경우 다음 중 하나 또는 둘 모두가 동시에 발생합니다.
   + 사용자에게 애플리케이션 설정 지속성이 활성화된 경우, 사용자의 사용자 지정 및 Windows 설정을 저장하는 애플리케이션 설정 VHD 파일이 탑재 해제되고 계정의 Amazon S3 버킷에 업로드됩니다.
   + 사용자에게 영구 스토리지가 활성화된 경우, 스토리지 커넥터가 최종 동기화를 완료하고 탑재 해제됩니다.

1. WorkSpace가 종료됩니다.

## 세션 스크립트 생성 및 지정
<a name="create-specify-session-scripts"></a>

다음 절차를 완료하여 WorkSpaces Pools에서 WorkSpaces에 대한 세션 스크립트를 만들고 지정합니다.

1. 사용자 지정 이미지를 만들 Windows WorkSpaces에 연결합니다.

1. `/AWSEUC/SessionScripts` 디렉터리가 아직 없으면 생성합니다.

1. [세션 스크립트 구성 템플릿](https://docs.aws.amazon.com/workspaces/latest/adminguide/pools-images-session-scripts.html#session-script-configuration-file)을 사용하여 구성 파일이 아직 없는 `/AWSEUC/SessionScripts/config.json` 경우 해당 파일을 생성합니다.

1. `C:\AWSEUC\SessionScripts`로 이동하여 `config.json` 구성 파일을 엽니다.

   세션 스크립트 파라미터에 대한 자세한 내용은 [세션 스크립트 구성 파일](#session-script-configuration-file) 섹션을 참조하세요.

1. 변경을 완료한 후, `config.json` 파일을 저장하고 닫습니다.

1. 단계를 완료하여 WorkSpace에서 이미지를 만듭니다. 자세한 내용은 [WorkSpaces Pools용 사용자 지정 이미지 및 번들 만들기](pools-images-custom-image.md) 섹션을 참조하세요.

## 세션 스크립트 구성 파일
<a name="session-script-configuration-file"></a>

Linux 인스턴스에서 세션 스크립트 구성 파일을 찾으려면 `C:\AWSEUC\SessionScripts\config.json`으로 이동하세요. 파일 형식은 다음과 같습니다.

**참고**  
구성 파일은 .JSON 형식입니다. 이 파일에 입력하는 텍스트가 유효한 JSON 형식인지 확인합니다.

```
{
  "SessionStart": {
    "executables": [
      {
        "context": "system",
        "filename": "",
        "arguments": "",
        "s3LogEnabled": true
      },
      {
        "context": "user",
        "filename": "",
        "arguments": "",
        "s3LogEnabled": true
      }
    ],
    "waitingTime": 30
  },
  "SessionTermination": {
    "executables": [
      {
        "context": "system",
        "filename": "",
        "arguments": "",
        "s3LogEnabled": true
      },
      {
        "context": "user",
        "filename": "",
        "arguments": "",
        "s3LogEnabled": true
      }
    ],
    "waitingTime": 30
  }
}
```

세션 스크립트 구성 파일에서 다음 파라미터를 사용할 수 있습니다.

**`SessionStart/SessionTermination `**  
객체의 이름을 기반으로 적절한 세션 이벤트에서 실행할 세션 스크립트입니다.  
**유형**: 문자열  
**필수 항목 여부**: 아니요  
**허용된 값:** **SessionStart**, **SessionTermination** 

**`WaitingTime`**  
세션 스크립트의 최대 기간(초)입니다.  
**유형**: 정수  
**필수 항목 여부**: 아니요  
**제약:** 최대 지속 기간은 60초입니다. 세션 스크립트가 이 기간 내에 완료되지 않으면 중지됩니다. 스크립트를 계속 실행해야 하는 경우 별도의 프로세스로 시작하세요.

**`Executables`**  
실행할 세션 스크립트에 대한 세부 정보입니다.  
**유형**: 문자열  
**필수 항목 여부:** 예  
**제약:** 세션 이벤트당 실행할 수 있는 최대 스크립트 수는 2개입니다(사용자 컨텍스트용 하나와 시스템 컨텍스트용 하나).

**`Context`**  
세션 스크립트를 실행할 컨텍스트입니다.  
**유형**: 문자열  
**필수 항목 여부:** 예  
**허용된 값:** **user**, **system** 

**`Filename`**  
실행할 세션 스크립트의 전체 경로입니다. 이 파라미터가 지정되지 않은 경우, 세션 스크립트가 실행되지 않습니다.  
**유형**: 문자열  
**필수 항목 여부**: 아니요  
**제약:** 파일 이름 및 전체 경로의 최대 길이는 1,000자입니다.  
**허용된 값:** **.bat**, **.exe**, **.sh**   
Windows PowerShell 파일을 사용할 수도 있습니다. 자세한 내용은 [Windows PowerShell 파일 사용](#using-powershell-files-with-session-scripts) 섹션을 참조하세요.

**`Arguments`**  
세션 스크립트 또는 실행 파일의 인수입니다.  
**유형**: 문자열  
**필수 항목 여부**: 아니요  
**길이 제한:** 최대 길이는 1,000자입니다.

**`S3LogEnabled`**  
이 파라미터의 값이 **True**로 설정되어 있으면, 세션 스크립트가 생성하는 로그를 저장하기 위해 Amazon Web Services 계정 내에 S3 버킷이 생성됩니다. 기본적으로 이 값은 **True**로 설정됩니다. 자세한 내용은 이 주제 뒷부분의 *세션 스크립트 출력 로깅* 섹션을 참조하세요.  
**유형**: 부울  
**필수 항목 여부**: 아니요  
**허용된 값:** **True**, **False** 

## Windows PowerShell 파일 사용
<a name="using-powershell-files-with-session-scripts"></a>

Windows PowerShell 파일을 사용하려면 `filename` 파라미터에서 PowerShell 파일의 전체 경로를 지정합니다.

```
"filename": 
"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
```

그런 다음 **arguments** 파라미터에서 세션 스크립트를 지정합니다.

```
"arguments": "-File \"C:\\path\\to\\session\\script.ps1\"",
```

마지막으로 PowerShell 실행 정책이 PowerShell 파일이 실행되도록 허용하는지 확인합니다.

## 세션 스크립트 출력 로깅
<a name="logging-session-output"></a>

구성 파일에서 이 옵션이 활성화된 경우, WorkSpaces Pools는 표준 출력에 작성된 세션 스크립트에서 출력을 자동으로 캡처합니다. 이 출력은 계정의 Amazon S3 버킷에 업로드됩니다. 문제 해결 또는 디버깅을 위해 로그 파일을 검토할 수 있습니다.

**참고**  
세션 스크립트가 값을 반환하거나 **WaitingTime**에 설정된 값이 경과되면 둘 중 더 빠른 시간을 기준으로 로그 파일이 업로드됩니다.

## 세션 스크립트와 함께 영구 스토리지 사용
<a name="use-storage-connectors-with-session-scripts"></a>

WorkSpaces 영구 스토리지가 활성화되면 세션 시작 스크립트가 실행될 때 스토리지가 마운트되기 시작합니다. 스크립트가 마운트된 영구 스토리지를 사용하는 경우 커넥터를 사용할 수 있을 때까지 기다릴 수 있습니다. WorkSpaces는 Windows WorkSpaces의 Windows 레지스트리에 있는 스토리지 커넥터의 마운트 상태를 다음 키에서 유지합니다.

```
HKEY_LOCAL_MACHINE\SOFTWARE\Amazon\AWSEUC\Storage\<provided user
                name>\<Storage connector>
```

레지스트리 키 값은 다음과 같습니다.
+ 제공된 사용자 이름 - 액세스 모드를 통해 제공되는 사용자 ID입니다. 액세스 모드와 각 모드의 값은 다음과 같습니다.
  + 사용자 풀 - 사용자의 이메일 주소입니다.
  + 스트리밍 URL - UserID입니다.
  + SAML - NameID입니다. 사용자 이름에 슬래시가 포함된 경우(예를 들어 도메인 사용자의 SAMAccountName), 슬래시는 "-" 문자로 대체됩니다.
+ 스토리지 커넥터 - 사용자가 사용할 수 있는 영구 스토리지 옵션용 커넥터입니다. 스토리지 커넥터 값은 다음과 같습니다.
  + HomeFolder

각 스토리지 커넥터 레지스트리 키에는 **MountStatus** DWORD 값이 포함되어 있습니다. 다음 표에는 **MountStatus**에 사용할 수 있는 값이 나와 있습니다.

**참고**  
이러한 레지스트리 키를 보려면 Microsoft .NET Framework 버전 4.7.2 이상이 이미지에 설치되어 있어야 합니다.


| 값 | 설명 | 
| --- | --- | 
| 0 |  이 사용자에게 스토리지 커넥터가 활성화되어 있지 않음  | 
| 1 |  스토리지 커넥터 탑재를 진행 중  | 
| 2 |  스토리지 커넥터가 탑재됨  | 
| 3 |  스토리지 커넥터 탑재에 실패함  | 
| 4 |  스토리지 커넥터 탑재가 활성화되어 있지만 아직 탑재되지 않음  | 

## 세션 스크립트 로그를 저장하기 위해 Amazon S3 버킷 스토리지 활성화
<a name="enable-S3-bucket-storage-session-script-logs"></a>

세션 스크립트 구성에서 Amazon S3 로깅을 활성화하면, WorkSpaces Pools가 세션 스크립트에서 표준 출력을 캡처합니다. 출력은 Amazon Web Services 계정 내 S3 버킷에 주기적으로 업로드됩니다. 모든 AWS 리전에 대해 WorkSpaces Pools는 계정 및 리전에 고유한 버킷을 계정에 생성합니다.

이러한 S3 버킷을 관리하기 위해 구성 작업을 수행하지 않아도 됩니다. WorkSpaces 서비스에서 모두 관리합니다. 각 버킷에 저장된 로그 파일은 전송 중에는 Amazon S3의 SSL 엔드포인트를 이용하고, 정지 상태일 때는 Amazon S3 관리형 암호화 키를 이용하여 암호화됩니다. 버킷의 이름은 다음과 같은 특정 형식으로 지정됩니다.

```
wspool-logs-<region-code>-<account-id-without-hyphens>-random-identifier
```

**`<region-code>`**  
세션 스크립트 로그에 대해 활성화된 Amazon S3 버킷 스토리지를 사용하여 WorkSpaces Pools가 생성되는 AWS 리전 코드입니다.

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

예를 들어 계정 번호 `123456789012`에서 미국 서부(오리건) 리전(`us-west-2`)의 이미지에 세션 스크립트를 지정하면, WorkSpaces Pools는 표시된 이름을 사용하여 해당 리전의 계정 내에 Amazon S3 버킷을 만듭니다. 충분한 권한이 있는 관리자만 이 버킷을 삭제할 수 있습니다.

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

세션 스크립트를 비활성화해도 S3 버킷에 저장된 로그 파일이 삭제되지 않습니다. 로그 파일을 영구적으로 삭제하려면 사용자 또는 적절한 권한이 있는 다른 관리자가 Amazon S3 콘솔이나 API를 이용해 이를 수행해야 합니다. WorkSpaces Pools에는 실수로 버킷을 삭제하는 것을 방지하는 버킷 정책이 추가되었습니다.

세션 스크립트가 활성화되면 시작되는 각 스트리밍 세션에 고유한 폴더가 생성됩니다.

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

```
<bucket-name>/<stack-name>/<fleet-name>/<access-mode>/<user-id-SHA-256-hash>/<session-id>/SessionScriptsLogs/<session-event>
```

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

***<stack-name>***  
세션이 시작된 스택 이름입니다.

***<fleet-name>***  
세션 스크립트를 실행 중인 WorkSpaces Pools 이름입니다.

***<access-mode>***  
사용자의 ID 메서드입니다. `custom`은 WorkSpaces API 또는 CLI용이며, `federated`는 SAML용, `userpool`은 사용자 풀의 사용자용입니다.

***<user-id-SHA-256-hash>***  
사용자별 폴더 이름입니다. 이 이름은 사용자 식별자에서 생성한 소문자 SHA-256 해시 16진법 문자열을 이용해 생성됩니다.

***<session-id>***  
사용자의 스트리밍 세션의 식별자입니다. 각 사용자 스트리밍 세션은 고유한 ID를 생성합니다.

***<session-event>***  
세션 스크립트 로그를 생성한 이벤트입니다. 이벤트 값은 `SessionStart` 및 `SessionTermination`입니다.

다음 폴더 구조 예는 test-stack 및 test-fleet에서 시작된 스트리밍 세션에 적용됩니다. 세션은 ID가 `testuser@mydomain.com`인 사용자 AWS 계정 ID의 API`123456789012`와 미국 서부(오레곤) 리전()`test-stack`의 설정 그룹을 사용합니다.`us-west-2`

```
wspool-logs-us-west-2-1234567890123-abcdefg/test-stack/test-fleet/custom/a0bcb1da11f480d9b5b3e90f91243143eac04cfccfbdc777e740fab628a1cd13/05yd1391-4805-3da6-f498-76f5x6746016/SessionScriptsLogs/SessionStart/
```

이 폴더 구조 예에는 사용자 컨텍스트 세션 시작 스크립트용 로그 파일 하나와, 시스템 컨텍스트 세션 시작 스크립트용 로그 파일 하나가 포함되어 있습니다(해당하는 경우).