

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

# `AWSSupport-TroubleshootAPIGatewayHttpErrors`
<a name="automation-aws-troubleshootapigatewayhttp-errors"></a>

 **설명** 

**AWSSupport-TroubleshootAPIGatewayHttpErrors** 실행서는 액세스 및/또는 실행 로그를 구문 분석하고 오류를 분석하여 re:Post 문서 및 AWS 설명서를 통해 수정 단계를 제공하여 배포된 Amazon API Gateway REST API를 호출할 때 5XX/4XX 오류를 해결하는 데 도움이 됩니다.

**중요**  
이 런북에는 다음과 같은 제한 사항이 있습니다.  
로깅을 활성화해야 합니다. [API Gateway 콘솔을 사용하여 Amazon CloudWatch API 로깅 설정을 참조하세요](https://docs.aws.amazon.com//apigateway/latest/developerguide/set-up-logging.html#set-up-access-logging-using-console).
오류(들)가 발생하기 전에 로그가 활성화되어 있어야 합니다. 로그 캡처 및 분석은 소급하여 수행할 수 없습니다.
포함된 오류: 500, 502, 503, 504, 401, 403, 429.
REST API만 지원됩니다. WebSocket 및 HTTP(v2)는이 실행서에서 다루지 않습니다.

**중요**  
이 실행서를 사용하면 REST API에서 캡처한 Amazon CloudWatch Logs 및 분석에 사용된 CloudWatch Logs Insights에 대해 AWS 계정에 추가 요금이 발생할 수 있습니다. 발생할 수 있는 요금에 대한 자세한 내용은 [Amazon CloudWatch 요금을](https://aws.amazon.com/cloudwatch/pricing/) 참조하세요. `aws:deletestack` 단계가 실패하면 CloudFormation 콘솔로 이동하여 스택을 수동으로 삭제합니다. 이 실행서에서 만든 스택 이름은 `AWSSupport-TroubleshootAPIGatewayHttpErrors`로 시작합니다. CloudFormation 스택 삭제에 대한 자세한 내용은 AWS CloudFormation 사용 설명서의 [스택 삭제](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html)를 참조하세요.

 **어떻게 작동하나요?**

실행서는 다음 검증 및 분석 단계를 수행합니다.
+ 지정된 REST API가 존재하고 필요한 권한이 있는지 확인합니다.
+ 지정된 단계가 API에 존재하는지 확인합니다.
+ 지정된 리소스 경로가 API에 존재하는지 확인합니다.
+ 리소스에 대해 지정된 HTTP 메서드가 존재하는지 확인합니다.
+ 지정된 파라미터 및 시간 범위에 대한 CloudWatch Logs를 분석하여 오류를 식별하고 문제 해결 권장 사항을 제공합니다.

 [이 자동화 실행(콘솔)](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootAPIGatewayHttpErrors) 

**문서 유형**

자동화

**소유자**

Amazon

**플랫폼**

/

**필수 IAM 권한**

실행서를 성공적으로 사용하려면 `AutomationAssumeRole` 파라미터에 다음 작업이 필요합니다.
+ `apigateway:GET`
+ `logs:CreateLogGroup`
+ `logs:CreateLogStream`
+ `logs:DescribeLogGroups`
+ `logs:DescribeLogStreams`
+ `logs:PutLogEvents`
+ `logs:StartQuery`
+ `logs:GetQueryResults`

IAM 정책 예제:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "apigateway:GET",
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:PutLogEvents",
                "logs:StartQuery",
                "logs:GetQueryResults"
            ],
            "Resource": "*"
        }
    ]
}
```

 **지침** 

다음 단계에 따라 자동화를 구성합니다.

1. Systems Manager[https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootAPIGatewayHttpErrors/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootAPIGatewayHttpErrors/description)의 문서로 이동합니다.

1. **Execute automation(자동화 실행)**을 선택합니다.

1. 입력 파라미터에 다음을 입력합니다.
   + **AutomationAssumeRole(선택 사항):**
     + 설명: (선택 사항) SSM Automation이 사용자를 대신하여 작업을 수행하도록 허용하는 (IAM) 역할의 AWS Identity and Access Management Amazon 리소스 이름(ARN)입니다. 역할이 지정되지 않은 경우 SSM Automation은이 실행서를 시작하는 사용자의 권한을 사용합니다.
     + 유형: `AWS::IAM::Role::Arn`
   + **RestApiId(필수):**
     + 설명: (필수) 문제 해결이 필요한 API의 API ID입니다. 10자의 영숫자 문자열이어야 합니다.
     + 유형: `String`
     + 허용된 패턴: `^[a-zA-Z0-9]{10}$`
   + **StageName(필수):**
     + 설명: (필수) 배포된 단계의 이름입니다. 문자, 숫자, 밑줄 또는 하이픈을 포함하는 1\$1128자여야 합니다.
     + 유형: `String`
     + 허용된 패턴: `^[a-zA-Z0-9_\\-]{1,128}$`
   + **ResourcePath(선택 사항):**
     + 설명: (선택 사항) 메서드가 구성된 리소스 경로입니다. 예: `/`, `/store/items`, `/{resource}`.
     + 유형: `String`
     + 기본값: `/`
   + **HttpMethod(선택 사항):**
     + 설명: (선택 사항) 구성된 리소스 경로의 메서드입니다.
     + 유형: `String`
     + 허용된 값: `[ANY, DELETE, HEAD, OPTIONS, GET, POST, PUT, PATCH]`
     + 기본값: `GET`
   + **StartTime(선택 사항):**
     + 설명: (선택 사항) CloudWatch Logs를 쿼리하기 위한 시작 날짜 및 시간입니다. 형식: UTC 시간대`yyyy-MM-ddTHH:mm:ss`입니다. 지정하지 않으면 기본값은 현재 시간 3일 전입니다.
     + 유형: `String`
     + 허용된 패턴: `^$|^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T(2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$`
     +  기본값: `""`
   + **EndTime(선택 사항):**
     + 설명: (선택 사항) CloudWatch Logs 쿼리의 종료 날짜 및 시간입니다. 형식: UTC 시간대`yyyy-MM-ddTHH:mm:ss`입니다. 지정하지 않으면 기본값은 현재 시간입니다.
     + 유형: `String`
     + 허용된 패턴: `^$|^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T(2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$`
     +  기본값: `""`
   + **AccessLogs(선택 사항):**
     + 설명: (선택 사항) 액세스 로그를 분석해야 하는지 여부입니다.
     + 유형: `Boolean`
     + 허용된 값: `[true, false]`
     + 기본값: `false`
   + **RequestId(선택 사항):**
     + 설명: (선택 사항) 오류가 관찰된 요청에 대한 요청 ID입니다. 유효한 UUID 형식이어야 합니다.
     + 유형: `String`
     + 허용된 패턴: `^$|^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$`
     + 기본값: `""`

1. **실행**을 선택합니다.

1. 자동화가 시작됩니다.

1. 문서는 다음 단계를 수행합니다.
   + **CheckApiExists**:

     제공된 REST API가 존재하고 액세스에 필요한 권한이 있는지 확인합니다.
   + **CheckStageExists**:

     제공된 단계 이름이 지정된 API에 있는지 확인하고 액세스 로그 그룹 정보를 검색합니다.
   + **CheckResourceExists**:

     제공된 리소스 경로가 API에 있는지 확인하고 리소스 ID를 검색합니다.
   + **CheckMethodExists**:

     지정된 리소스에 대해 제공된 HTTP 메서드가 존재하는지 확인합니다.
   + **AnalyseLogs**:

     제공된 파라미터를 사용하여 로그를 검색하고 발견된 오류를 기반으로 권장 사항을 반환합니다. 이 단계에서는 실행 및 액세스 로그(활성화된 경우)를 모두 분석하여 4XX 및 5XX 오류를 식별하고 특정 수정 지침을 제공합니다.

1. 완료 후 **출력** 섹션에서 오류 분석 및 문제 해결 권장 사항을 포함한 실행의 자세한 결과를 검토합니다.

**참조**

Systems Manager Automation
+ [이 자동화 실행(콘솔)](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootAPIGatewayHttpErrors/description)
+ [자동화 실행](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [Automation 설정](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [자동화 워크플로 지원](https://aws.amazon.com/premiumsupport/technology/saw/)