データベース接続をセットアップする方法 - AWS OpsWorks

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

データベース接続をセットアップする方法

重要

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

カスタムレシピを使用して、アプリケーションサーバーとバックエンドデータベース間の接続をセットアップします。レシピによりアプリケーションサーバーが必要に応じて設定されます。通常、設定ファイルを作成して設定されます。recipe は、スタック設定の一連の属性と、スタックがすべてのインスタンスにインストールするデプロイ属性から、ホストやデータベース名などの接続データを取得します。 AWS OpsWorks

例えば、 のステップ 2 Chef 11 Linux スタックの使用開始は、PHP App Server と MySQL の 2 つのレイヤー MyStack を持つ という名前のスタックに基づいており、それぞれに 1 つのインスタンスがあります。 MySQL SimplePHPApp という名前のアプリケーションを PHP App Server インスタンスにデプロイし、バックエンドデータストアとして MySQL インスタンスでデータベースを使用します。アプリケーションをデプロイすると、 AWS OpsWorks スタックによって、データベース接続情報を含むスタック設定およびデプロイ属性がインストールされます。以下の例は、JSON として表されたデータベース接続属性を示しています。

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

属性値は AWS OpsWorks スタックによって提供され、生成されるか、ユーザーが提供した情報に基づいています。

SimplePHPApp がデータストアにアクセスするのを許可するには、appsetup.rb という名前のカスタムレシピを レイヤーのデプロイ [lifecycle event] (ライフサイクルイベント) に割り当てることで、PHP アプリケーションサーバーと MySQL データベース間の接続を設定する必要があります。SimplePHPApp をデプロイすると、 AWS OpsWorks スタックは を実行しappsetup.rb、次の抜粋に示すように、接続db-connect.phpを設定する という名前の設定ファイルを作成します。

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

接続を特徴づける変数 hostuser などには、deploy JSON's (JSON をデプロイする) [:deploy][:app_name][:database] 属性から対応する値が設定されます。 わかりやすいように、この例では、urler という名前のテーブルが作成されており、そのテーブル名はクックブックの属性ファイルでは [:phpapp][:dbtable] で表されることを前提としていまします。

このレシピにより、PHP アプリケーションサーバーは MySQL レイヤーのメンバーだけでなく任意の MySQL データベースサーバーに実際に接続されます。別の MySQL サーバーを使用するには、サーバーに適した値に[:database]属性を設定するだけで済みます。カスタム JSON を使用して属性と値をスタック設定とデプロイ属性に AWS OpsWorks 組み込み、それらappsetup.rbを使用して接続を設定するテンプレートを作成します。スタック設定およびデプロイメント JSON の上書きの詳細については、「属性の上書き」を参照してください。