

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

# 16단계: 커뮤니티 쿡북을 사용하도록 쿡북 업데이트
<a name="gettingstarted-cookbooks-community-cookbooks"></a>

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

마지막으로 Chef 커뮤니티가 제공하는 외부 쿡북에 있는 기능을 사용하도록 쿡북을 업데이트합니다. 이 안내서에서 사용할 외부 쿡북은 외부 Chef 쿡북에 액세스할 수 있는 인기 있는 위치인 [Chef Supermarket](https://supermarket.chef.io/)을 통해 얻을 수 있습니다. 이 외부 쿡북은 [4단계: 패키지를 설치하도록 쿡북 업데이트](gettingstarted-cookbooks-install-package.md)에서와 비슷하게 애플리케이션을 다운로드하고 설치할 수 있도록 해 주는 사용자 지정 리소스를 제공합니다. 다만 이 리소스는 패키지 외에 웹 애플리케이션과 그 밖의 애플리케이션 유형을 설치할 수 있습니다.

쿡북이 다른 쿡북에 의존하는 경우에는 다른 쿡북에 대한 종속성을 지정해야 합니다. 쿡북 종속성을 선언하고 관리하기 위해서는 Berkshelf라는 도구를 사용하는 것이 좋습니다. 로컬 워크스테이션에서 Berkshelf를 설치하는 방법에 대한 자세한 내용은 Chef 웹 사이트의 [About Berkshelf](https://docs.chef.io/berkshelf.html)를 참조하세요.

Berkshelf를 설치한 후 다음 절차에 따라 쿡북 종속성을 선언한 다음 외부 쿡북의 리소스를 호출하는 레시피를 만듭니다.

**쿡북 종속성을 선언하려면**

1. 로컬 워크스테이션의 `opsworks_cookbook_demo` 디렉터리에서 `metadata.rb` 파일의 끝에 다음 행을 추가합니다.

   ```
   depends "application", "5.0.0"
   ```

   이 행은 `application`, 버전 5.0.0 쿡북에 대한 종속성을 선언합니다.

1. `opsworks_cookbook_demo` 디렉터리의 루트에서 다음 명령을 실행합니다. 명령 끝의 마침표는 의도적인 것입니다.

   ```
   berks init .
   ```

   Berkshelf에서는 이후에 보다 고급 시나리오에 사용할 수 있는 여러 폴더 및 파일을 생성합니다. 이 연습에 필요한 유일한 파일은 `Berksfile`입니다.

1. `Berksfile` 파일 끝부분에서 다음 행을 추가합니다.

   ```
   cookbook "application", "5.0.0"
   ```

   이 행은 Berkshelf에 [애플리케이션 쿡북 버전 5.0.0](https://supermarket.chef.io/cookbooks/application/versions/5.0.0)을 사용하려고 함을 알립니다. Berkshelf는 Chef Supermarket에서 이 버전을 다운로드합니다.

1. 터미널 또는 명령 프롬프트에서 `opsworks_cookbook_demo` 디렉터리의 루트에서 다음 명령을 실행합니다.

   ```
   berks install
   ```

   Berkshelf에서는 사용자 쿡북 및 애플리케이션 쿡북 둘 다에 대한 종속성 목록을 생성합니다. Berkshelf는 다음 절차에서 이 종속성 목록을 사용합니다.

**인스턴스에서 쿡북을 업데이트하고 새 레시피를 실행하려면**

1. `recipes` 디렉터리의 `opsworks_cookbook_demo` 하위 디렉터리에 다음 코드가 포함된 `dependencies_demo.rb` 파일을 생성합니다.

   ```
   application "Install NetHack" do
     package "nethack.x86_64"
   end
   ```

   이 레시피는 애플리케이션 쿡북의 애플리케이션 리소스에 따라 인스턴스에 유명한 텍스트 기반 어드벤처 게임인 NetHack을 설치합니다. 물론, 인스턴스에서 패키지를 패키지 관리자에 쉽게 사용할 수 있는 경우 원하는 다른 패키지 이름으로 대체할 수 있습니다.

1. `opsworks_cookbook_demo` 디렉터리의 루트에서 다음 명령을 실행합니다.

   ```
   berks package
   ```

   Berkshelf에서는 이전 절차에서 생성한 종속성 목록을 사용하여 `cookbooks-timestamp.tar.gz` 파일을 만듭니다. 이 파일에는 `opsworks_cookbook_demo` 디렉터리와 쿡북의 종속 쿡북을 비롯한 업데이트된 콘텐츠가 들어 있습니다. 이 파일의 이름을 `opsworks_cookbook_demo.tar.gz`으로 바꿉니다.

1. 업데이트되어 이름이 바뀐 `opsworks_cookbook_demo.tar.gz` 파일을 S3 버킷에 업로드합니다.

1. [5단계: 인스턴스에서 쿡북을 업데이트하고 레시피 실행](gettingstarted-cookbooks-copy-cookbook.md) 단원의 절차에 따라 인스턴스에서 쿡북을 업데이트하고 레시피를 실행합니다. "레시피 실행" 절차에서 **실행할 레시피**에 **opsworks\$1cookbook\$1demo::dependencies\$1demo**를 입력합니다.

1. 이 레시피를 실행하면 인스턴스에 로그인할 수 있어야 합니다. 그런 다음 명령 프롬프트에 **nethack**을 입력해 실행을 시작합니다. 이 게임에 대한 자세한 정보는 [NetHack](https://en.wikipedia.org/wiki/NetHack) 및 [NetHack 가이드북](http://www.nethack.org/v343/Guidebook.html) 단원을 참조하세요.

[다음 단계에서](gettingstarted-cookbooks-clean-up.md)는이 연습에 사용한 AWS 리소스를 정리할 수 있습니다. 이 다음 단계는 선택 사항입니다. OpsWorks Stacks에 대해 계속 자세히 알아볼 때 이러한 AWS 리소스를 계속 사용할 수 있습니다. 그러나 이러한 AWS 리소스를 주변에 보관하면 AWS 계정에 요금이 계속 부과될 수 있습니다. 나중에 사용할 수 있도록 이러한 AWS 리소스를 계속 유지하려면 이제이 연습을 완료했으며 로 건너뛸 수 있습니다[다음 단계](gettingstarted-cookbooks-next-steps.md).