

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

# 쿡북 리포지토리
<a name="workingcookbook-installingcustom-repo"></a>

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

사용자 지정 쿡북은 온라인 리포지토리(.zip 파일과 같은 아카이브 또는 Git과 같은 소스 제어 관리자)에 저장해야 합니다. 각 스택은 사용자 지정 쿡북 리포지토리가 하나만 있을 수 있지만, 리포지토리에는 쿡북을 제한 없이 저장할 수 있습니다. 쿡북을 설치하거나 업데이트할 때 OpsWorks Stacks는 스택의 각 인스턴스에 있는 로컬 캐시에 전체 리포지토리를 설치합니다. 예를 들어 인스턴스가 하나 이상의 레시피를 실행해야 할 경우 로컬 캐시에 저장된 코드를 사용합니다.

다음은 쿡북 리포지토리를 유형에 따라 구성하는 방법을 설명합니다. 그림에서 기울임꼴 텍스트는 리포지토리 또는 아카이브 이름을 포함하여 사용자 정의 디렉터리 및 파일 이름을 나타냅니다.

**소스 제어 관리자**  
OpsWorks Stacks는 다음과 같은 소스 제어 관리자를 지원합니다.  
+ Linux 스택 - Git 및 하위 버전
+ Windows 스택 - Git
다음은 필수 디렉터리 및 파일 구조입니다.  

![\[SCM 쿡북 리포지토리용 필수 구조\]](http://docs.aws.amazon.com/ko_kr/opsworks/latest/userguide/images/cookbook_folders.png)

+ 쿡북 디렉터리는 모두 최상위 수준이어야 합니다.

**아카이브**  
OpsWorks Stacks는 다음 아카이브를 지원합니다.  
+ Linux 스택 - Amazon S3 또는 웹 사이트(HTTP 아카이브)에 저장된 zip, gzip, bzip2 또는 tarball 파일.

  OpsWorks Stacks는 압축되지 않은 tarball을 지원하지 않습니다.
+ Windows 스택 - Amazon S3에 저장된 zip 및 tgz(gzip compressed tar) 파일.
다음은 Linux 스택 또는 Windows 스택에 따른 필수 디렉터리 및 파일 구조입니다. 쿡북 구조는 SCM 리포지토리와 동일하므로 줄임표(...)로 표시되어 있습니다.  

![\[아카이브용 필수 구조\]](http://docs.aws.amazon.com/ko_kr/opsworks/latest/userguide/images/cookbook_folders_archive.png)

+ Linux 스택 - 쿡북 디렉터리가 루트 디렉터리에 포함되어야 합니다.
+ Windows 스택 - 쿡북이 아카이브의 최상위 수준이어야 합니다.

  쿡북이 하나뿐인 경우 선택적으로 쿡북 디렉터리를 생략하고 쿡북 파일을 최상위 수준에 배치할 수 있습니다. 이 경우 OpsWorks Stacks가 metadata.rb에서 쿡북 이름을 가져옵니다.

각 쿡북 디렉터리는 다음의 표준 디렉터리 및 파일을 하나 이상 포함하며(일반적으로 모두 포함) 각 디렉터리 및 파일은 표준 이름을 사용해야 합니다.
+ `attributes` – 쿡북의 속성 파일.
+ `recipes` – 쿡북의 레시피 파일.
+ `templates` – 쿡북의 템플릿 파일.
+ *기타* – 정의 또는 사양과 같은 기타 파일 형식이 저장되는 선택적 사용자 정의 디렉터리.
+ `metadata.rb` – 쿡북의 메타데이터.

  Chef 11.10 이상의 경우 레시피가 다른 쿡북에 기반하는 경우 쿡북의 `depends` 파일에 해당 `metadata.rb` 문을 포함시켜야 합니다. 예를 들어 쿡북에 `include_recipe anothercookbook::somerecipe` 같은 문을 사용하는 레시피가 있는 경우 쿡북의 `metadata.rb` 파일에 `depends "anothercookbook"` 행이 있어야 합니다. 자세한 정보는 [About Cookbook Metadata](http://docs.chef.io/cookbook_repo.html#about-cookbook-metadata)를 참조하세요.

템플릿은 `templates` 디렉터리의 하위 디렉터리에 위치해야 하며, 이 디렉터리는 하나 이상의 하위 디렉터리를 포함합니다(선택적으로 여러 개의 하위 디렉터리를 포함할 수 있음). 각 하위 디렉터리도 하위 디렉터리를 포함할 수 있습니다.
+ 템플릿은 일반적으로 `default` 하위 디렉터리를 포함하며, 이 하위 디렉터리에는 Chef가 기본적으로 사용하는 템플릿 파일이 저장됩니다.
+ *other*는 운영 체제별 템플릿에 사용할 수 있는 선택적 하위 디렉터리를 나타냅니다.
+ Chef는 [File Specificity](http://docs.chef.io/templates.html#file-specificity)에 기술된 명명 규칙에 따라 적절한 하위 디렉터리의 템플릿을 자동으로 사용합니다. 예를 들어 Linux 및 운영 체제의 경우 각각 `amazon`amazon 또는 `ubuntu`ubuntu 하위 디렉터리에 운영 체제별 템플릿을 배치할 수 있습니다.

사용자 지정 쿡북을 처리하는 세부 절차는 사용하는 리포지토리 유형에 따라 달라집니다.

**아카이브를 사용하려면**

1. 이전 섹션에서 표시된 폴더 구조를 사용하여 쿡북을 구현합니다.

1. 압축된 아카이브를 생성하여 Amazon S3 버킷 또는 웹 사이트에 업로드합니다.

   쿡북을 업데이트하는 경우 새 아카이브 파일을 생성해 업로드해야 합니다. 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) 단원을 참조하세요.

**SCM을 사용하려면**

1. 앞서 표시된 구조를 사용하여 Git 또는 하위 버전 리포지토리를 설정합니다.

1. 경우에 따라 리포지토리의 버전 관리 기능을 사용하여 여러 브랜치 또는 버전을 구현합니다.

   쿡북을 업데이트하는 경우 새 브랜치에서 업데이트할 수 있는데 OpsWorks에 새 버전을 사용하도록 지시하기만 하면 됩니다. 또한 태그가 지정된 특정 버전을 지정할 수도 있습니다. 자세한 내용은 [사용자 지정 쿡북 리포지토리 지정](workingcookbook-installingcustom-enable.md#workingcookbook-installingcustom-enable-repo)을 참조하세요.

[사용자 지정 쿡북 설치](workingcookbook-installingcustom-enable.md) 에서는 Stacks가 스택의 인스턴스에 OpsWorks 쿡북 리포지토리를 설치하도록 하는 방법을 설명합니다.

**중요**  
리포지토리의 기존 쿡북을 업데이트한 후에는 `update_cookbooks` 스택 명령을 실행하여 OpsWorks Stacks에 각 온라인 인스턴스의 로컬 캐시를 업데이트하도록 지시해야 합니다. 자세한 내용은 [스택 명령 실행](workingstacks-commands.md) 단원을 참조하십시오.