

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# アプリケーションのデータベースサーバーへの接続
<a name="workingapps-connectdb"></a>

**重要**  
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、[AWS re:Post](https://repost.aws/) または[AWS プレミアムサポート](https://aws.amazon.com/support)を通じて AWS サポート チームにお問い合わせください。

[[create the app](workingapps-creating.md) (アプリケーションを作成する) ] とき、または後で [[editing the app](workingapps-editing.md) (アプリケーションを編集する) ] ことで、 Amazon RDS データベースサーバーをアプリケーションと関連付けることができます。その後、アプリケーションはデータベース接続情報 (ユーザー名、パスワードなど) を使用してデータベースサーバーに接続することができます。[アプリケーションをデプロイ](workingapps-deploying.md)すると、 OpsWorks Stacks は 2 つの方法でこの情報をアプリケーションに提供します。
+ Linux スタックでは、 OpsWorks スタックにより、各組み込みアプリケーションサーバーインスタンスに、アプリケーションがデータベースサーバーへの接続に使用できる接続データを含むファイルが作成されます。
+ OpsWorks スタックには、各インスタンスにインストールされている[スタック設定とデプロイ属性](workingcookbook-json.md)の接続情報が含まれます。

  カスタムレシピを実装してこれらの属性から接続情報を取得し、任意の形式でファイルに配置することができます。詳細については、「[アプリケーションへのデータの引き渡し](apps-data.md)」を参照してください。

**重要**  
Linux スタックでは、 Amazon RDS サービス レイヤーをアプリケーションと関連付ける場合は、次の手順に従って、関連付けたアプリケーションサーバーレイヤーに適切なドライバパッケージを追加する必要があります。  
ナビゲーションペインで [**Layers**] (レイヤー) をクリックし、アプリケーションサーバーの [**Recipes**] (レシピ) タブを開きます。
[**Edit**] をクリックして適切なドライバパッケージを [**OS Packages**] に追加します。たとえば、レイヤーに Amazon Linux のインスタンスが含まれている場合は [`mysql`] を、レイヤーに Ubuntu インスタンスが含まれている場合は [`mysql-client`] を指定する必要があります。
変更を保存してアプリケーションを再デプロイします。

## カスタムレシピの使用
<a name="workingapps-connectdb-custom"></a>

アプリケーションの [`deploy` 属性](workingcookbook-json.md#workingcookbook-json-deploy)から接続データを取得するカスタムレシピを実装し、YAML ファイルなど、アプリケーションが読み取ることができる形式で保存できます。

[アプリケーションを作成する](workingapps-creating.md)際、または後で[アプリケーションを編集する](workingapps-editing.md)際に、データベースサーバーをアプリケーションにアタッチします。アプリケーションをデプロイすると、 OpsWorks スタックはデータベース接続情報を含む[スタック設定とデプロイ属性](workingcookbook-json.md)を各インスタンスにインストールします。その後、アプリケーションは適切な属性を取得できます。詳細は、Linux スタックと Windows スタックのどちらを使用しているかによって異なります。

### Linux スタックのデータベースサーバーへの接続
<a name="w2ab1c14c57c19c11b6"></a>

Linux スタックでは、[スタック設定およびデプロイ属性の](workingcookbook-json.md) `deploy` 名前空間に、デプロイされた各アプリケーションの属性が含まれており、アプリケーションの短縮名が付いています。データベースサーバーをアプリケーションにアタッチすると、 OpsWorks Stacks はアプリケーションの `[:database]` 属性に接続情報を入力し、後続のデプロイごとにスタックのインスタンスにインストールします。属性値はユーザーが指定する値または OpsWorks スタックにより生成される値です。

**注記**  
OpsWorks スタックを使用すると、データベースサーバーを複数のアプリケーションにアタッチできますが、各アプリケーションにアタッチできるデータベースサーバーは 1 つだけです。アプリケーションを複数のデータベースサーバーに接続する場合は、サーバーの 1 つをアプリケーションにアタッチし、アプリケーションの `deploy` 属性の情報を使用してそのサーバーに接続します。カスタム JSON を使用して、他のデータベースサーバーの接続情報をアプリケーションに渡します。詳細については、「[アプリケーションへのデータの引き渡し](apps-data.md)」を参照してください。

アプリケーションはインスタンスの `deploy` 属性の接続情報を使用してデータベースに接続します。ただし、アプリケーションはその情報に直接アクセスすることはできません。レシピだけが `deploy` 属性にアクセスできます。カスタムレシピを実装し、`deploy` 属性から接続情報を取得してアプリケーションで読み取り可能なファイルに保存すれば、この問題は解決します。