翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
データベース接続をセットアップする方法
重要
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、 AWS re:Post
カスタムレシピを使用して、アプリケーションサーバーとバックエンドデータベース間の接続をセットアップします。レシピによりアプリケーションサーバーが必要に応じて設定されます。通常、設定ファイルを作成して設定されます。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
接続を特徴づける変数 host
、user
などには、deploy JSON's (JSON をデプロイする) [:deploy][:app_name][:database]
属性から対応する値が設定されます。 わかりやすいように、この例では、urler
という名前のテーブルが作成されており、そのテーブル名はクックブックの属性ファイルでは [:phpapp][:dbtable]
で表されることを前提としていまします。
このレシピにより、PHP アプリケーションサーバーは MySQL レイヤーのメンバーだけでなく任意の MySQL データベースサーバーに実際に接続されます。別の MySQL サーバーを使用するには、サーバーに適した値に[:database]
属性を設定するだけで済みます。カスタム JSON を使用して属性と値をスタック設定とデプロイ属性に AWS OpsWorks 組み込み、それらappsetup.rb
を使用して接続を設定するテンプレートを作成します。スタック設定およびデプロイメント JSON の上書きの詳細については、「属性の上書き」を参照してください。