

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

# Windows 인스턴스에서 레시피 실행
<a name="cookbooks-101-opsworks-opsworks-windows"></a>

**중요**  
이 AWS OpsWorks Stacks 서비스는 2024년 5월 26일에 수명이 종료되었으며 신규 및 기존 고객 모두에서 비활성화되었습니다. 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션하는 것이 좋습니다. 마이그레이션에 대한 질문이 있는 경우 [AWS re:Post](https://repost.aws/) 또는 [AWS Premium Support](https://aws.amazon.com/support)를 통해 AWS Support 팀에 문의하세요.

이 주제는 기본적으로 [Linux 인스턴스에서 레시피 실행](cookbooks-101-opsworks-opsworks-instance.md) 섹션의 요약 버전으로, Windows 스택에서 레시피를 실행하는 방법을 보여줍니다. 두 운영 체제 모두와 관련이 있는 내용이 보다 자세히 설명되어 있으므로 먼저 [Linux 인스턴스에서 레시피 실행](cookbooks-101-opsworks-opsworks-instance.md) 섹션을 읽는 것이 좋습니다.

 OpsWorks Stacks Linux 인스턴스에서 레시피를 실행하는 방법에 대한 설명은 섹션을 참조하세요[Linux 인스턴스에서 레시피 실행](cookbooks-101-opsworks-opsworks-instance.md).

**Topics**
+ [RDP 액세스 활성화](#cookbooks-101-opsworks-opsworks-windows-rdp)
+ [레시피 생성 및 실행](#cookbooks-101-opsworks-opsworks-windows-run-recipe)
+ [자동으로 레시피 실행](#cookbooks-101-opsworks-opsworks-windows-event)

## RDP 액세스 활성화
<a name="cookbooks-101-opsworks-opsworks-windows-rdp"></a>

시작하기 전에 인스턴스에 대해 RDP 액세스를 허용하는 인바운드 규칙을 포함하는 보안 그룹을 설정해야 합니다. 스택을 생성할 때 이 그룹이 필요합니다.

리전에서 첫 번째 스택을 생성하면 OpsWorks Stacks가 보안 그룹 세트를 생성합니다. 여기에는과 같은 이름의 인스턴스가 포함되며`AWS-OpsWorks-RDP-Server`, OpsWorks Stacks는 모든 Windows 인스턴스에 연결하여 RDP 액세스를 허용합니다. 하지만 이 보안 그룹은 기본적으로 아무 규칙도 포함하고 있지 않으므로, 인스턴스에 RDP 액세스를 허용하는 인바운드 규칙을 추가해야 합니다.

**RDP 액세스를 허용하려면**

1. [Amazon EC2 콘솔](https://console.aws.amazon.com/ec2/v2/)을 열고, 콘솔을 스택의 리전으로 설정한 다음, 탐색 창에서 **보안 그룹**을 선택합니다.

1. [**AWS-OpsWorks-RDP-Server**], [**인바운드**] 탭, [**편집**]을 차례대로 선택합니다.

1. 다음 설정으로 규칙을 추가합니다.
   + **유형** – **RDP**
   + **소스** – 허용 가능한 소스 IP 주소.

     일반적으로 IP 주소 또는 지정된 IP 주소 범위(대개 회사 IP 주소)에서 들어오는 인바운드 RDP 요청을 허용합니다.

**참고**  
또한 나중에 설명하듯이 사용자 권한을 편집해 일반 사용자에게 RDP 액세스를 허용해야 합니다.

자세한 내용은 [RDP를 사용하여 로그인](workinginstances-rdp.md) 섹션을 참조하세요.

## 레시피 생성 및 실행
<a name="cookbooks-101-opsworks-opsworks-windows-run-recipe"></a>

다음은 이 예제를 위한 스택을 생성하는 방법을 간략히 요약한 것입니다. 자세한 내용은 [새 스택 생성](workingstacks-creating.md) 섹션을 참조하세요.

**스택을 만듭니다**

1. [OpsWorks Stacks 콘솔](https://console.aws.amazon.com/opsworks/)을 열고 **스택 추가**를 선택합니다. 다음 설정을 지정하고, 그 외 설정에 대해서는 기본값을 수락한 다음 [**스택 추가**]를 선택합니다.
   + **이름** – WindowsRecipeTest
   + **리전** – 미국 서부(오레곤)

     이 예제는 모든 리전에서 작동하지만 자습서의 경우 미국 서부(오레곤)를 사용하는 것이 좋습니다.
   + **기본 운영 체제** - Microsoft Windows Server 2012 R2

1. [**계층 추가**]를 선택하여 스택에 다음 설정으로 [사용자 지정 계층을 추가](workinglayers-custom.md)합니다.
   + **이름** – RecipeTest
   + **짧은 이름** - recipetest

1. 기본 설정을 사용하여 RecipeTest 계층에 [24/7 인스턴스를 추가](workinginstances-add.md)하고 [해당 인스턴스를 시작](workinginstances-starting.md)합니다.

   OpsWorks Stacks는이 인스턴스`AWS-OpsWorks-RDP-Server`에를 자동으로 할당하므로 권한 있는 사용자가 인스턴스에 로그인할 수 있습니다.

1. [**권한**] 및 [**편집**]을 차례대로 선택하고 [**SSH/RDP**] 및 [**sudo/admin**]을 선택합니다. 인스턴스에 로그인하려면 일반 사용자에게는 `AWS-OpsWorks-RDP-Server` 보안 그룹 이외에 이러한 권한 부여가 필요합니다.
**참고**  
Administrator로도 로그인할 수 있지만 로그인 절차가 다릅니다. 자세한 내용은 [RDP를 사용하여 로그인](workinginstances-rdp.md) 섹션을 참조하세요.

인스턴스가 시작되는 동안(보통 몇 분 정도 소요됨) 쿡북을 생성할 수 있습니다. 이 예제의 레시피는 데이터 디렉터리를 생성하며, 기본적으로 [예제 3: 디렉터리 생성](cookbooks-101-basics-directories.md)의 레시피를 Windows용으로 수정한 것입니다.

**참고**  
Stacks Windows 인스턴스용 OpsWorks 쿡북을 구현할 때는 Stacks Linux 인스턴스용 OpsWorks 쿡북을 구현할 때와 약간 다른 디렉터리 구조를 사용합니다. 자세한 내용은 [쿡북 리포지토리](workingcookbook-installingcustom-repo.md) 단원을 참조하십시오.

**쿡북을 설정하려면**

1. `windowstest` 하위 디렉터리를 만들고 그 디렉터리로 이동합니다.

1. 다음 내용이 포함된 `metadata.rb` 파일을 만들어 `windowstest`에 저장합니다.

   ```
   name "windowstest"
   version "0.1.0"
   ```

1. `recipes` 안에 `windowstest` 디렉터리를 만듭니다.

1. 다음 레시피가 포함된 `default.rb` 파일을 만들어 `recipes` 디렉터리에 저장합니다.

   ```
   Chef::Log.info("******Creating a data directory.******")
   
   directory 'C:\data' do
     rights :full_control, 'instance_name\username'
     inherits false
     action :create
   end
   ```

   *username*을 사용자 이름으로 바꿉니다.

1. 쿡북을 리포지토리에 저장합니다.

   Stacks 인스턴스에 OpsWorks 쿡북을 설치하려면 리포지토리에 쿡북을 저장하고 인스턴스에 쿡북을 다운로드하는 데 필요한 정보를 OpsWorks Stacks에 제공해야 합니다. S3 버킷 또는 Git 리포지토리에 Windows 쿡북을 아카이브 파일로 저장할 수 있습니다. 이 예제에서는 S3 버킷을 사용하므로 `windowstest` 디렉터리의 .zip 아카이브를 생성해야 합니다. 쿡북 리포지토리에 대한 자세한 정보는 [쿡북 리포지토리](workingcookbook-installingcustom-repo.md) 단원을 참조하세요.

1. [아카이브를 S3 버킷에 업로드](https://docs.aws.amazon.com/AmazonS3/latest/UG/UploadingObjectsintoAmazonS3.html)하고, [해당 아카이브를 퍼블릭으로 설정](https://docs.aws.amazon.com/AmazonS3/latest/UG/EditingPermissionsonanObject.html)한 다음, 아카이브의 URL을 적어 둡니다. 또한 프라이빗 아카이브를 사용할 수도 있지만 이 예제에는 퍼블릭 아카이브면 충분합니다. 퍼블릭 아카이브가 작업하기 더 간단합니다.

   Amazon S3 버킷에 전달한 콘텐츠에는 고객 콘텐츠가 포함될 수 있습니다. 중요 데이터 제거에 관한 자세한 내용은 [S3 버킷을 비우려면 어떻게 해야 합니까?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/empty-bucket.html) 단원 또는 [S3 버킷을 삭제하려면 어떻게 해야 합니까?](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html) 단원을 참조하세요.

이제 쿡북을 설치하고 레시피를 실행할 수 있습니다.

**레시피를 실행하려면**

1. [스택을 편집해 사용자 지정 쿡북을 활성화](workingcookbook-installingcustom-enable.md)하고 다음 설정을 지정합니다.
   + **리포지토리 유형** – **S3 아카이브**
   + **리포지토리 URL** - 앞에서 기록해 둔 쿡북 아카이브 URL

   기타 설정에 대해 기본값을 수락하고 [**저장**]을 선택하여 스택 구성을 업데이트합니다.

1. [사용자 지정 쿡북 업데이트 스택 명령을 실행](workingstacks-commands.md)하여 스택의 인스턴스(온라인 인스턴스 포함)에 사용자 지정 쿡북의 최신 버전을 설치합니다. 쿡북의 이전 버전이 있으면 이 명령이 이전 버전을 덮어 씁니다.

1. 사용자 지정 쿡북 업데이트가 완료되면 **실행할 레시피**가 **windowstest::default**로 설정된 상태에서 [**레시피 실행** 스택 명령](workingstacks-commands.md)을 실행하여 레시피를 실행합니다. 이 명령은 레시피로 구성된 실행 목록을 사용하여 Chef 실행을 시작합니다.

레시피가 성공적으로 실행되면 이를 확인할 수 있습니다.

**windowstest를 확인하려면**

1. [Chef 로그](troubleshoot-debug-log.md)를 확인합니다. opstest1 인스턴스의 **로그** 열에서 **표시**를 선택하여 로그를 표시합니다. 아래로 스크롤하면 맨 아래 근처에 로그 메시지가 보입니다.

   ```
   ...
   [2014-07-31T17:01:45+00:00] INFO: Storing updated cookbooks/opsworks_cleanup/attributes/customize.rb in the cache.
   [2014-07-31T17:01:45+00:00] INFO: Storing updated cookbooks/opsworks_cleanup/metadata.rb in the cache.
   [2014-07-31T17:01:46+00:00] INFO: ******Creating a data directory.******
   [2014-07-31T17:01:46+00:00] INFO: Processing template[/etc/hosts] action create (opsworks_stack_state_sync::hosts line 3)
   ...
   ```

1. **인스턴스**를 선택하고, 인스턴스의 **작업** 열에서 **rdp**를 선택한 다음 적절한 만료 시간을 가진 RDP 비밀번호를 요청합니다. DNS 이름, 사용자 이름 및 암호를 복사합니다. 그런 다음 RDP 클라이언트(예: Windows 원격 데스크톱 연결 클라이언트)에서 해당 정보를 사용해 인스턴스에 로그인하고 `c:\data`가 있는지 확인합니다. 자세한 내용은 [RDP를 사용하여 로그인](workinginstances-rdp.md) 섹션을 참조하세요.

**참고**  
레시피가 올바로 작동하지 않는다면 문제 해결 팁은 [레시피 문제 해결 및 수정](cookbooks-101-opsworks-opsworks-instance.md#cookbooks-101-opsworks-opsworks-instance-bugs) 단원을 참조하세요. Windows 인스턴스에도 대부분 적용됩니다. 인스턴스에서 레시피를 편집하여 수정 사항을 테스트하려면 `C:\chef\cookbooks` 디렉터리에서 쿡북을 찾습니다. 여기서 OpsWorks Stacks는 사용자 지정 쿡북을 설치합니다.

## 자동으로 레시피 실행
<a name="cookbooks-101-opsworks-opsworks-windows-event"></a>

[**레시피 실행**] 명령은 사용자 지정 레시피를 테스트하는 편리한 방법입니다. 이 때문에 다음 예제의 대부분에서 이 명령이 사용됩니다. 그러나 실제로는 인스턴스 부팅이 완료된 후 또는 앱을 배포할 때와 같이 인스턴스 수명 주기의 표준 지점에서 레시피를 실행합니다. OpsWorks Stacks는 설정, 구성, 배포, 배포 취소 및 종료와 같은 각 계층에 대한 [수명 주기 이벤트](workingcookbook-events.md) 세트를 지원하여 인스턴스에서 레시피 실행을 간소화합니다. 레시피를 적절한 수명 주기 이벤트에 할당하여 OpsWorks Stacks가 계층의 인스턴스에서 레시피를 자동으로 실행하도록 할 수 있습니다.

일반적으로는 인스턴스가 부팅을 완료하는 대로 디렉터리를 생성하는데, 이는 설정 이벤트에 해당합니다. 다음 절차는 예제의 이전 단계에서 생성한 것과 동일한 스택을 사용하여 설정 시 예제 레시피를 실행하는 방법을 보여줍니다. 다른 이벤트에도 동일한 절차를 사용할 수 있습니다.

**설정 시 레시피를 자동으로 실행하려면**

1. 탐색 창에서 [**계층**]를 선택한 다음 RecipeTest 계층의 [**레시피**] 링크 옆에 있는 연필 아이콘을 선택합니다.

1. **windowstest::default**을 계층의 **설정** 레시피에 추가하고, **\$1**를 선택하여 계층에 추가하고, **저장**을 선택하여 구성을 저장합니다.

1. [**인스턴스**]를 선택해 계층에 다른 인스턴스를 추가한 다음 시작합니다.

   이 인스턴스의 이름은 `recipetest2`여야 합니다. 부팅이 완료되면 OpsWorks Stacks가를 실행합니다`windowstest::default`.

1. `recipetest2` 인스턴스가 온라인 상태가 되면 `c:\data`가 있는지 확인합니다.

**참고**  
설정, Configure 또는 Deploy 이벤트에 레시피를 할당한 경우 [스택 명령](workingstacks-commands.md)(설정 및 Configure) 또는 [배포 명령](workingapps-deploying.md)(Deploy)을 사용하여 이벤트를 트리거함으로써 수동으로 레시피를 실행할 수도 있습니다. 한 이벤트에 여러 레시피를 할당하면 이러한 명령은 모든 레시피를 실행합니다.