Configure 레시피 - AWS OpsWorks

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

Configure 레시피

중요

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

Configure 레시피는 계층의 Configure 수명 주기 이벤트에 할당됩니다. 이 이벤트는 특정 인스턴스가 온라인 상태로 전환되거나 해제될 때마다 스택의 모든 인스턴스에서 발생합니다. 변경 사항에 대응하여 적절히 인스턴스의 구성을 조정하려면 Configure 레시피를 사용합니다. Configure 레시피를 구현할 때 스택 구성 변경이 이 계층과 관계가 없는 인스턴스도 포함할 수 있다는 점을 염두에 두어야 합니다. 이 레시피는 적절히 대응할 수 있어야 합니다. 이는 경우에 따라 아무 작업도 하지 않음을 의미하기도 합니다.

tomcat::configure

tomcat::configure 레시피는 계층의 Configure 수명 주기 이벤트를 위한 것입니다.

include_recipe 'tomcat::context' # Optional: Trigger a Tomcat restart in case of a configure event, if relevant # settings in custom JSON have changed (e.g. java_opts/JAVA_OPTS): #include_recipe 'tomcat::container_config'

tomcat::configure 레시피는 기본적으로 두 개의 종속 레시피를 실행하는 메타 레시피입니다.

  1. tomcat::context 레시피는 웹 앱 컨텍스트 구성 파일을 생성합니다.

    이 파일은 애플리케이션이 MySQL 인스턴스와 통신하는 데 사용하는 JDBC 리소스를 구성합니다. 이에 대해서는 다음 섹션에서 설명합니다. Configure 이벤트에 대응하여 이 레시피를 실행할 경우 데이터베이스 계층이 변경되었을 때 웹 앱 컨텍스트 구성 파일을 업데이트할 수 있습니다.

  2. tomcat::container_config 설정 레시피가 다시 실행되어 컨테이너 구성 변경 사항을 캡처합니다.

이 예제에서는 includetomcat::container_config가 코멘트 아웃됩니다. 사용자 지정 JSON을 사용하여 Tomcat 설정을 수정하려는 경우 이 주석을 제거할 수 있습니다. 그런 다음 Configure 수명 주기 이벤트가 tomcat::container_config를 실행합니다. 이는 Tomcat 관련 구성 파일을 업데이트하고(tomcat::container_config 섹션 참조) Tomcat 서비스를 재시작합니다.

tomcat::context

Tomcat 쿡북을 사용하면 애플리케이션이 J2EE 객체를 사용하여 별도의 인스턴스에서 실행 가능한 MySQL 데이터베이스 서버에 액세스할 수 있습니다. DataSource Tomcat에서는 각 애플리케이션에 대해 웹 엡 컨텍스트 구성 파일을 생성 및 설치하여 연결을 활성화할 수 있습니다. 이 파일은 애플리케이션과 애플리케이션이 데이터베이스와 통신하는 데 사용할 JDBC 리소스 간의 관계를 정의합니다. 자세한 정보는 The Context Container를 참조하세요.

tomcat::context 레시피의 주된 목적은 이 구성 파일을 생성하는 것입니다.

include_recipe 'tomcat::service' node[:deploy].each do |application, deploy| context_name = deploy[:document_root].blank? ? application : deploy[:document_root] template "context file for #{application} (context name: #{context_name})" do path ::File.join(node['tomcat']['catalina_base_dir'], 'Catalina', 'localhost', "#{context_name}.xml") source 'webapp_context.xml.erb' owner node['tomcat']['user'] group node['tomcat']['group'] mode 0640 backup false only_if { node['datasources'][context_name] } variables(:resource_name => node['datasources'][context_name], :webapp_name => application) notifies :restart, resources(:service => 'tomcat') end end

이 레시피는 Tomcat 쿡북 속성 외에도 Stacks가 Configure 이벤트와 함께 설치하는 스택 구성 및 배포 속성을 사용합니다. AWS OpsWorks AWS OpsWorks Stacks 서비스는 레시피가 일반적으로 데이터 백을 사용하거나 검색을 통해 얻을 수 있는 정보가 포함된 속성을 각 인스턴스의 노드 개체에 추가하고 각 인스턴스에 속성을 설치합니다. 이러한 속성에는 스택 구성, 배포된 앱, 사용자가 포함시키기 원하는 사용자 지정 데이터에 대한 세부 정보가 포함됩니다. 레시피는 표준 Chef 노드 구문을 사용하여 스택 구성 및 배포 속성에서 데이터를 가져옵니다. 자세한 내용은 스택 구성 및 배포 속성 섹션을 참조하세요. Chef 11.10 스택에서는 Chef 검색을 사용하여 스택 구성 및 배포 데이터를 가져올 수도 있습니다. 자세한 정보는 Chef 검색 사용을 참조하세요.

deploy속성이란 콘솔이나 API를 통해 정의되거나 Stacks 서비스에서 생성되는 배포 관련 속성을 포함하는 [:deploy] 네임스페이스를 말합니다. AWS OpsWorks deploy 속성에는 배포된 각 앱마다 앱의 짧은 이름으로 명명된 속성이 하나씩 포함됩니다. 각각의 앱 속성에는 문서 루트([:deploy][:appname][:document_root])와 같이 앱의 특성을 정의하는 속성 세트가 포함됩니다.

context 레시피는 먼저 tomcat::service를 호출하여 서비스가 이 Chef 실행에 대해 정의되도록 합니다. 그런 다음 구성 파일의 이름(context_name 확장명 제외)을 표시하는 .xml 변수를 정의합니다. 기본 문서 루트를 사용하는 경우, context_name이 앱의 짧은 이름으로 설정됩니다. 그렇지 않은 경우 지정된 문서 루트로 설정됩니다. 스택 생성 및 애플리케이션 실행 섹션에 설명된 예제는 문서 루트를 "ROOT"로 설정합니다. 따라서 컨텍스트는 ROOT이고 구성 파일 이름은 ROOT.xml입니다.

이 레시피는 배포된 앱의 목록이 많은 부분을 차지하며, 각 앱에 대해 webapp_context.xml.erb 템플릿을 사용하여 컨텍스트 구성 파일을 생성합니다. 예제는 앱을 하나만 배포하지만 deploy 속성의 정의는 앱 수와 상관없이 이를 앱 목록으로 처리하도록 요구합니다.

webapp_context.xml.erb 템플릿은 운영 체제를 구별하지 않으므로 templates 디렉터리의 default 하위 디렉터리에 위치합니다.

이 레시피는 다음과 같이 구성 파일을 생성합니다.

  • 기본 속성 값을 사용할 경우 구성 파일 이름은 context_name.xml로 설정되고 /etc/tomcat6/Catalina/localhost/ 디렉터리에 설치됩니다.

    스택 구성 속성의 ['datasources'] 노드에는 각각 연결된 애플리케이션이 데이터베이스와 통신하는 데 사용할 JDBC 데이터 리소스에 컨텍스트 이름을 매핑하는 속성이 하나 이상 포함됩니다. 노드 및 그 콘텐츠는 스택 생성 및 애플리케이션 실행 섹션에 설명된 대로 스택을 생성할 때 사용자 지정 JSON을 통해 정의됩니다. 예제에는 ROOT 컨텍스트 이름을 jdbc/mydb라는 JDBC 리소스와 연결하는 속성 하나가 있습니다.

  • 기본 속성 값을 사용하면 파일의 사용자 및 그룹 모두 Tomcat 패키지에 의해 설정됩니다. tomcat(Amazon Linux) 또는 tomcat6(Ubuntu).

  • template 리소스는 ['datasources'] 노드가 존재하고 context_name 속성을 포함하는 경우에만 구성 파일을 생성합니다.

  • template 리소스는 resource_namewebapp_name, 두 개의 변수를 정의합니다.

    resource_namecontext_name과 연결된 리소스 이름으로 설정되고, webapp_name은 앱의 짧은 이름으로 설정됩니다.

  • 템플릿 리소스는 Tomcat 서비스를 재시작하여 변경 사항을 로드하고 활성화합니다.

webapp_context.xml.erb 템플릿은 자체 속성 세트를 갖는 Context 요소를 포함하는 Resource 요소로 구성됩니다.

Resource 속성은 컨텍스트 구성의 특성을 정의합니다.

  • name - JDBC 리소스 이름. tomcat::context에서 정의된 resource_name 값으로 설정됩니다.

    예제에서는 리소스 이름이 jdbc/mydb로 설정됩니다.

  • authtype - 이들은 JDBC DataSource 연결의 표준 설정입니다.

  • maxActive, maxIdlemaxWait - 최대 활성 연결 수, 최대 유휴 연결 수 및 연결이 반환되기까지 최대 대기 시간.

  • usernamepassword - 데이터베이스의 사용자 이름 및 암호. deploy 속성에서 가져옵니다.

  • driverClassName—MySQL 드라이버로 설정된 JDBC 드라이버의 클래스 이름

  • url - 연결 URL.

    접두사는 데이터베이스에 따라 다릅니다. MySQL의 경우 jdbc:mysql, Postgres의 경우 jdbc:postgresql, SQL Server의 경우 jdbc:sqlserver로 설정되어야 합니다. 예제에서는 URL을 jdbc:mysql://host_IP_Address:3306:simplejsp로 설정합니다. 여기서 simplejsp는 앱의 짧은 이름입니다.

  • factory - DataSource 팩토리. MySQL 데이터베이스의 경우 필수입니다.

이 구성 파일에 대한 자세한 내용은 Tomcat 위키의 사용 항목을 참조하십시오. DataSources