アプリケーションのデータベースサーバーへの接続 - AWS OpsWorks

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

アプリケーションのデータベースサーバーへの接続

Amazon RDS データベースサーバーをアプリケーションと関連付けることができます。アプリを作成する以降アプリの編集。その後、アプリケーションはデータベース接続情報(ユーザー名、パスワードなど)を使用できます。 — データベースサーバーに接続します。アプリケーションをデプロイすると、AWS OpsWorks スタックによりこの情報が 2 つの方法でアプリケーションに提供されます。

  • Linux スタックでは、AWS OpsWorks スタックにより、各組み込みアプリケーションサーバーインスタンスに、アプリケーションがデータベースサーバーへの接続に使用できる接続データを含むファイルが作成されます。

  • AWS OpsWorks スタックでは、各インスタンスにインストールされるスタック設定およびデプロイ属性に接続情報が含められます。

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

重要

Linux スタックでは、Amazon RDS サービス Layer をアプリケーションと関連付ける場合は、次の手順に従って、関連するアプリケーションサーバー Layer に適切なドライバパッケージを追加する必要があります。

  1. ナビゲーションペインで [Layers] をクリックし、アプリケーションサーバーの [Recipes] タブを開きます。

  2. [Edit] をクリックして適切なドライバパッケージを [OS Packages] に追加します。たとえば、Layer に Amazon Linux のインスタンスが含まれている場合は [mysql] を、Layer に Ubuntu インスタンスが含まれている場合は [mysql-client] を指定する必要があります。

  3. 変更を保存してアプリケーションを再デプロイします。

カスタムレシピの使用

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

アプリケーションを作成する際、または後でアプリケーションを編集する際に、データベースサーバーをアプリケーションにアタッチします。AWS OpsWorks スタックでは、アプリケーションをデプロイすると、データベース接続情報を含むスタック設定およびデプロイメント属性が各インスタンスにインストールされます。その後、アプリケーションは適切な属性を取得できます。詳細は、Linux スタックと Windows スタックのどちらを使用しているかによって異なります。

Linux スタックのデータベースサーバーへの接続

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

注記

AWS OpsWorks スタックでは、データベースサーバーを複数のアプリケーションに添付することができますが、各アプリケーションに添付できるのはデータベースサーバー 1 つのみです。アプリケーションを複数のデータベースサーバーに接続する場合は、サーバーの 1 つをアプリケーションにアタッチし、アプリケーションの deploy 属性の情報を使用してそのサーバーに接続します。カスタム JSON を使用して、他のデータベースサーバーの接続情報をアプリケーションに渡します。詳細については、「アプリケーションへのデータの引き渡し」を参照してください。

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