스택 구성 및 배포 속성 - AWS OpsWorks

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

스택 구성 및 배포 속성

중요

이 AWS OpsWorks Stacks 서비스는 2024년 5월 26일에 만료되었으며 신규 및 기존 고객 모두에 대해 비활성화되었습니다. 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션하는 것이 좋습니다. 마이그레이션에 대한 질문이 있는 경우 AWS re:Post 또는 AWS Premium Support를 통해 AWS Support 팀에 문의하세요.

AWS OpsWorks Stacks가 인스턴스에서 명령을 실행할 때 예를 들어 수명 주기 배포 이벤트에 대한 응답으로 배포 명령을 실행하면 스택의 현재 구성을 설명하는 속성 집합이 인스턴스의 노드 객체에 추가됩니다. 배포 이벤트 및 레시피 스택 명령 실행의 경우 AWS OpsWorks Stacks는 배포 속성을 설치하여 몇 가지 추가 배포 정보를 제공합니다. 노드 객체에 대한 자세한 정보는 속성 재정의 단원을 참조하세요. 정규화된 도메인 이름을 포함하여 일반적으로 사용되는 스택 구성 및 배포 속성의 목록은 스택 구성 및 배포 속성: Linux내장 쿡북 속성를 참조하세요.

참고

Linux 스택에서는 에이전트의 get_json 명령을 사용하여 JSON 객체 형식의 이러한 속성CLI의 전체 목록을 가져올 수 있습니다.

다음 섹션에서는 다음으로 구성된 간단한 스택의 Configure 이벤트 및 Deploy 이벤트에 연결된 속성을 보여 줍니다.

  • 두 개의 인스턴스가 있는 PHP 앱 서버 계층

  • 1개의 인스턴스가 포함된 HAProxy 계층

예제는 PHP App Server 인스턴스 중 하나인 php-app1에서 가져온 것입니다. 편의를 위해 속성은 JSON 객체로 형식이 지정됩니다. 객체의 구조는 속성의 정규화된 이름에 매핑됩니다. 예를 들어 node[:opsworks][:ruby_version] 속성은 다음과 같이 JSON 표현에 나타납니다.

{ "opsworks": { ... "ruby_version": "1.8.7", ... } }

Configure 속성

다음 JSON 객체는 인스턴스가 온라인 상태가 되거나 오프라인 상태가 될 때 스택의 모든 인스턴스에서 발생하는 구성 이벤트의 속성을 보여줍니다. 속성에는 기본 제공 스택 구성 속성과 이벤트 전에 스택에 대해 정의된 모든 사용자 지정 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 속성 - 각각 스택의 계층 중 하나의 구성을 설명하는 속성의 집합.

    계층은 짧은 이름(이 예제의 경우, php-applb)으로 식별됩니다. 기타 계층의 짧은 이름에 대한 자세한 정보는 AWS OpsWorks 스택 계층 참조를 참조하세요.

  • instances 속성 - 모든 계층에는 인스턴스의 짧은 이름으로 명명된, 계층의 온라인 인스턴스 각각의 속성을 포함하는 instances 요소가 있습니다.

    PHP App Server 계층에는 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 이벤트 또는 레시피 실행 스택 명령의 속성은 내장 스택 구성 및 배포 속성과 사용자 지정 스택 또는 배포 속성(이 예제에는 없음)으로 구성됩니다. 다음 JSON 객체는 스택의 PHP 인스턴스에 SimplePHP 앱을 배포한 Deploy 이벤트와 연결된 php-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 Stacks가 앱 이름에서 생성하는 앱의 짧은 이름입니다. 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 지원이 있는 경우, ssl_certificate_keyssl_certificate_ca 속성은 해당 인증서로 설정됩니다.

  • deploy_to – 앱의 루트 디렉터리.