![](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter24/26.png)
24F. OpsWorks 커스텀 Chef 레시피 사용하기
About 2 min
24F. OpsWorks 커스텀 Chef 레시피 사용하기 관련
![](https://pyrasis.com/assets/images/pyrasis.png)
목차
아마존 웹 서비스를 다루는 기술
24장 - 6. OpsWorks 커스텀 Chef 레시피 사용하기
아마존 웹 서비스를 다루는 기술
OpsWorks에서 제공하는 Chef 레시피가 아닌 인터넷에 공개된 Chef 레시피를 사용해보겠습니다.
![OpsWorks에서 커스텀 Chef 레시피를 사용할 때 작업 흐름은 다음과 같습니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter24/26.png)
![Chef 웹사이트는 전 세계 많은 사람이 개발한 Chef 쿡북을 제공합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter24/27_.png)
OpsWorks 스택 페이지에서 위쪽 스택 이름을 클릭하면 팝업 메뉴가 나옵니다.
![<FontIcon icon="iconfont icon-select"/>을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter24/28_.png)
[Add Stack]
을 클릭합니다.OpsWorks 커스텀 스택을 생성합니다.
- Region: EC2 인스턴스가 생성될 리전입니다. Tokyo를 선택합니다.
- Name: 리전을 선택하면 스택 이름을 설정할 수 있습니다. CustomStack을 입력합니다.
- VPC: EC2 인스턴스가 위치할 VPC입니다. 기본값 그대로 사용합니다.
- Default subnet: EC2 인스턴스가 위치할 서브넷입니다. 기본값 그대로 사용합니다.
- Default operating system: EC2 인스턴스에 설치될 운영체제입니다. 기본값 그대로 사용합니다.
- Default root device type: EC2 인스턴스의 Root 스토리지 유형입니다. 기본값 그대로 사용합니다.
- IAM role: OpsWorks의 IAM 역할입니다. 기본값 그대로 사용합니다.
- Default SSH key: EC2 인스턴스에 접속할 때 사용할 키 쌍입니다. 앞에서 생성한 awskeypair를 선택합니다.
- Default IAM instance profile: EC2 인스턴스에 사용할 IAM 역할입니다. 기본값 그대로 사용합니다.
- Hostname theme: EC2 인스턴스에 이름을 붙이는 방식입니다. 과일 이름, 태양계 행성 이름 등을 사용할 수 있습니다. 기본값 그대로 사용합니다.
- Stack color: 스택 상징 색입니다. 사용하고 싶은 색을 선택합니다.
- Chef version: Chef 버전입니다. 기본값 그대로 사용합니다.
- Use custom Chef cookbooks: OpsWorks에서 제공하는 Chef 쿡북 이외에 인터넷에 공개된 Chef 쿡북이나 사용자가 작성한 Chef 쿡북을 사용하는 옵션입니다. Yes를 선택합니다.
- Repository type: Chef 쿡북 저장소 종류입니다. Git을 선택합니다.
- Repository URL: Chef 쿡북 저장소 URL입니다. https://github.com/opscode-cookbooks/getting-started.git를 입력합니다.
- Branch/Revision: Git 저장소에서 특정 브랜치나 리비전을 가져오는 옵션입니다. 기본값 그대로 비워둡니다.
- Manage Berkshelf: Berkshelf로 Chef 쿡북 의존성을 관리해주는 옵션입니다(https://berkshelf.com). 기본값 그대로 사용합니다.
- Custom JSON: Chef 레시피에 넘겨줄 속성(Attribute) 값입니다. 기본값 그대로 비워둡니다.
- Use OpsWorks security groups: OpsWorks용 Security Group을 사용하는 옵션입니다. 기본값 그대로 사용합니다.
![설정이 완료되었으면 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter24/29_.png)
[Add Stack]
버튼을 클릭합니다.OpsWorks 커스텀 스택이 생성되었습니다.
![<FontIcon icon="iconfont icon-select"/>를 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter24/30_.png)
[Add a layer]
를 클릭합니다.OpsWorks 커스텀 레이어를 생성합니다.
- Layer type: 레이어 종류입니다.
[Custom]
을 선택합니다. - Name: OpsWorks에서 표시될 이름입니다.
getting-started
를 입력합니다. - Short name: Chef에서 사용할 이름입니다.
getting-started
를 입력합니다.
![설정이 완료되었으면 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter24/31_.png)
[Add Layer]
버튼을 클릭합니다.OpsWorks 커스텀 레이어가 생성되었습니다.
![레이어의 Recipes를 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter24/32_.png)
getting-started
레이어의 Recipes를 클릭합니다.![Chef 레시피 목록에서 아래 Custom Chef Recipes의 <FontIcon icon="iconfont icon-select"/>를 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter24/33_.png)
[edit]
를 클릭합니다.커스텀 Chef 레시피 편집 화면이 표시됩니다.
- Setup: 인스턴스가 새로 생성되어 부팅될 때 실행됩니다.
- Configure: 인스턴스 상태가 온라인이 되거나 다른 상태로 바뀔 때 실행됩니다.
- Deploy: 배포 명령 때 실행됩니다.
- Undepoly: 인스턴스 삭제, Undeploy 명령 때 실행됩니다.
- Shutdown: 인스턴스가 정지될 때 실행됩니다.
![Setup에 를 입력하고 <FontIcon icon="iconfont icon-select"/>를 클릭합니다. 그리고 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter24/34_.png)
getting-started::default
를 입력하고 [+]
를 클릭합니다. 그리고 [Save]
버튼을 클릭합니다.커스텀 Chef 레시피 설정이 저장되었습니다.
![위쪽 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter24/35_.png)
[Instances]
버튼을 클릭합니다.![.<FontIcon icon="iconfont icon-select"/>를 클릭합니다. 그리고 Size를 로 선택한 뒤 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter24/36_.png)
[Add an Instance]
를 클릭합니다. 그리고 Size를 t1.micro
로 선택한 뒤 [Add Instance]
버튼을 클릭합니다.OpsWorks 인스턴스가 생성되었습니다.
![아직은 정지 상태이므로 <FontIcon icon="iconfont icon-select"/>를 클릭합니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter24/37_.png)
[start]
를 클릭합니다.![잠시 기다리면 인스턴스가 완전히 시작됩니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter24/38_.png)
인스턴스의 Public IP에 SSH로 접속합니다. 그리고 다음 명령을 입력합니다.
sudo vim /root/chef-getting-started.txt
getting-started::default
레시피는 /root/
chef-getting-started.txt
라는 파일을 생성합니다.
![이처럼 표시되면 레시피가 실행된 것입니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter24/39.png)
Chef 레시피를 Setup 등으로 설정하지 않고 [Navigation]
→ [Deployments]
→ [Run Command]
에서 바로 실행할 수도 있습니다.
- Command: Execute Recipes를 선택합니다.
- Recipes to execute: Chef 레시피 이름을 입력합니다.
![Execute Receipes를 클릭하면 Chef 레시피가 인스턴스에서 실행됩니다.](https://pyrasis.com/assets/images/TheArtOfAmazonWebServicesChapter24/40_.png)
Chef 쿡북과 레시피를 작성하는 방법은 따로 설명하지 않겠습니다. getting-started
예제를 기반으로 차근차근 작성해보고, 인터넷에 공개된 Chef 쿡북을 참조하기 바랍니다.