Skip to main content

24F. OpsWorks 커스텀 Chef 레시피 사용하기

About 2 minAWScrashcoursepyrasisawsamazon-web-services

24F. OpsWorks 커스텀 Chef 레시피 사용하기 관련

목차

아마존 웹 서비스를 다루는 기술

24장 - 6. OpsWorks 커스텀 Chef 레시피 사용하기

아마존 웹 서비스를 다루는 기술

OpsWorks에서 제공하는 Chef 레시피가 아닌 인터넷에 공개된 Chef 레시피를 사용해보겠습니다.

OpsWorks에서 커스텀 Chef 레시피를 사용할 때 작업 흐름은 다음과 같습니다.
OpsWorks에서 커스텀 Chef 레시피를 사용할 때 작업 흐름은 다음과 같습니다.
Chef 웹사이트는 전 세계 많은 사람이 개발한 Chef 쿡북을 제공합니다.
Chef 웹사이트는 전 세계 많은 사람이 개발한 Chef 쿡북을 제공합니다.

OpsWorks 스택 페이지에서 위쪽 스택 이름을 클릭하면 팝업 메뉴가 나옵니다.

<FontIcon icon="iconfont icon-select"/>을 클릭합니다.
[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.comopen in new window). 기본값 그대로 사용합니다.
  • Custom JSON: Chef 레시피에 넘겨줄 속성(Attribute) 값입니다. 기본값 그대로 비워둡니다.
  • Use OpsWorks security groups: OpsWorks용 Security Group을 사용하는 옵션입니다. 기본값 그대로 사용합니다.
설정이 완료되었으면 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.
설정이 완료되었으면 [Add Stack] 버튼을 클릭합니다.

OpsWorks 커스텀 스택이 생성되었습니다.

<FontIcon icon="iconfont icon-select"/>를 클릭합니다.
[Add a layer]를 클릭합니다.

OpsWorks 커스텀 레이어를 생성합니다.

  • Layer type: 레이어 종류입니다. [Custom]을 선택합니다.
  • Name: OpsWorks에서 표시될 이름입니다. getting-started를 입력합니다.
  • Short name: Chef에서 사용할 이름입니다. getting-started를 입력합니다.
설정이 완료되었으면 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.
설정이 완료되었으면 [Add Layer] 버튼을 클릭합니다.

OpsWorks 커스텀 레이어가 생성되었습니다.

 레이어의 Recipes를 클릭합니다.
getting-started 레이어의 Recipes를 클릭합니다.
Chef 레시피 목록에서 아래 Custom Chef Recipes의 <FontIcon icon="iconfont icon-select"/>를 클릭합니다.
Chef 레시피 목록에서 아래 Custom Chef Recipes의 [edit]를 클릭합니다.

커스텀 Chef 레시피 편집 화면이 표시됩니다.

  • Setup: 인스턴스가 새로 생성되어 부팅될 때 실행됩니다.
  • Configure: 인스턴스 상태가 온라인이 되거나 다른 상태로 바뀔 때 실행됩니다.
  • Deploy: 배포 명령 때 실행됩니다.
  • Undepoly: 인스턴스 삭제, Undeploy 명령 때 실행됩니다.
  • Shutdown: 인스턴스가 정지될 때 실행됩니다.
Setup에 를 입력하고 <FontIcon icon="iconfont icon-select"/>를 클릭합니다. 그리고 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.
Setup에 getting-started::default를 입력하고 [+]를 클릭합니다. 그리고 [Save] 버튼을 클릭합니다.

커스텀 Chef 레시피 설정이 저장되었습니다.

위쪽 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.
위쪽 [Instances] 버튼을 클릭합니다.
.<FontIcon icon="iconfont icon-select"/>를 클릭합니다. 그리고 Size를 로 선택한 뒤 <FontIcon icon="iconfont icon-select"/> 버튼을 클릭합니다.
.[Add an Instance]를 클릭합니다. 그리고 Size를 t1.micro로 선택한 뒤 [Add Instance] 버튼을 클릭합니다.

OpsWorks 인스턴스가 생성되었습니다.

아직은 정지 상태이므로 <FontIcon icon="iconfont icon-select"/>를 클릭합니다.
아직은 정지 상태이므로 [start]를 클릭합니다.
잠시 기다리면 인스턴스가 완전히 시작됩니다.
잠시 기다리면 인스턴스가 완전히 시작됩니다.

인스턴스의 Public IP에 SSH로 접속합니다. 그리고 다음 명령을 입력합니다.

sudo vim /root/chef-getting-started.txt

getting-started::default 레시피는 /root/chef-getting-started.txt라는 파일을 생성합니다.

이처럼 표시되면 레시피가 실행된 것입니다.
이처럼 표시되면 레시피가 실행된 것입니다.

Chef 레시피를 Setup 등으로 설정하지 않고 [Navigation][Deployments][Run Command]에서 바로 실행할 수도 있습니다.

  • Command: Execute Recipes를 선택합니다.
  • Recipes to execute: Chef 레시피 이름을 입력합니다.
Execute Receipes를 클릭하면 Chef 레시피가 인스턴스에서 실행됩니다.
Execute Receipes를 클릭하면 Chef 레시피가 인스턴스에서 실행됩니다.

Chef 쿡북과 레시피를 작성하는 방법은 따로 설명하지 않겠습니다. getting-started 예제를 기반으로 차근차근 작성해보고, 인터넷에 공개된 Chef 쿡북을 참조하기 바랍니다.


이찬희 (MarkiiimarK)
Never Stop Learning.