

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

# OpsWorks Stacks 에이전트 CLI 사용
<a name="troubleshoot-debug-cli"></a>

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

**참고**  
에이전트 CLI는 Linux 인스턴스에서만 사용할 수 있습니다.

모든 온라인 인스턴스에서 OpsWorks Stacks는 서비스와 통신하는 에이전트를 설치합니다. OpsWorks 그러면 Stacks 서비스가 에이전트에 명령을 전송하여 수명 주기 이벤트가 발생할 때 인스턴스에서 Chef 실행을 시작하는 등의 작업을 수행합니다. Linux 인스턴스에서는 에이전트가 문제 해결에 매우 유용한 명령줄 인터페이스(CLI)를 표시합니다. 에이전트 CLI 명령을 실행하려면 [SSH를 사용하여 인스턴스에 연결](workinginstances-ssh.md)합니다. 그런 다음 에이전트 CLI 명령을 실행하여 다음을 포함하여 다양한 작업을 수행합니다.
+ 레시피를 실행.
+ Chef 로그를 표시.
+ [스택 구성 및 배포 JSON](workingcookbook-json.md)를 표시

인스턴스와 SSH 연결을 설정하는 방법에 대한 자세한 정보는 [SSH를 사용하여 로그인](workinginstances-ssh.md) 단원을 참조하세요. 또한 스택에 대한 [SSH 및 sudo 권한](opsworks-security-users.md)도 있어야 합니다.

이 섹션에서는 문제 해결을 위해 에이전트 CLI를 사용하는 방법을 설명합니다. 자세한 내용 및 전체 명령 참조는 [OpsWorks Stacks 에이전트 CLI](agent.md) 단원을 참조하세요.

**Topics**
+ [레시피 실행](#troubleshoot-debug-cli-recipes)
+ [Chef 로그 표시](#troubleshoot-debug-cli-log)
+ [스택 구성 및 배포 JSON 표시](#troubleshoot-debug-cli-json)

## 레시피 실행
<a name="troubleshoot-debug-cli-recipes"></a>

에이전트 CLI [`run_command`](agent-run.md) 명령은 에이전트에게 앞서 실행한 명령을 재실행하도록 지시합니다. 문제 해결에 가장 유용한 명령 `setup`, `configure`, `deploy` 및 `undeploy`은 각각 수명 주기 이벤트에 해당합니다. 이들 명령은 에이전트에게 Chef 실행을 시작하여 연결된 레시피를 실행하도록 지시합니다.

**참고**  
`run_command` 명령은 지정된 명령과 연결된 레시피 그룹(일반적으로 특정 수명 주기 이벤트에 연결된 레시피)을 실행하는 것으로 제한됩니다. 이 명령을 사용하여 특정 레시피를 실행할 수는 없습니다. 하나 이상의 지정된 레시피를 실행하려면 [레시피 실행 스택 명령](workingstacks-commands.md) 또는 이와 동등한 CLI 또는 API 작업([https://docs.aws.amazon.com/cli/latest/reference/opsworks/create-deployment.html](https://docs.aws.amazon.com/cli/latest/reference/opsworks/create-deployment.html) 및 [https://docs.aws.amazon.com/opsworks/latest/APIReference/API_CreateDeployment.html](https://docs.aws.amazon.com/opsworks/latest/APIReference/API_CreateDeployment.html))을 사용합니다.

`run_command` 명령은 사용자 지정 레시피, 특히 설정 및 Configure 수명 주기 이벤트에 할당된 것으로서 콘솔에서 직접 트리거할 수 없는 레시피를 디버깅하는 데 매우 유용합니다. `run_command`를 사용하여 특정 이벤트의 레시피를 인스턴스를 시작 또는 중지하지 않고도 원하는 횟수 만큼 실행할 수 있습니다.

**참고**  
OpsWorks Stacks는 쿡북 리포지토리가 아닌 인스턴스의 쿡북 캐시에서 레시피를 실행합니다. OpsWorks Stacks는 인스턴스가 시작될 때 쿡북을이 캐시로 다운로드하지만 이후에 쿡북을 수정할 경우 온라인 인스턴스에서 캐시를 자동으로 업데이트하지 않습니다. 인스턴스 시작 이후 쿡북을 수정하지 않았다면 [Update Cookbooks 스택 명령](workingstacks-commands.md)을 실행하여 리포지토리의 최신 버전으로 쿡북 캐시를 업데이트하세요.

에이전트는 최근 명령만 캐시합니다. [`list_commands`](agent-list.md)를 실행하여 최근 명령을 나열할 수 있습니다. 그러면 캐시된 명령과 명령 실행 시간의 목록이 반환됩니다.

```
sudo opsworks-agent-cli list_commands
2013-02-26T19:08:26        setup
2013-02-26T19:12:01        configure
2013-02-26T19:12:05        configure
2013-02-26T19:22:12        deploy
```

최근 명령을 재실행하려면 다음을 실행합니다.

```
sudo opsworks-agent-cli run_command
```

지정된 명령의 최근 인스턴스를 재실행하려면 다음을 실행합니다.

```
sudo opsworks-agent-cli run_command command
```

예를 들어 설정 레시피를 재실행하려면 다음 명령을 실행할 수 있습니다.

```
sudo opsworks-agent-cli run_command setup
```

각 명령에는 명령이 실행된 당시의 스택 및 배포 상태를 나타내는 [스택 구성 및 배포 JSON](workingcookbook-json.md)이 연결되어 있습니다. 이 데이터는 명령마다 바뀔 수 있으므로 명령의 이전 인스턴스와 최근 인스턴스는 다른 데이터를 사용할 수 있습니다. 명령의 특정 인스턴스를 재실행하려면 `list_commands` 출력에서 시간을 복사하고 다음을 실행합니다.

```
sudo opsworks-agent-cli run_command time
```

이전 예제는 모두 해당 명령에 대해 설치된 JSON인 기본 JSON을 사용하여 명령을 재실행합니다. 다음과 같이 임의의 JSON 파일을 사용하여 명령을 재실행할 수 있습니다.

```
sudo opsworks-agent-cli run_command -f /path/to/valid/json.file
```

## Chef 로그 표시
<a name="troubleshoot-debug-cli-log"></a>

에이전트 CLI [`show_log`](agent-show.md) 명령은 지정된 로그를 표시합니다. 명령이 완료되면 파일의 끝부분이 표시됩니다. 따라서 `show_log` 명령은 일반적으로 오류 정보를 찾을 수 있는 로그의 끝부분을 확인하는 편리한 방법을 제공합니다. 로그를 위로 스크롤하면 이전 부분을 볼 수 있습니다.

현재 명령의 로그를 표시하려면 다음을 실행합니다.

```
sudo opsworks-agent-cli show_log
```

특정 명령에 대한 로그를 표시할 수도 있지만, 에이전트는 마지막 30개의 명령에 대해서만 로그를 캐시한다는 점을 염두에 두십시오. [`list_commands`](agent-list.md)를 실행하여 인스턴스의 명령을 나열할 수 있습니다. 그러면 캐시된 명령과 명령 실행 시간의 목록이 반환됩니다. 예제는 [레시피 실행](#troubleshoot-debug-cli-recipes) 섹션을 참조하세요.

특정 명령의 최근 실행에 대한 로그를 표시하려면 다음을 실행합니다.

```
sudo opsworks-agent-cli show_log command
```

명령 파라미터는 `setup`, `configure`, `deploy`, `undeploy`, `start`, `stop` 또는 `restart`로 설정할 수 있습니다. 이들 명령은 대부분 수명 주기 이벤트에 해당하며 에이전트에게 연결된 레시피를 실행하도록 지시합니다.

특정 명령 실행에 대한 로그를 표시하려면 `list_commands` 출력에서 날짜를 복사하고 다음을 실행합니다.

```
sudo opsworks-agent-cli show_log date
```

실행 중인 명령이 있을 경우 `show_log`가 로그의 현재 상태를 표시합니다.

**참고**  
오류 및 메모리 부족 문제를 해결하는 데 `show_log`를 사용하는 한 가지 방법은 다음과 같이 실행 도중 로그의 끝부분을 표시하는 것입니다.  
`run_command`를 사용하여 해당 수명 주기 이벤트를 트리거합니다. 자세한 내용은 [레시피 실행](#troubleshoot-debug-cli-recipes) 단원을 참조하십시오.
`show_log`명령을 반복적으로 실행하여 로그가 기록되는 동안 로그의 끝부분을 확인합니다.
Chef에서 메모리 부족 또는 예기치 않은 종료가 발생하는 경우 로그가 갑자기 끝납니다. 레시피가 실패할 경우 로그가 예외 및 스택 트레이스로 끝납니다.

## 스택 구성 및 배포 JSON 표시
<a name="troubleshoot-debug-cli-json"></a>

레시피가 사용하는 데이터는 많은 부분이 [스택 구성 및 배포 JSON](workingcookbook-json.md)에서 나옵니다. 이 JSON은 스택 구성, 배포, 그리고 사용자가 선택적으로 추가할 수 있는 사용자 지정 속성에 대한 상세한 설명을 제공하는 Chef 속성 세트를 정의합니다. 각 명령에 대해 OpsWorks Stacks는 명령 시 스택 및 배포 상태를 나타내는 JSON을 설치합니다. 자세한 내용은 [스택 구성 및 배포 속성](workingcookbook-json.md) 단원을 참조하십시오.

사용자 지정 레시피가 스택 구성 및 배포 JSON으로부터 데이터를 가져오는 경우 JSON을 검사하여 데이터를 확인할 수 있습니다. 스택 구성 및 배포 JSON을 표시하는 가장 간단한 방법은 에이전트 CLI [`get_json`](agent-json.md) 명령을 실행하는 것입니다. 이 명령은 JSON 객체의 서식 지정된 버전을 표시합니다. 다음은 일반적인 출력의 처음 몇 줄입니다.

```
{
  "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": "10.112.235.192",
            "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-10-112-235-192.us-west-2.compute.amazonaws.com"
...
```

다음과 같이 최근의 스택 구성 및 배포 JSON을 표시할 수 있습니다.

```
sudo opsworks-agent-cli get_json
```

다음을 실행하여 지정된 명령에 대해 최근의 스택 구성 및 배포 JSON을 표시할 수 있습니다.

```
sudo opsworks-agent-cli get_json command
```

명령 파라미터는 `setup`, `configure`, `deploy`, `undeploy`, `start`, `stop` 또는 `restart`로 설정할 수 있습니다. 이들 명령은 대부분 수명 주기 이벤트에 해당하며 에이전트에게 연결된 레시피를 실행하도록 지시합니다.

다음과 같이 명령의 날짜를 지정하여 특정 명령 실행에 대해 스택 구성 및 배포 JSON을 표시할 수 있습니다.

```
sudo opsworks-agent-cli get_json date
```

이 명령을 사용하는 가장 간단한 방법은 다음과 같습니다.

1. `list_commands`를 실행합니다. 그러면 인스턴스에서 실행된 명령과 각 명령이 실행된 날짜의 목록이 반환됩니다.

1. 해당 명령의 날짜를 복사하여 `get_json` *date* 인수로 사용합니다.