スタック設定およびデプロイメント属性 - AWS OpsWorks

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

スタック設定およびデプロイメント属性

重要

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

メトリック AWS OpsWorks スタックは、デプロイライフサイクルイベントに応答してデプロイコマンドなどのコマンドをインスタンスで実行し、スタックの現在の設定を記述する属性のセットをインスタンスのノードオブジェクトに追加します。デプロイイベントと Execute Recipes スタックコマンド の場合、 AWS OpsWorks スタックはデプロイ属性をインストールし、追加のデプロイ情報を提供します。ノードオブジェクトの詳細については、「属性の上書き」を参照してください。完全修飾ノード名などの、一般的に使用されるスタック設定とデプロイメント属性の一覧については、「スタック設定およびデプロイ属性: Linux」および「組み込みクックブックの属性」を参照してください。

注記

Linux スタックでは、エージェントの CLI get_json コマンド を使用して、JSONオブジェクトとしてフォーマットされたこれらの属性の完全なリストを取得できます。

以降のセクションでは、以下のような構成の単純なスタックの Configure イベントと Deploy イベントに関連する属性を示します。

  • 2 つのインスタンスを持つ PHP App Server レイヤー

  • 1 つのインスタンスを持つ 1 つの HAProxy Layer

例は、PHPApp Server インスタンスの 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-applb) で識別されます。その他の の短縮名の詳細については、「AWS OpsWorks スタックレイヤーリファレンス」を参照してください。

  • instances 属性 - すべてのレイヤーにはインスタンスの短縮名が付けられた instances 要素があり、レイヤーのオンラインインスタンスごとに 1 つの属性が含まれています。

    PHP App Server レイヤーには、 php-app1と の 2 つのインスタンスがありますphp-app2。HAProxy Layer には 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オブジェクトは、Simple アプリケーションをスタックのPHPインスタンスにデプロイした Deploy イベントに関連付けられている PHPphp-app1 の属性を示しています。オブジェクトの多くは、前のセクションで説明した 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_cassl_supportssl_certificate_key – アプリがSSLサポートしているかどうかを示します。サポートしている場合、ssl_certificate_key および ssl_certificate_ca 属性は対応する証明書に設定されます。

  • deploy_to - アプリケーションのルートディレクトリ。