내장 템플릿 재정의 - AWS OpsWorks

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

내장 템플릿 재정의

중요

이 AWS OpsWorks Stacks 서비스는 2024년 5월 26일에 수명이 종료되었으며 신규 및 기존 고객 모두 사용할 수 없습니다. 고객은 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션할 것을 강력히 권장합니다. 마이그레이션에 대해 궁금한 점이 있으면 AWS re:Post 또는 Premium AWS Support를 통해 AWS Support 팀에 문의하세요.

참고

이 주제는 Linux 스택에만 적용됩니다. Windows 스택에서는 템플릿을 재정의할 수 없습니다.

AWS OpsWorks Stacks의 내장 레시피는 템플릿을 사용하여 인스턴스에 파일을 생성하는데, 주로 Apache와 같은 서버용 구성 파일입니다. 예를 들어 apache2 레시피는 apache2.conf.erb 템플릿을 사용하여 Apache 서버의 주 구성 파일 httpd.conf(Amazon Linux) 또는 apache2.conf(Ubuntu)를 생성합니다.

이러한 설정에서 구성 설정은 대부분은 속성으로 표현되므로 해당 내장 속성을 재정하여 구성 파일을 사용자 지정하는 것이 선호되는 방법입니다. 예시는 내장 속성 재정의단원을 참조하세요. 하지만 사용자 지정할 설정이 내장 속성으로 표현되지 않거나 템플릿에 포함되지 않은 경우 템플릿 자체를 재정의해야 합니다. 이 주제에서는 내장 템플릿을 재정의하여 사용자 지정 Apache 구성 설정을 지정하는 방법을 설명합니다.

ErrorDocument 설정을 httpd.conf 파일에 추가하여 Apache에 사용자 지정 오류 응답을 제공할 수 있습니다. 다음 코드에서 보듯이 apache2.conf.erb는 일부 코멘트 아웃된 예제만 포함하고 있습니다.

... # # Customizable error responses come in three flavors: # 1) plain text 2) local redirects 3) external redirects # # Some examples: #ErrorDocument 500 "The server made a boo boo." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://www.example.com/subscription_info.html ...

이러한 설정은 하드코딩된 주석이므로 속성을 재정의하여 사용자 지정 값을 지정할 수 없습니다. 템플릿 자체를 재정의해야 합니다. 하지만 속성과 달리 템플릿 파일의 특정 부분을 재정의할 수는 없습니다. 내장 버전과 동일한 이름으로 사용자 지정 쿡북을 생성하고, 템플릿 파일을 동일한 하위 디렉터리에 복사하고, 필요에 따라 파일을 수정해야 합니다. 이 주제는 apache2.conf.erb를 재정의하여 오류 500에 대한 사용자 지정 응답을 제공하는 방법을 설명합니다. 템플릿 재정의 대한 일반적 설명은 사용자 지정 템플릿 사용 단원을 참조하세요.

중요

내장 템플릿을 재정의하면 내장 레시피가 내장 버전 대신 사용자 지정 버전의 템플릿을 사용합니다. AWS OpsWorks Stacks가 내장 템플릿을 업데이트하면 사용자 지정 템플릿이 동기화되지 않아 제대로 작동하지 않을 수 있습니다. AWS OpsWorks Stacks는 이러한 변경을 자주 하지 않으므로 템플릿이 변경되면 AWS OpsWorks Stacks에 변경 내용이 나열되고 새 버전으로 업그레이드할 수 있는 옵션이 제공됩니다. AWS OpsWorks Stacks 리포지토리에서 변경 사항을 모니터링하고 필요에 따라 사용자 지정 템플릿을 수동으로 업데이트하는 것이 좋습니다. 리포지토리는 지원되는 Chef 버전마다 별도의 브랜치가 있습니다. 따라서 올바른 브랜치에 위치하는지 확인해야 합니다.

시작하려면 사용자 지정 쿡북을 생성합니다.

쿡북을 생성하려면
  1. opsworks_cookbooks 디렉터리 안에 쿡북 디렉터리 apache2를 만들고 그 디렉터리로 이동합니다. 내장 템플릿을 재정의하려면 사용자 지정 쿡북의 이름이 내장 쿡북과 동일해야 합니다(이 경우에는 apache2).

    참고

    내장 속성 재정의 연습을 이미 완료한 경우 이 예제에 동일한 apache2 쿡북을 사용해 2단계를 건너뛸 수 있습니다.

  2. 다음 내용이 포함된 metadata.rb 파일을 만들어 apache2 디렉터리에 저장합니다.

    name "apache2" version "0.1.0"
  3. apache2 디렉터리에서 templates/default 디렉터리를 만듭니다.

    참고

    templates/default 디렉터리는 기본 apache2.conf.erb 템플릿을 사용하는 Amazon Linux 인스턴스에 대해 작동합니다. Ubuntu 14.04 인스턴스는 apache2.conf.erb 디렉터리에 있는 운영 체제별 templates/ubuntu-14.04 템플릿을 사용합니다. Ubuntu 14.04 인스턴스에도 사용자 지정 사항을 적용하려면 해당 템플릿도 재정의해야 합니다.

  4. 내장 apache2.conf.erb 템플릿templates/default 디렉터리에 복사합니다. 템플릿 파일을 열고 ErrorDocument 500 행의 주석 처리를 해제하고 다음과 같이 사용자 지정 오류 메시지를 입력합니다.

    ... ErrorDocument 500 "A custom error message." #ErrorDocument 404 /missing.html ...
  5. opsworks_cookbooks.zip 아카이브를 만들어 opsworks_cookbooks.zip으로 이름을 지정한 다음 해당 파일을 Amazon Simple Storage Service(S3) 버킷에 업로드합니다. 간단하게 설명하기 위해 이 아카이브를 퍼블릭으로 설정합니다. 나중에 사용하기 위해 아카이브의 URL를 적어 둡니다. 프라이빗 Amazon S3 아카이브 또는 기타 리포지토리 유형에 쿡북을 저장할 수도 있습니다. 자세한 내용은 쿡북 리포지토리 섹션을 참조하세요.

    Amazon S3 버킷에 전달한 콘텐츠에는 고객 콘텐츠가 포함될 수 있습니다. 중요 데이터 제거에 관한 자세한 내용은 S3 버킷을 비우려면 어떻게 해야 합니까? 단원 또는 S3 버킷을 삭제하려면 어떻게 해야 합니까? 단원을 참조하세요.

참고

간결한 설명을 위해 이 예제에서는 템플릿에 하드코딩된 오류 메시지를 추가합니다. 이를 변경하려면 템플릿을 수정하고 쿡북을 재설치해야 합니다. 유연성을 높이기 위해 사용자 지정 쿡북의 customize.rb 속성 파일에서 오류 문자열의 기본 사용자 지정 속성을 정의하고 해당 속성의 값을 ErrorDocument 500에 할당할 수 있습니다. 예를 들어 속성을 [:apache][:custom][:error500]으로 명명할 경우 apache2.conf.erb에서 해당 줄이 다음과 같을 것입니다.

... ErrorDocument 500 <%= node[:apache][:custom][:error500] %> #ErrorDocument 404 /missing.html ...

그런 다음 언제라도 [:apache][:custom][:error500]을 재정의하여 사용자 지정 오류 매시지를 변경할 수 있습니다. 사용자 지정 JSON을 사용하여 속성을 재정의하는 경우 쿡북은 손댈 필요조차 없습니다.

사용자 지정 템플릿을 사용하려면 스택을 생성하고 쿡북을 설치합니다.

사용자 지정 템플릿을 사용하려면
  1. AWS OpsWorks Stacks 콘솔을 열고 스택 추가를 선택합니다.

  2. 다음 표준 설정을 지정합니다.

    • 이름 — ApacheTemplate

    • 리전 – 미국 서부(오레곤)

    • 기본 SSH 키 - Amazon Elastic Compute Cloud(Amazon EC2) 키 페어

      Amazon EC2 키 페어를 생성해야 하는 경우 Amazon EC2 키 페어를 참조하세요. 키 페어는 인스턴스와 동일한 AWS 리전에 속해야 합니다.

    [고급>>]를 선택한 다음 [사용자 지정 Chef 쿡북 사용]를 선택하여 다음 설정을 지정합니다.

    • 리포지토리 유형Http Archive

    • 리포지토리 URL - 앞에서 기록해 둔 쿡북 아카이브 URL

    기타 설정에 대해 기본값을 수락하고 [스택 추가]를 선택하여 스택을 생성합니다.

  3. 계층 추가를 선택한 다음 스택에 기본 설정으로 Java 앱 서버 계층을 추가합니다.

  4. 기본 설정을 사용하여 계층에 24/7 인스턴스를 추가한 다음 해당 인스턴스를 시작합니다.

    이 예제에는 t2.micro 인스턴스면 충분합니다.

  5. 인스턴스가 온라인 상태가 되면 SSH를 사용하여 이 인스턴스에 연결합니다. httpd.conf 파일은 /etc/httpd/conf 디렉터리에 있습니다. 이 파일에는 다음과 유사한 사용자 지정 ErrorDocument 설정이 포함되어 있어야 합니다.

    ... # Some examples: ErrorDocument 500 "A custom error message." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 http://www.example.com/subscription_info.html ...