翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
スタック設定およびデプロイメント属性
重要
この AWS OpsWorks Stacks サービスは 2024 年 5 月 26 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、 AWS re:Post
AWS OpsWorks スタックがインスタンスでコマンドを実行する場合、例えば Deploy ライフサイクルイベントに応答して deploy コマンドを実行すると、スタックの現在の設定を記述する属性のセットがインスタンスのノードオブジェクトに追加されます。デプロイイベント および Execute Recipes スタックコマンド の場合、 AWS OpsWorks Stacks はデプロイ属性をインストールし、追加のデプロイ情報を提供します。ノードオブジェクトの詳細については、「属性の上書き」を参照してください。完全修飾ノード名などの、一般的に使用されるスタック設定とデプロイメント属性の一覧については、「スタック設定およびデプロイ属性: Linux」および「組み込みクックブックの属性」を参照してください。
注記
Linux スタックの場合、エージェントの CLI の get_json コマンドを使用して、JSON オブジェクトの形式でこれらの属性の完全なリストを取得できます。
以降のセクションでは、以下のような構成の単純なスタックの Configure イベントと Deploy イベントに関連する属性を示します。
-
2 つのインスタンスを持つ PHP アプリケーションサーバーレイヤー
-
1 つのインスタンスを持つ HAProxy レイヤー
この例は、PHP アプリケーションサーバーインスタンスの 1 つである [php-app1] のものです。属性は、わかりやすいように、JSON オブジェクトの形式で表示されます。オブジェクトの構造は属性の完全修飾名に対応付けされます。例えば、node[:opsworks][:ruby_version]
属性は JSON 形式では以下のように表示されます。
{ "opsworks": { ... "ruby_version": "1.8.7", ... } }
属性の設定
以下の JSON オブジェクトで示しているのは Configure イベントの属性です。このイベントは、インスタンスがオンラインまたはオフラインになったときに、スタックのすべてのインスタンスで発生します。属性には、組み込みのスタック設定属性と、イベントの前にスタック用に定義した任意のカスタム JSON 属性 (この例にはありません) が含まれます。長さの関係で編集されています。さまざまな属性の詳細な説明については、「スタック設定およびデプロイ属性: Linux」および「組み込みクックブックの属性」を参照してください。
{ "opsworks": { "layers": { "php-app": { "id": "4a2a56c8-f909-4b39-81f8-556536d20648", "instances": { "php-app2": { "elastic_ip": null, "region": "us-west-2", "booted_at": "2013-02-26T20:41:10+00:00", "ip": "192.0.2.0", "aws_instance_id": "i-34037f06", "availability_zone": "us-west-2a", "instance_type": "c1.medium", "private_dns_name": "ip-10-252-0-203.us-west-2.compute.internal", "private_ip": "10.252.0.203", "created_at": "2013-02-26T20:39:39+00:00", "status": "online", "backends": 8, "public_dns_name": "ec2-192-0-2-0.us-west-2.compute.amazonaws.com" }, "php-app1": { ... } }, "name": "PHP Application Server" }, "lb": { "id": "15c86142-d836-4191-860f-f4d310440f14", "instances": { "lb1": { ... } }, "name": "Load Balancer" } }, "agent_version": "104", "applications": [ ], "stack": { "name": "MyStack" }, "ruby_version": "1.8.7", "sent_at": 1361911623, "ruby_stack": "ruby_enterprise", "instance": { "layers": [ "php-app" ], "region": "us-west-2", "ip": "192.0.2.0", "id": "45ef378d-b87c-42be-a1b9-b67c48edafd4", "aws_instance_id": "i-32037f00", "availability_zone": "us-west-2a", "private_dns_name": "ip-10-252-84-253.us-west-2.compute.internal", "instance_type": "c1.medium", "hostname": "php-app1", "private_ip": "10.252.84.253", "backends": 8, "architecture": "i386", "public_dns_name": "ec2-192-0-2-0.us-west-2.compute.amazonaws.com" }, "activity": "configure", "rails_stack": { "name": null }, "deployment": null, "valid_client_activities": [ "reboot", "stop", "setup", "configure", "update_dependencies", "install_dependencies", "update_custom_cookbooks", "execute_recipes" ] }, "opsworks_custom_cookbooks": { "recipes": [ ], "enabled": false }, "recipes": [ "opsworks_custom_cookbooks::load", "opsworks_ganglia::configure-client", "ssh_users", "agent_version", "mod_php5_apache2::php", "php::configure", "opsworks_stack_state_sync", "opsworks_custom_cookbooks::execute", "test_suite", "opsworks_cleanup" ], "opsworks_rubygems": { "version": "1.8.24" }, "ssh_users": { }, "opsworks_bundler": { "manage_package": null, "version": "1.0.10" }, "deploy": { } }
情報の大部分は、名前空間とも呼ばれる opsworks
属性に含まれています。主な属性を次に示します。
-
layers
属性 - それぞれの属性がスタックの 1 つのレイヤーの設定を説明している、属性のセットです。レイヤーは短縮名 (この例では
php-app
とlb
) で識別されます。その他の の短縮名の詳細については、「AWS OpsWorks スタックレイヤーリファレンス」を参照してください。 -
instances
属性 - すべてのレイヤーにはインスタンスの短縮名が付けられたinstances
要素があり、レイヤーのオンラインインスタンスごとに 1 つの属性が含まれています。PHP アプリケーションサーバーレイヤーには 2 つのインスタンス (
php-app1
とphp-app2
)があります。HAProxy レイヤーには 1 つのインスタンス (lb1
) があります。注記
instances
要素には、特定のスタック設定およびデプロイ属性が作成された時点でオンライン状態にあったインスタンスのみが含まれています。 -
インスタンスの属性 - 各インスタンスの属性には、インスタンスのプライベート IP アドレスやプライベート DNS 名など、インスタンスを特徴づける一連の属性が含まれています。わかりやすいように、例には
php-app2
属性の詳細のみを示します。他のインスタンスにも同様の情報が含まれています。 -
applications
- デプロイされるアプリケーションのリスト (この例では使用していません)。 -
stack
- スタック名 (この例では)MyStack
-
instance
- これらの属性がインストールされるインスタンス (この例では)php-app1
レシピは、この属性を使用して、インスタンスのパブリック IP アドレスなどの、レシピが実行されているインスタンスに関する情報を取得できます。 -
activity
- 属性を生成したアクティビティ (この例では Configure イベント)。 -
rails_stack
- Rails アプリケーションサーバーレイヤーが含まれるスタックの Rails スタックです。 -
deployment
- これらの属性がデプロイに関連付けられているかどうか。この例では、それらの属性が Configure イベントに関連付けられているため、null
に設定されています。 -
valid_client_activities
- 有効なクライアントアクティビティのリストです。
opsworks
属性の後には、以下のような他の最上位属性がいくつか続きます。
-
opsworks_custom_cookbooks
- カスタムクックブックが有効化されているかどうかを示します。有効化されている場合、属性にはカスタムレシピのリストが含まれます。 -
recipes
- このアクティビティによって実行されたレシピです。 -
opsworks_rubygems
– インスタンス RubyGemsのバージョン。 -
ssh_users
- SSH ユーザーのリスト (この例にはありません)。 -
opsworks_bundler
- Bundler のバージョンとそれが有効化されているかどうかを示します。 -
deploy
- デプロイメントアクティビティに関する情報です (この例にはありません)。
デプロイ属性
Deploy イベントまたは Execute Recipes スタックコマンドの属性は、組み込みのスタック設定およびデプロイ属性と、カスタムのスタック設定またはデプロイ属性で構成されます (この例にはありません)。以下の JSON オブジェクトは、php-app1 の属性を示しています。それらの属性は、スタックの PHP インスタンスに SimplePHP アプリケーションをデプロイした Deploy イベントに関連付けられています。オブジェクトの多くは、前のセクションで説明した Configure イベントの属性に類似したスタック設定属性で構成されます。そのため、例では主にデプロイ固有の属性に焦点を当てています。さまざまな属性の詳細な説明については、「スタック設定およびデプロイ属性: Linux」および「組み込みクックブックの属性」を参照してください。
{ ... "opsworks": { ... "activity": "deploy", "applications": [ { "slug_name": "simplephp", "name": "SimplePHP", "application_type": "php" } ], "deployment": "5e6242d7-8111-40ee-bddb-00de064ab18f", ... }, ... { "ssh_users": { }, "deploy": { "simplephpapp": { "application": "simplephpapp", "application_type": "php", "environment_variables": { "USER_ID": "168424", "USER_KEY": "somepassword" }, "auto_bundle_on_deploy": true, "deploy_to": "/srv/www/simplephpapp", "deploying_user": "arn:aws:iam::123456789012:user/guysm", "document_root": null, "domains": [ "simplephpapp" ], "migrate": false, "mounted_at": null, "rails_env": null, "restart_command": "echo 'restarting app'", "sleep_before_restart": 0, "ssl_support": false, "ssl_certificate": null, "ssl_certificate_key": null, "ssl_certificate_ca": null, "scm": { "scm_type": "git", "repository": "git://github.com/amazonwebservices/opsworks-demo-php-simple-app.git", "revision": "version1", "ssh_key": null, "user": null, "password": null }, "symlink_before_migrate": { "config/opsworks.php": "opsworks.php" }, "symlinks": { }, "database": { }, "memcached": { "host": null, "port": 11211 }, "stack": { "needs_reload": false } } }, }
opsworks
属性は、前のセクションで説明した例のものとほぼ同等です。以降のセクションでは、デプロイに特に関連する属性を取り上げています。
-
activity
- これらの属性に関連付けられているイベント (この例では Deploy イベント)。 -
applications
- 各アプリケーションの属性 (アプリケーションの名前、スラグ名、タイプ) のリスト。スラグ名はアプリケーションの短縮名で、 AWS OpsWorks スタックはアプリケーション名から生成します。SimplePHP のスラグ名は simplephp です。
-
deployment
- デプロイを一意に識別するデプロイ ID。
deploy
属性には、デプロイされるアプリケーションに関する情報が含まれています。例えば、組み込み Deploy レシピによって、deploy
属性のデータが使用されて、適切なディレクトリ内のファイルがインストールされ、データベース接続ファイルが作成されます。deploy
属性には、デプロイされる各アプリケーションの属性が含まれています。この属性の名前はアプリケーションの短縮名です。各アプリケーション属性には、以下の属性が含まれています。
-
environment_variables
- アプリケーションに対して定義したすべての環境変数が含まれています。詳細については、「環境可変」を参照してください。 -
domains
- デフォルトではアプリケーションの短縮名 (この例では simplephpapp)。カスタムドメインを割り当てている場合は、同様にそれらがここに表示されます。詳細については、「カスタムドメインの使用」を参照してください。 -
application
- アプリケーションの短縮名。 -
scm
- この要素には、リポジトリ (この例では Git リポジトリ) からアプリケーションのファイルをダウンロードするために必要な情報が含まれています。 -
database
- スタックにデータベースレイヤーが含まれている場合は、データベースの情報。 -
document_root
- ドキュメントのルートです。この例ではnull
に設定されており、ルートがパブリックであることを示しています。 -
ssl_certificate_ca
、ssl_support
、ssl_certificate_key
- アプリケーションが SSL をサポートしているかどうかを示します。サポートしている場合、ssl_certificate_key
およびssl_certificate_ca
属性は対応する証明書に設定されます。 -
deploy_to
- アプリケーションのルートディレクトリ。