

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

# 데이터베이스 연결 설정 방법
<a name="customizing-rds-setup"></a>

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

사용자 지정 레시피를 사용하여 애플리케이션 서버와 백엔드 데이터베이스 간 연결을 설정합니다. 레시피는 일반적으로 구성 파일을 생성하여 필요에 따라 애플리케이션을 구성합니다. 레시피는 [스택 구성의 속성 세트와 Stacks가 모든 인스턴스에 설치하는 배포 속성](workingcookbook-json.md)에서 호스트 및 데이터베이스 이름과 같은 연결 데이터를 가져옵니다. OpsWorks 

예를 들어 [Chef 11 Linux 스택 시작하기](gettingstarted.md)의 2단계는 각각 인스턴스가 하나씩 있는 PHP 앱 서버 및 MySQL이라는 2개의 계층을 가진 MyStack이라는 스택에 기반합니다. MySQL 인스턴스에서 데이터베이스를 백엔드 데이터스토어로 사용하는 PHP 앱 서버 인스턴스에 SimplePHPApp이라는 앱을 배포합니다. 애플리케이션을 배포하면 OpsWorks Stacks는 데이터베이스 연결 정보가 포함된 스택 구성 및 배포 속성을 설치합니다. 다음 예제는 JSON으로 표시되는 데이터베이스 연결 속성을 보여 줍니다.

```
{
  ...
  "deploy": {
    "simplephpapp": {
      ...
      "database": {
        "reconnect": true,
        "password": null,
        "username": "root",
        "host": null,
        "database": "simplephpapp"
        ...
      },
      ...
    }
  }
}
```

속성 값은 OpsWorks Stacks에서 제공하며 사용자가 제공한 정보를 기반으로 생성되거나 생성됩니다.

SimplePHPApp이 데이터 스토어에 액세스하도록 허용하려면 `appsetup.rb`(이)라는 이름의 사용자 지정 레시피를 PHP 앱 서버 계층의 Deploy [수명 주기 이벤트](workingcookbook-events.md)에 할당하여 PHP 애플리케이션 서버와 MySQL 데이터베이스 간 연결을 설정해야 합니다. SimplePHPApp을 배포하면 OpsWorks Stacks는 다음 발췌문과 같이 연결을 `db-connect.php` 설정하는 라는 구성 파일을 `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의](workingcookbook-json.md#workingcookbook-json-deploy) `[:deploy][:app_name][:database]` 속성에서 해당 값을 설정합니다. 간단히 하기 위해 예제에서는 이미 `urler`라는 이름의 테이블을 생성했다고 가정합니다. 따라서 테이블 이름은 쿡북의 속성 파일에서 `[:phpapp][:dbtable]`로 나타납니다.

이 레시피는 실제로 PHP 애플리케이션 서버를, MySQ 계층의 멤버만이 아니라 어떤 MySQL 데이터베이스 서버에도 연결할 수 있습니다. 다른 MySQL 서버를 사용하려면 `[:database]` 속성을 서버에 적합한 값으로 설정하기만 하면 됩니다.이 값은 [사용자 지정 JSON](workingstacks-json.md)을 사용하여 설정할 수 있습니다. 그러면 OpsWorks Stacks는 이러한 속성과 값을 스택 구성 및 배포 속성에 통합하고 이를 `appsetup.rb` 사용하여 연결을 설정하는 템플릿을 생성합니다. 스택 구성 및 배포 JSON 재정의에 대한 자세한 정보는 [속성 재정의](workingcookbook-attributes.md) 단원을 참조하세요.