Chef 11.4 스택용 레시피 구현 - AWS OpsWorks

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

Chef 11.4 스택용 레시피 구현

중요

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

중요

내장 쿡북 이름을 사용자 지정 또는 커뮤니티 쿡북에 재사용하지 마십시오. 내장 쿡북과 이름이 동일한 사용자 지정 쿡북은 실패할 수 있습니다. Chef 11.10, 11.4 및 0.9 스택에서 사용할 수 있는 내장 쿡북의 전체 목록은 opsworks-cookbooks repository on GitHub를 참조하세요.

Chef 11.4 스택의 기본적인 제약은 Chef 검색 또는 데이터 백을 사용할 수 없다는 점입니다. 그러나 AWS OpsWorks Stacks는 다음을 포함하여 검색으로 얻을 수 있는 많은 정보가 포함된 스택 구성 및 배포 속성을 각 인스턴스에 설치합니다.

  • 콘솔로부터의 사용자 정의 데이터, 예: 호스트 또는 앱 이름

  • 스택의 계층, 앱 및 인스턴스와 같은 AWS OpsWorks Stacks 서비스에서 생성된 스택 구성 데이터 및 IP 주소와 같은 각 인스턴스에 대한 세부 정보입니다.

  • 사용자가 제공한 데이터를 포함하고 데이터 백과 거의 같은 용도로 사용할 수 있는 사용자 지정 JSON 속성

AWS OpsWorks Stacks는 이벤트의 Chef 실행을 시작하기 전에 각 수명 주기 이벤트의 각 인스턴스에 스택 구성 및 배포 속성의 현재 버전을 설치합니다. 데이터는 표준 node[:attribute][:child_attribute][...] 구문을 통해 레시피에 제공됩니다. 예를 들어 스택 구성 및 배포 속성에는 스택 이름 node[:opsworks][:stack][:name]이 포함됩니다.

내장 레시피 중 하나에서 발췌된 다음 코드는 스택 이름을 가져오고 이를 사용하여 구성 파일을 생성합니다.

template '/etc/ganglia/gmetad.conf' do source 'gmetad.conf.erb' mode '0644' variables :stack_name => node[:opsworks][:stack][:name] notifies :restart, "service[gmetad]" end

스택 구성 및 배포 속성 값이 여러 속성을 포함하는 경우가 많습니다. 필요한 정보를 얻으려면 이들 속성을 반복적으로 처리해야 합니다. 아래 예제는 스택 구성 및 배포 속성에서 발췌된 코드로, 편의상 JSON 객체로 표현되어 있습니다. 여기에는 최상위 속성 deploy이 포함되어 있습니다. 이 속성은 스택의 각 앱의 속성과 앱의 짧은 이름을 제공합니다.

{ ... "deploy": { "app1_shortname": { "document_root": "app1_root", "deploy_to": "deploy_directory", "application_type": "php", ... }, "app2_shortname": { "document_root": "app2_root", ... } }, ... }

각 앱 속성은 앱의 특징을 나타내는 속성 세트를 포함합니다. 예를 들어 deploy_to 속성은 앱의 배포 디렉터리를 나타냅니다. 다음 코드는 각 앱의 배포 디렉터리에 대해 사용자, 그룹 및 경로를 설정합니다.

node[:deploy].each do |application, deploy| opsworks_deploy_dir do user deploy[:user] group deploy[:group] path deploy[:deploy_to] end ... end

스택 구성 및 배포 속성에 대한 자세한 정보는 AWS OpsWorks 스택 사용자 지정 단원을 참조하세요. 배포 디렉터리에 대한 자세한 정보는 Deploy 레시피 단원을 참조하세요.

Chef 11.4 스택은 데이터 백을 지원하지 않습니다. 하지만 사용자가 사용자 지정 JSON을 지정하여 스택 구성 및 배포 속성에 임의의 데이터를 추가할 수 있습니다. 그러면 레시피가 표준 Chef 노드 구문을 사용하여 데이터에 액세스할 수 있습니다. 자세한 내용은 사용자 지정 JSON 사용 단원을 참조하십시오.

암호화된 데이터 백의 기능이 필요할 경우 한 가지 옵션은 민감한 속성을 프라이빗 Amazon S3 버킷 같은 안전한 위치에 저장하는 것입니다. 그러면 레시피가 모든 AWS OpsWorks Stacks 인스턴스에 설치된 AWS Ruby SDK를 사용하여 버킷에서 데이터를 다운로드할 수 있습니다.

참고

각 AWS OpsWorks Stacks 인스턴스에는 인스턴스 프로파일이 있습니다. 연결된 IAM 역할은 인스턴스에서 실행되는 애플리케이션이 어떤 AWS 리소스에 액세스할 수 있는지를 지정합니다. 레시피가 Amazon S3 버킷에 액세스하려면 역할의 정책이 다음과 같은 문장을 포함해야 합니다. 이 문장은 지정된 버킷에서 파일을 검색할 수 있는 권한을 부여합니다.

"Action": ["s3:GetObject"], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",

인스턴스 프로파일에 대한 자세한 정보는 EC2 인스턴스에서 실행되는 앱에 대한 권한 지정 단원을 참조하세요.