RDS データベースに接続するためにスタックをカスタマイズする - AWS OpsWorks

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

RDS データベースに接続するためにスタックをカスタマイズする

重要

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

PHP アプリケーションサーバーのバックエンドデータベースとして使用するように RDS インスタンスを作成したら、Chef 11 Linux スタックの使用開始 から MyStack をカスタマイズできます。

PHP アプリケーションサーバーを RDS データベースに接続するには
  1. AWS OpsWorks スタックのコンソールを開き、「Chef 11 Linux スタックの使用開始」で説明されているように、1 つのインスタンスを含む PHP App Serverレイヤーでスタックを作成し、SimplePHPApp をデプロイします。このスタックは SimplePHPApp の version1 を使用します。これは、データベース接続を使用しません。

  2. スタック設定を更新し、appsetup.rb レシピ、関連するテンプレートや属性ファイルを含むカスタムクックブック使用します。

    1. [Use custom Chef cookbooks] を [Yes] に設定します。

    2. [Repository type] を [Git] に、[Repository URL] を [git://github.com/amazonwebservices/opsworks-example-cookbooks.git] に設定します。

  3. 次をスタックの [Custom Chef JSON] ボックスに追加し、[:database] が設定ファイルを作成するのに使用する appsetup.rb 属性にRDS 接続データを割り当てます。

    { "deploy": { "simplephpapp": { "database": { "username": "opsworksuser", "password": "your_password", "database": "rdsexampledb", "host": "rds_endpoint", "adapter": "mysql" } } } }

    次の属性値を使用します。

    • username: RDS インスタンスの作成時に指定したマスターユーザー名

      この例では opsworksuser を使用します。

    • [password]: RDS のインスタンスの作成時に指定したマスターパスワード

      指定したパスワードを入力します。

    • database: RDS インスタンスの作成時に作成したデータベース

      この例では rdsexampledb を使用します。

    • host: RDS インスタンスのエンドポイント。前のセクションでインスタンスを作成した際に、RDS コンソールから取得しています。ポート番号は必要ありません。

    • adapter: アダプタ

      この例の RDS インスタンスは MySQL を使用するため、[adapter] は [mysql] に設定されます。その他の属性とは異なり、[adapter] は [appsetup.rb] で使用されません。代わりに、別の構成ファイルを作成するために PHP App Server レイヤーの組み込み構成レシピにより使用されます。

  4. SimplePHPApp 設定を編集して、次のように、バックエンドデータベースを使用する SimplePHPApp のバージョンを指定します。

    • Document root: このオプションを web に設定します。

    • Branch/Revision: このオプションを version2 に設定します。

    残りのオプションは変更しません。

  5. [Edit the PHP App Server layer] (PHP アプリケーションサーバーレイヤーを編集) し、phpapp::appsetup をレイヤーのデプロイレシピに追加することでデータベース接続を設定します。

  6. SimplePHPApp の新しいバージョンをデプロイします

  7. SimplePHPApp がデプロイされるとき、[Instances] ページに進み、php-app1 インスタンスのパブリック IP アドレスをクリックして、アプリケーションを実行します。ブラウザに次のページが表示されるので、そこでテキストを入力し、それをデータベースに保存します。

注記

スタックに MySQL レイヤーがある場合は、AWS OpsWorks スタックによって、対応する接続データが [:database] 属性に自動的に割り当てられます。ただし、スタックに異なる [:database] 値を定義するカスタム JSON を割り当てると、デフォルト値は上書きされます。 [:deploy] 属性は、すべてのインスタンスにインストールされているため、[:database] 属性に依存するレシピは MySQL レイヤーのデータではなくカスタム接続データを使用します。特定のアプリケーションサーバーのレイヤーがカスタム接続データを使用するようにする場合、カスタム JSON をレイヤーのデプロイイベントに割り当て、そのレイヤーにそのデプロイメントを制限します。デプロイメント属性の使用方法の詳細については、「アプリケーションのデプロイ」を参照してください。AWS OpsWorks スタックの組み込み属性のオーバーライドについては、「属性の上書き」を参照してください。