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

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

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

重要

AWS OpsWorks Stacks は新規顧客を受け付けなくなりました。既存のお客様は、2024 年 5 月 26 日までは OpsWorks コンソール、 API、 CLI、および CloudFormation リソースを通常どおり使用できますが、その時点でこれらのリソースは廃止されます。この移行に備えて、できるだけ早くスタックを AWS Systems Manager に移行することをおすすめします。詳細については、AWS OpsWorks Stacks サポート終了に関する FAQ および AWS Systems Manager アプリケーションマネージャへの AWS OpsWorks Stacks アプリケーションの移行 を参照してください。

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

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

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

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

重要

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

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

  2. [Edit] をクリックして適切なドライバパッケージを [OS Packages] に追加します。たとえば、レイヤーに Amazon Linux のインスタンスが含まれている場合は [mysql] を、レイヤーに 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 属性から接続情報を取得してアプリケーションで読み取り可能なファイルに保存すれば、この問題は解決します。