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

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

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

重要

AWS OpsWorks Stacks は新規顧客を受け付けなくなりました。既存のお客様は、2024 年 5 月 26 日までは、通常どおり OpsWorks コンソール、API、CLI、および CloudFormation リソースを使用できます。その時点で廃止されます。この移行に備えて、できるだけ早くスタックを AWS Systems Manager に移行することをおすすめします。詳細については、「AWS OpsWorks Stacks サポート終了に関する FAQ」および「AWS Systems Manager アプリケーションマネージャへの AWS OpsWorks Stacks アプリケーションの移行」を参照してください。

AWS OpsWorks スタックでインスタンスに対してコマンド (Deploy ライフサイクルイベントに対応したデプロイコマンドなど) が実行されると、スタックの現在の設定が記述された属性のセットがインスタンスのノードオブジェクトに追加されます。Deploy イベントと Execute Recipes スタックコマンド用に、AWS OpsWorks スタックによっていくつかの追加のデプロイ情報を渡すデプロイ属性がインストールされます。ノードオブジェクトの詳細については、「属性の上書き」を参照してください。完全修飾ノード名などの、一般的に使用されるスタック設定とデプロイメント属性の一覧については、「スタック設定およびデプロイ属性: 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-applb) で識別されます。その他の の短縮名の詳細については、「AWS OpsWorks スタックレイヤーリファレンス」を参照してください。

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

    PHP アプリケーションサーバーレイヤーには 2 つのインスタンス (php-app1php-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_cassl_supportssl_certificate_key - アプリケーションが SSL をサポートしているかどうかを示します。サポートしている場合、ssl_certificate_key および ssl_certificate_ca 属性は対応する証明書に設定されます。

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