Windows 인스턴스에서 레시피 실행 - AWS OpsWorks

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

Windows 인스턴스에서 레시피 실행

중요

이 AWS OpsWorks Stacks 서비스는 2024년 5월 26일에 수명이 종료되었으며 신규 고객과 기존 고객 모두 사용할 수 없습니다. 고객은 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션할 것을 강력히 권장합니다. 마이그레이션에 대해 궁금한 점이 있으면 AWS re:Post 또는 Premium AWS Support를 통해 AWS Support 팀에 문의하세요.

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

AWS OpsWorks Stacks Linux 인스턴스에서 레시피를 실행하는 방법에 대한 설명은 을 참조하십시오. Linux 인스턴스에서 레시피 실행

RDP 액세스 활성화

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

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

RDP 액세스를 허용하려면
  1. Amazon EC2 콘솔을 열고, 콘솔을 스택의 리전으로 설정한 다음, 탐색 창에서 보안 그룹을 선택합니다.

  2. AWS- OpsWorks -RDP-Server를 선택하고 인바운드 탭을 선택한 다음 편집을 선택합니다.

  3. 다음 설정으로 규칙을 추가합니다.

    • 유형RDP

    • 소스 – 허용 가능한 소스 IP 주소.

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

참고

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

자세한 내용은 RDP를 사용하여 로그인 섹션을 참조하세요.

레시피 생성 및 실행

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

스택을 만듭니다
  1. AWS OpsWorks Stacks 콘솔을 열고 스택 추가를 선택합니다. 다음 설정을 지정하고, 그 외 설정에 대해서는 기본값을 수락한 다음 [스택 추가]를 선택합니다.

    • 이름 — WindowsRecipeTest

    • 리전 – 미국 서부(오레곤)

      이 예제는 모든 리전에서 작동하지만 자습서의 경우 미국 서부(오레곤)를 사용하는 것이 좋습니다.

    • 기본 운영 체제 - Microsoft Windows Server 2012 R2

  2. [계층 추가]를 선택하여 스택에 다음 설정으로 사용자 지정 계층을 추가합니다.

    • 이름 — RecipeTest

    • 짧은 이름 - recipetest

  3. 기본 설정이 적용된 연중무휴 인스턴스를 RecipeTest 레이어에 추가하고 시작합니다.

    AWS OpsWorks 스택은 이 인스턴스에 자동으로 AWS-OpsWorks-RDP-Server 할당되며, 이를 통해 인증된 사용자가 인스턴스에 로그인할 수 있습니다.

  4. [권한] 및 [편집]을 차례대로 선택하고 [SSH/RDP] 및 [sudo/admin]을 선택합니다. 인스턴스에 로그인하려면 일반 사용자에게는 AWS-OpsWorks-RDP-Server 보안 그룹 이외에 이러한 권한 부여가 필요합니다.

    참고

    Administrator로도 로그인할 수 있지만 로그인 절차가 다릅니다. 자세한 내용은 RDP를 사용하여 로그인 섹션을 참조하세요.

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

참고

AWS OpsWorks Stacks Windows 인스턴스용 쿡북을 구현할 때는 Stacks Linux 인스턴스용 쿡북을 구현할 때와는 다소 다른 디렉터리 구조를 사용합니다. AWS OpsWorks 자세한 정보는 쿡북 리포지토리을 참조하세요.

쿡북을 설정하려면
  1. windowstest 하위 디렉터리를 만들고 그 디렉터리로 이동합니다.

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

    name "windowstest" version "0.1.0"
  3. recipes 안에 windowstest 디렉터리를 만듭니다.

  4. 다음 레시피가 포함된 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을 사용자 이름으로 바꿉니다.

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

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

  6. 아카이브를 S3 버킷에 업로드하고, 해당 아카이브를 퍼블릭으로 설정한 다음, 아카이브의 URL을 적어 둡니다. 또한 프라이빗 아카이브를 사용할 수도 있지만 이 예제에는 퍼블릭 아카이브면 충분합니다. 퍼블릭 아카이브가 작업하기 더 간단합니다.

    Amazon S3 버킷에 전달한 콘텐츠에는 고객 콘텐츠가 포함될 수 있습니다. 중요 데이터 제거에 관한 자세한 내용은 S3 버킷을 비우려면 어떻게 해야 합니까? 단원 또는 S3 버킷을 삭제하려면 어떻게 해야 합니까? 단원을 참조하세요.

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

레시피를 실행하려면
  1. 스택을 편집해 사용자 지정 쿡북을 활성화하고 다음 설정을 지정합니다.

    • 리포지토리 유형S3 아카이브

    • 리포지토리 URL - 앞에서 기록해 둔 쿡북 아카이브 URL

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

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

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

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

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

참고

레시피가 올바로 작동하지 않는다면 문제 해결 팁은 레시피 문제 해결 및 수정 단원을 참조하세요. Windows 인스턴스에도 대부분 적용됩니다. 인스턴스에서 레시피를 편집하여 수정 사항을 테스트하려면 Stacks가 사용자 지정 쿡북을 설치하는 C:\chef\cookbooks 디렉토리에서 쿡북을 찾아보세요. AWS OpsWorks

자동으로 레시피 실행

[레시피 실행] 명령은 사용자 지정 레시피를 테스트하는 편리한 방법입니다. 이 때문에 다음 예제의 대부분에서 이 명령이 사용됩니다. 하지만 실제로는 일반적으로 인스턴스 수명 주기의 표준 시점 (예: 인스턴스 부팅이 끝난 후 또는 앱을 배포할 때) 에 레시피를 실행합니다. AWS OpsWorks 스택은 설치, 구성, 배포, 배포 취소, 종료 등 각 계층에 대한 일련의 수명 주기 이벤트를 지원하여 인스턴스에서 레시피를 간단하게 실행할 수 있습니다. 적절한 라이프사이클 이벤트에 레시피를 할당하여 AWS OpsWorks 스택이 레이어의 인스턴스에서 레시피를 자동으로 실행하도록 할 수 있습니다.

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

설정 시 레시피를 자동으로 실행하려면
  1. 탐색 창에서 레이어를 선택한 다음 레이어의 레시피 링크 옆에 있는 연필 아이콘을 선택합니다. RecipeTest

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

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

    이 인스턴스의 이름은 recipetest2여야 합니다. 부팅이 완료되면 AWS OpsWorks 스택이 실행됩니다. windowstest::default

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

참고

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