翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
データベース接続をセットアップする方法
重要
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、 AWS re:Post
カスタムレシピを使用して、アプリケーションサーバーとバックエンドデータベース間の接続をセットアップします。レシピによりアプリケーションサーバーが必要に応じて設定されます。通常、設定ファイルを作成して設定されます。レシピは、スタックがすべてのインスタンスに AWS OpsWorks インストールするスタック設定およびデプロイ属性のセットから、ホストやデータベース名などの接続データを取得します。
例えば、Chef 11 Linux スタックの使用開始 のステップ 2 は、2 つのレイヤー(それぞれに 1 つのインスタンスを含む PHP App Server および MySQL) がある MyStack という名前のスタックに基づいています。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 の上書きの詳細については、「属性の上書き」を参照してください。