

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

# 쿡북 101
<a name="cookbooks-101"></a>

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

프로덕션 수준 OpsWorks Stacks 스택에는 일반적으로 일부 [사용자 지정](customizing.md)이 필요합니다. 즉, 하나 이상의 레시피, 속성 파일 또는 템플릿 파일을 사용하여 사용자 지정 Chef 쿡북을 구현하는 경우가 많습니다. 이 주제는 Stacks용 쿡북 구현에 대한 OpsWorks 자습서 소개입니다.

Stacks가 OpsWorks 쿡북을 사용하는 방법에 대한 자세한 내용은 단원을 참조하십시오[쿡북과 레시피](workingcookbook.md). Chef 레시피를 구현하고 테스트하는 방법에 대한 자세한 정보는 [Chef를 사용한 인프라 테스트 드라이브, 2판](https://www.amazon.com/Test-Driven-Infrastructure-Chef-Behavior-Driven-Development/dp/1449372201/ref=sr_1_fkmr0_1?ie=UTF8&qid=1405556803&sr=8-1-fkmr0&keywords=Test-Driven+Infrastructure+with+Chef%2C+2nd+Edition) 단원을 참조하세요.

이 자습서의 예제는 다음 두 부분으로 나뉩니다.
+  [쿡북 기본 사항](cookbooks-101-basics.md)는 Chef에 익숙하지 않은 사용자를 위한 예제 안내서입니다. 경험이 많은 Chef 사용자는 이 섹션을 건너뛰어도 됩니다.

  이 예제는 패키지 설치 또는 디렉터리 생성 등 일반적인 작업을 수행하기 위해 쿡북을 구현하는 방법의 기초를 안내합니다. 프로세스를 간단히 하기 위해 [Vagrant](http://docs.vagrantup.com/v2/)와 [Test Kitchen](http://kitchen.ci/)이라는 유용한 도구 2개를 사용하여 예제 대부분을 가상 머신에서 로컬로 실행하게 됩니다. [쿡북 기본 사항](cookbooks-101-basics.md)를 시작하기에 앞서 이들 도구의 설치 및 사용 방법을 배우기 위해 먼저 [Vagrant와 Test Kitchen](#cookbooks-101-tools)를 읽어야 합니다. Test Kitchen은 아직 Windows를 지원하지 않기 때문에 예제는 모두 Linux용이며 Windows에 맞게 조정하는 방법을 알려주는 참고가 포함되어 있습니다.
+ [OpsWorks 스택용 쿡북 구현](cookbooks-101-opsworks.md) 에서는 Windows 스택용 OpsWorks 를 포함하여 Stacks용 레시피를 구현하는 방법을 설명합니다.

  Berkshelf를 사용하여 외부 쿡북을 관리하는 방법 등 몇 가지 고급 s도 포함되어 있습니다. 예제는 [쿡북 기본 사항](cookbooks-101-basics.md)의 예제처럼 Chef가 처음인 사용자들을 위해 작성되었습니다. 그러나 OpsWorks Stacks는 Chef 서버와 약간 다르게 작동하므로 숙련된 Chef 사용자는 최소한이 섹션을 읽어보는 것이 좋습니다.



## Vagrant와 Test Kitchen
<a name="cookbooks-101-tools"></a>

Linux 인스턴스용 레시피 작업을 하는 경우, Vagrant와 Test Kitchen은 학습과 초기 개발 및 테스트에 매우 유용한 도구입니다. 이것은 Vagrant와 Test Kitchen을 간략히 설명하고 기본적인 도구 사용 방법을 시작하고 익힐 수 있는 설치 지침과 안내서를 제공합니다. Vagrant는 Windows를 지원하지만 Test Kitchen은 지원하지 않으므로 이 도구들의 경우, Linux 예제만 나와 있습니다.



### Vagrant
<a name="cookbooks-101-tools-vagrant"></a>

[Vagrant](http://docs.vagrantup.com/v2/)는 가상 머신에서 코드를 실행하고 테스트할 수 있는 일관된 환경을 제공합니다. Vagrant 박스라고 하는 다양한 환경을 지원하며, 각 환경은 구성된 운영 체제를 나타냅니다. OpsWorks Stacks의 경우 관심 환경은 Ubuntu, Amazon 또는 Red Hat Enterprise Linux(RHEL) 배포를 기반으로 하므로 예제에서는 주로 라는 Vagrant 상자를 사용합니다`opscode-ubuntu-12.04`.

Vagrant는 Linux, Windows, Macintosh 시스템에서 사용 가능하므로 원하는 워크스테이션을 사용하여 지원되는 어떤 운영 체제에서도 레시피를 구현하고 테스트할 수 있습니다. 이 장의 예제는 Ubuntu Linux 시스템에서 작성되었지만 Windows 또는 Macintosh 시스템에도 간단히 적용할 수 있습니다.

Vagrant는 기본적으로 가상화 공급자용 래퍼입니다. 대부분의 예제는 [VirtualBox](https://www.virtualbox.org/) 공급자를 사용합니다. VirtualBox는 무료이며 Linux, Windows, Macintosh 시스템에서 사용할 수 있습니다. 아직 시스템에 VirtualBox이 설치되어 있지 않은 경우, Vagrant 안내서에 설치 지침이 나와 있습니다. VirtualBox에서 Ubuntu 기반 환경을 실행할 수 있지만 Amazon Linux는 Amazon EC2 인스턴스에만 사용할 수 있습니다. 다만 CentOS와 같은 유사한 운영 체제는 VirtualBox에서 실행할 수 있어 초기 개발과 테스트에 유용합니다.

다른 공급자에 대해서는 [Vagrant](http://docs.vagrantup.com/v2/) 설명서를 참조하세요. 특히 `vagrant-aws` 플러그인 공급자를 사용하면 Amazon EC2 인스턴스에 Vagrant를 사용할 수 있습니다. 이 공급자는 Amazon EC2 인스턴스에서만 사용할 수 있는 Amazon Linux에서 레시피를 테스트하는 데 특히 유용합니다. `vagrant-aws` 공급자는 무료이지만 AWS 계정이 있어야 하며, 사용하는 AWS 리소스에 대한 요금을 지불해야 합니다.

이 시점에서 워크스테이션에 Vagrant를 설치하는 방법을 설명하고 Vagrant의 기본적 사용 방법을 알려 주는 Vagrant [시작하기 안내서](http://docs.vagrantup.com/v2/getting-started/index.html)를 읽어야 합니다. 이 장의 예제는 Git 리포지토리를 사용하지 않기 때문에 원한다면 안내서에서 해당 부분은 생략해도 됩니다.

### Test Kitchen
<a name="cookbooks-101-tools-test-kitchen"></a>

[Test Kitchen](http://kitchen.ci/)은 Vagrant에서 쿡북을 실행하고 테스트하는 프로세스를 간소화합니다. 실제로는 직접 Vagrant를 사용할 일은 거의 없습니다. 다음을 비롯한 대부분의 일반적 작업은 Test Kitchen이 수행합니다.
+ Vagrant에서 인스턴스 시작.
+ 쿡북을 인스턴스로 이전.
+ 인스턴스에서 쿡북의 레시피 실행.
+ 인스턴스에서 쿡북의 레시피 테스트.
+ SSH를 사용하여 인스턴스에 로그인.

Test Kitchen gem을 직접 설치하는 대신 [Chef DK](https://www.chef.io/downloads)를 설치하는 것이 좋습니다. 이 패키지에는 Chef 외에도 Test Kitchen, [Berkshelf](http://berkshelf.com/), [ChefSpec](https://docs.chef.io/chefspec.html) 및 유용한 그 밖의 몇 가지 도구가 포함되어 있습니다.

이 시점에서 Test Kitchen을 사용하여 레시피를 실행하고 테스트하는 방법을 알려 주는 Test Kitchen [시작하기 안내서](http://kitchen.ci/)를 읽어야 합니다.

**참고**  
이 장의 예제에서는 레시피를 실행하는 편리한 방법으로 Test Kitchen을 사용합니다. 원한다면 예제에 대해 알아야 할 모든 내용을 다루고 있는 수동으로 확인(Manually Verifying) 섹션을 마친 다음 시작하기 안내서를 중단해도 됩니다. 하지만 Test Kitchen은 일차적으로 [bash automated test system(BATS)](https://github.com/sstephenson/bats) 같은 테스트 프레임워크를 지원하는 테스트 플랫폼입니다. 일정 시점이 되면 안내서의 나머지 부분을 끝마쳐 Test Kitchen을 사용해 레시피를 테스트하는 방법을 배워야 합니다.