기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
데이터베이스 연결 설정 방법
중요
이 AWS OpsWorks Stacks 서비스는 2024년 5월 26일에 수명이 종료되었으며 신규 고객과 기존 고객 모두 사용할 수 없게 되었습니다. 고객은 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션할 것을 강력히 권장합니다. 마이그레이션에 대해 궁금한 점이 있으면 AWS re:Post 또는 Premium AWS
사용자 지정 레시피를 사용하여 애플리케이션 서버와 백엔드 데이터베이스 간 연결을 설정합니다. 레시피는 일반적으로 구성 파일을 생성하여 필요에 따라 애플리케이션을 구성합니다. 레시피는 AWS OpsWorks Stacks가 모든 인스턴스에 설치하는 스택 구성 및 배포 속성의 속성 집합에서 호스트 및 데이터베이스 이름과 같은 연결 데이터를 가져옵니다.
예를 들어, 의 2단계는 PHP App Server와 MySQL이라는 두 개의 MyStack 계층으로 이름이 지정된 스택을 기반으로 하며, 각 계층에는 Chef 11 Linux 스택 시작하기 인스턴스가 하나씩 있습니다. MySQL 인스턴스에서 데이터베이스를 백엔드 데이터스토어로 사용하는 PHP 앱 서버 인스턴스에 SimplePHPApp이라는 앱을 배포합니다. 애플리케이션을 배포하면 AWS OpsWorks Stacks는 데이터베이스 연결 정보가 포함된 스택 구성 및 배포 속성을 설치합니다. 다음 예제는 JSON으로 표시되는 데이터베이스 연결 속성을 보여 줍니다.
{ ... "deploy": { "simplephpapp": { ... "database": { "reconnect": true, "password": null, "username": "root", "host": null, "database": "simplephpapp" ... }, ... } } }
속성 값은 AWS OpsWorks Stacks에서 제공하며 생성되거나 사용자 제공 정보를 기반으로 합니다.
SimplePHPApp이 데이터 스토어에 액세스하도록 허용하려면 appsetup.rb
(이)라는 이름의 사용자 지정 레시피를 PHP 앱 서버 계층의 Deploy 수명 주기 이벤트에 할당하여 PHP 애플리케이션 서버와 MySQL 데이터베이스 간 연결을 설정해야 합니다. SimplePHPApp을 배포하면 AWS OpsWorks db-connect.php
Stacks가 appsetup.rb
실행되어 다음 발췌문과 같이 연결을 설정하는 이름의 구성 파일이 생성됩니다.
node[:deploy].each do |app_name, deploy| ... template "#{deploy[:deploy_to]}/current/db-connect.php" do source "db-connect.php.erb" mode 0660 group deploy[:group] if platform?("ubuntu") owner "www-data" elsif platform?("amazon") owner "apache" end variables( :host => (deploy[:database][:host] rescue nil), :user => (deploy[:database][:username] rescue nil), :password => (deploy[:database][:password] rescue nil), :db => (deploy[:database][:database] rescue nil), :table => (node[:phpapp][:dbtable] rescue nil) ) ... end end
연결을 특징짓는 변수(host, user 등)는 배포 JSON의 [:deploy][:app_name][:database]
속성에서 해당 값을 설정합니다. 간단히 하기 위해 예제에서는 이미 urler
라는 이름의 테이블을 생성했다고 가정합니다. 따라서 테이블 이름은 쿡북의 속성 파일에서 [:phpapp][:dbtable]
로 나타납니다.
이 레시피는 실제로 PHP 애플리케이션 서버를, MySQ 계층의 멤버만이 아니라 어떤 MySQL 데이터베이스 서버에도 연결할 수 있습니다. 다른 MySQL 서버를 사용하려면 [:database]
속성을 서버에 적합한 값으로 설정하기만 하면 됩니다. 사용자 지정 JSON을 사용하면 됩니다. AWS OpsWorks 그런 다음 스택은 이러한 속성과 값을 스택 구성 및 배포 속성에 통합하고 이를 appsetup.rb
사용하여 연결을 설정하는 템플릿을 만듭니다. 스택 구성 및 배포 JSON 재정의에 대한 자세한 정보는 속성 재정의 단원을 참조하세요.