

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

# Cloud Control API 시작하기
<a name="getting-started"></a>

이 짧은 자습서를 사용하여 리소스 작업 수행을 시작합니다 AWS Cloud Control API. Cloud Control API를 사용하여 리소스를 만들고, 읽고, 업데이트하고, 삭제하고, 나열하는 기본적인 방법을 알아봅니다.

**Topics**
+ [1단계: 리소스 생성](#getting-started-step1)
+ [2단계: 리소스 읽기(설명)](#getting-started-step2)
+ [3단계: 리소스 업데이트](#getting-started-step3)
+ [4단계: 특정 유형의 모든 리소스를 나열합니다.](#getting-started-list)
+ [5단계: 리소스 삭제](#getting-started-cleanup)
+ [다음 단계](#getting-started-next-steps)

## 1단계: 리소스 생성
<a name="getting-started-step1"></a>

이 튜토리얼에서는 `[https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html)` 유형의 리소스를 생성합니다. 이 로그 그룹의 이름을 **CloudControlExample**로 지정하고 보존 정책을 90일로 설정합니다.

1.  AWS Command Line Interface (AWS CLI)에서 다음 파라미터로 `create-resource` 명령을 실행합니다.
   + `type-name`을 `AWS::Logs::LogGroup`으로 지정합니다.
   + `desired-state`를 원하는 속성을 설정하는 JSON이 포함된 문자열로 지정합니다.

     `{"LogGroupName": "CloudControlExample", "RetentionInDays": 90}`

   ```
   $ aws cloudcontrol create-resource --type-name AWS::Logs::LogGroup \
       --desired-state '{"LogGroupName": "CloudControlExample","RetentionInDays":90}'
   ```

   Cloud Control API는 리소스 작업 요청 상태에 대한 정보가 포함된 `ProgressEvent` 객체를 반환합니다.

   ```
   {
       "ProgressEvent": {
           "EventTime": "2024-08-26T22:07:23.347Z",
           "TypeName": "AWS::Logs::LogGroup",
           "OperationStatus": "IN_PROGRESS",
           "Operation": "CREATE",
           "Identifier": "CloudControlExample",
           "RequestToken": "758f4a4e-fef4-491a-9b07-123456789012"
       }
   }
   ```

1. 리소스 작업 요청의 상태를 추적하려면 다음 파라미터를 사용하여 `get-resource-request-status` 명령을 실행합니다.
   + `request-token` 파라미터를 `ProgressEvent` 개체에 반환한 `RequestToken` 속성 값으로 지정합니다.

   ```
   $ aws cloudcontrol get-resource-request-status --request-token 758f4a4e-fef4-491a-9b07-123456789012
   ```

   Cloud Control API는 리소스 작업 요청 상태에 대한 정보가 포함된 `ProgressEvent` 객체를 반환합니다. Cloud Control API가 리소스를 성공적으로 생성하면 `OperationStatus` 값을 `SUCCESS`로 설정합니다.

   ```
   {
       "ProgressEvent": {
           "EventTime": "2024-08-26T22:29:23.326Z",
           "TypeName": "AWS::Logs::LogGroup",
           "OperationStatus": "SUCCESS",
           "Operation": "CREATE",
           "Identifier": "CloudControlExample",
           "RequestToken": "758f4a4e-fef4-491a-9b07-123456789012"
       }
   }
   ```

## 2단계: 리소스 읽기(설명)
<a name="getting-started-step2"></a>

다음으로 방금 생성한 리소스의 현재 상태를 확인합니다.
+ 에서 다음 파라미터로 `get-resource` 명령을 AWS CLI실행합니다.
  + 리소스를 생성할 때 `ProgressEvent` 개체에 반환된 `identifier` 속성 값을 `identifier`로 지정합니다. 이 경우에는 로그 그룹에 지정한 이름인 `CloudControlExample`입니다.

  ```
  $ aws cloudcontrol get-resource --type-name AWS::Logs::LogGroup --identifier CloudControlExample
  ```

  Cloud Control API는 속성 및 설정 모델을 포함하여 리소스의 현재 상태에 대한 세부 정보를 반환합니다. 이 경우 여기에는 리소스가 생성될 때 Amazon CloudWatch Events에서 생성한 속성 `Arn`이 포함됩니다.

  ```
  {
      "TypeName": "AWS::Logs::LogGroup", 
      "ResourceDescription": {
          "Identifier": "CloudControlExample", 
          "ResourceModel": '{"RetentionInDays": 90, "LogGroupName": "CloudControlExample", "Arn": "arn:aws:logs:us-west-2:123456789012:log-group:CloudControlExample:*"}'
      }
  }
  ```

## 3단계: 리소스 업데이트
<a name="getting-started-step3"></a>

그런 다음, 로그 그룹을 업데이트하여 보존 정책을 180일로 두 배로 늘리세요.

1. 에서 다음 파라미터로 `update-resource` 명령을 AWS CLI실행합니다.
   + `type-name`을 `AWS::Logs::LogGroup`으로 지정합니다.
   + 리소스를 생성할 때 `ProgressEvent` 개체에 반환된 `identifier` 속성 값을 `identifier`로 지정합니다. 이 경우에는 로그 그룹에 지정한 이름인 `CloudControlExample`입니다.
   + 보존 정책을 180일로 업데이트하는 대체 작업을 나타내는 JSON이 포함된 문자열로 `patch-document` 파라미터를 지정합니다.

     `[{"op": "replace", "path": "RetentionInDays", "value": 180}]`

     패치 문서 작성에 대한 자세한 내용은 섹션을 참조하세요[패치 문서 작성](resource-operations-update.md#resource-operations-update-patch).

   ```
   $ aws cloudcontrol update-resource --type-name AWS::Logs::LogGroup \
       --identifier CloudControlExample \
       --patch-document '[{"op": "replace", "path": "RetentionInDays", "value":180}]'
   ```

   Cloud Control API는 리소스 작업 요청 상태에 대한 정보가 포함된 `ProgressEvent` 객체를 반환합니다.

   ```
   {
       "ProgressEvent": {
           "EventTime": "2024-08-26T22:29:22.547Z", 
           "ResourceModel": '{"RetentionInDays":180,"LogGroupName":"CloudControlExample"}',
           "TypeName": "AWS::Logs::LogGroup",
           "OperationStatus": "IN_PROGRESS",
           "Operation": "UPDATE",
           "Identifier": "CloudControlExample", 
           "RequestToken": "2026055d-f21c-4b50-bd40-123456789012"
       }
   }
   ```

1. 리소스 작업 요청의 상태를 추적하려면 다음 파라미터를 사용하여 `get-resource-request-status` 명령을 실행합니다.
   + `request-token` 파라미터를 `ProgressEvent` 개체에 반환한 `RequestToken` 속성 값으로 지정합니다.

   ```
   $ aws cloudcontrol get-resource-request-status --request-token 2026055d-f21c-4b50-bd40-123456789012
   ```

   Cloud Control API는 리소스 작업 요청 상태에 대한 정보가 포함된 `ProgressEvent` 객체를 반환합니다. Cloud Control API가 리소스를 성공적으로 업데이트하면 `OperationStatus` 값을 `SUCCESS`로 설정합니다.

   ```
   {
       "ProgressEvent": {
           "EventTime": "2024-08-26T22:29:23.326Z",
           "TypeName": "AWS::Logs::LogGroup",
           "OperationStatus": "SUCCESS",
           "Operation": "UPDATE",
           "Identifier": "CloudControlExample",
           "RequestToken": "2026055d-f21c-4b50-bd40-123456789012"
       }
   }
   ```

## 4단계: 특정 유형의 모든 리소스를 나열합니다.
<a name="getting-started-list"></a>

다음으로 Cloud Control API를 사용하여 AWS 계정에서 리소스를 검색합니다.
+ 에서 다음 파라미터로 `list-resources` 명령을 AWS CLI실행합니다.
  + `type-name`을 `AWS::Logs::LogGroup`으로 지정합니다.

  ```
  $ aws cloudcontrol list-resources --type-name AWS::Logs::LogGroup
  ```

  Cloud Control API는 계정에 있는 `AWS::Logs::LogGroup` 리소스의 목록을 기본 식별자별로 반환합니다. 이는 이 튜토리얼의 일부로 생성한 리소스인 `CloudControlExample`뿐만 아니라 이미 계정에 존재하는 다른 로그 그룹들을 포함합니다. 또한 `AWS::Logs::LogGroup` 리소스의 경우 `list-resources`가 반환하는 정보에는 각 리소스에 대한 속성이 포함됩니다.

  ```
  {
      "TypeName": "AWS::Logs::LogGroup",
      "ResourceDescriptions": [
          {
              "Identifier": "CloudControlExample",
              "Properties": '{"RetentionInDays":180, "LogGroupName": "CloudControlExample", "Arn":"arn:aws:logs:us-west-2:123456789012:log-group:CloudControlExample:*"}'
          },
          {
              "Identifier": "AnotherLogGroupResourceExample",
              "Properties": '{"RetentionInDays": 90, "LogGroupName": "AnotherLogGroupResourceExample", "Arn": "arn:aws:logs:us-west-2:123456789012:log-group:AnotherLogGroupResourceExample:*"}'
          },
      ]
  }
  ```

## 5단계: 리소스 삭제
<a name="getting-started-cleanup"></a>

마지막으로, 이 튜토리얼에서 정리할 로그 그룹을 삭제하세요.

1. 에서 다음 파라미터로 `delete-resource` 명령을 AWS CLI실행합니다.
   + `type-name`을 `AWS::Logs::LogGroup`으로 지정합니다.
   + 리소스를 생성할 때 `ProgressEvent` 개체에 반환된 `identifier` 속성 값을 `identifier`로 지정합니다. 이 경우에는 로그 그룹에 지정한 이름인 **`CloudControlExample`**입니다.

   ```
   $ aws cloudcontrol delete-resource --type-name AWS::Logs::LogGroup --identifier CloudControlExample
   ```

   Cloud Control API는 리소스 작업 요청 상태에 대한 정보가 포함된 `ProgressEvent` 객체를 반환합니다.

   ```
   {
       "ProgressEvent": {
           "EventTime": "2024-08-26T22:50:20.037Z",
           "TypeName": "AWS::Logs::LogGroup",
           "OperationStatus": "IN_PROGRESS",
           "Operation": "DELETE",
           "Identifier": "CloudControlExample",
           "RequestToken": "bb0ed9cd-84f9-44c2-b638-123456789012"
       }
   }
   ```

1. 리소스 작업 요청의 상태를 추적하려면 다음 파라미터를 사용하여 `get-resource-request-status` 명령을 실행합니다.
   + `request-token` 파라미터를 `ProgressEvent` 개체에 반환한 `RequestToken` 속성 값으로 지정합니다.

   ```
   $ aws cloudcontrol get-resource-request-status --request-token bb0ed9cd-84f9-44c2-b638-123456789012
   ```

   Cloud Control API는 리소스 작업 요청 상태에 대한 정보가 포함된 `ProgressEvent` 객체를 반환합니다. Cloud Control API가 리소스를 성공적으로 삭제하면 `OperationStatus` 값을 `SUCCESS`로 설정합니다.

   ```
   {
       "ProgressEvent": {
           "EventTime": "2024-08-26T22:50:20.831Z",
           "TypeName": "AWS::Logs::LogGroup",
           "OperationStatus": "SUCCESS",
           "Operation": "DELETE",
           "Identifier": "CloudControlExample",
           "RequestToken": "bb0ed9cd-84f9-44c2-b638-123456789012"
       }
   }
   ```

## 다음 단계
<a name="getting-started-next-steps"></a>

리소스와 함께 Cloud Control API를 사용하는 방법에 대한 자세한 내용과 예제는 섹션을 참조하세요[Cloud Control API 리소스 작업](resource-operations.md).