Amazon API Gateway 로그를 문제 해결에 사용하려면 어떻게 해야 하나요?

3분 분량
0

Amazon API Gateway 로그를 사용하여 API 문제를 해결하고 싶습니다.

간략한 설명

API Gateway REST API 또는 WebSocket API의 문제를 해결하려면 Amazon CloudWatch Logs를 사용해 실행 로깅과 액세스 로깅을 활성화합니다. API Gateway AWS Identity and Access Management(IAM) 역할에 필요한 모든 권한을 연결했는지 확인하세요. 지침은 API Gateway REST API 또는 WebSocket API의 문제를 해결하기 위해 CloudWatch Logs를 활성화하려면 어떻게 해야 하나요?를 참조하세요.

참고: HTTP API는 현재 액세스 로깅만 지원하며 이러한 API의 로깅 설정은 다릅니다. 자세한 내용은 HTTP API의 로깅 구성을 참조하세요.

해결 방법

로깅을 켜면 API 게이트웨이가 **API-Gateway-Execution-Logs/{rest-api-id}/{stage-name}**이라는 CloudWatch 로그 그룹을 자동으로 생성합니다. 자세한 내용은 API Gateway에 대한 CloudWatch 로그 형식을 참조하세요.

AWS Lambda Authorizer

API에 Lambda Authorizer가 켜져 있는 경우, 로그에는 요청이 승인되었는지 여부가 표시되며 Authorizer 및 요청 ID가 포함됩니다.

승인된 로그의 예:

Starting authorizer: 62mgrc for request: 3323ffe5-6ddf-45c8-896a-b45ec2284cc0
Successfully completed authorizer execution

승인되지 않은 로그의 예:

Starting authorizer: 62mgrc for request: fd443056-60d0-425f-874e-e93e5d61351e
Unauthorized request: fd443056-60d0-425f-874e-e93e5d61351e

사용량 계획

Lambda Authorizer 로깅 후 API Gateway는 API 요청에 대한 사용량 계획을 확인합니다. 사용량 계획을 구성하지 않은 경우 API 요청은 제한 한도에 포함되지 않습니다.

사용량 계획 로그의 예:

Verifying Usage Plan for request: 3323ffe5-6ddf-45c8-896a-b45ec2284cc0. API Key: API Stage: <api_id>/<stage>
API Key authorized because method 'GET /' does not require API Key. Request will not contribute to throttle or quota limits
Usage Plan check succeeded for API Key and API Stage <api_id>/<stage>

API 키로 API를 구성했지만 X-API-key 헤더가 누락된 경우 로그에서 다음과 비슷한 오류가 반환됩니다.

API Key not authorized because method 'GET /' requires API Key and API 
Key is not associated with a Usage Plan for API Stage 
<api_id>/<stage>: API Key was required but not present

헤더에 올바른 API 키를 추가했지만 요청이 제한된 경우 로그에서 다음과 비슷한 오류가 반환됩니다.

API Key **********************************FGQes7 exceeded throttle limit for API Stage <api_id>/<stage>: Key throttle limit exceeded for Usage Plan ID iwuzkt. Limit: 5.00 Burst: 0
Method completed with status: 429

요청 로그 유형

참고: 모든 요청 로그 유형은 실행 로그에 **전체 요청/응답 데이터 로깅(Log full requests/responses data)**을 켜야 합니다.

메서드 요청 로그

메서드 요청 로그에는 요청 경로, 쿼리 파라미터, 요청 헤더 및 요청 본문을 포함하여 API 요청에서 수신한 세부 정보가 포함됩니다.

엔드포인트 요청 로그

엔드포인트 요청 로그에는 URI, 요청 헤더 및 요청 본문을 포함하여 API 요청에서 수신한 세부 정보가 포함됩니다.

엔드포인트 요청에 포함된 데이터는 추가 처리를 위해 백엔드 통합으로 전송됩니다.

엔드포인트 응답 로그

엔드포인트 응답 로그에는 상태 코드, 헤더 본문 및 통합 지연 시간을 포함하여 백엔드 통합에서 반환한 데이터가 포함됩니다.

메서드 응답 로그

메서드 응답 로그에는 변환 후 클라이언트로 전송된 헤더와 본문이 포함됩니다.

중요: API 게이트웨이는 로그 이벤트를 1024바이트로 제한합니다. 요청 및 응답 본문과 같이 1024바이트보다 큰 로그 이벤트는 CloudWatch 로그에 제출하기 전에 API Gateway에서 잘라냅니다.


관련 정보

API Gateway REST API에 대해 누락된 CloudWatch 로그 문제를 해결하려면 어떻게 해야 합니까?

API Gateway에서 REST API에 대한 CloudWatch 로깅 설정

Amazon CloudWatch 지표를 사용한 REST API 실행 모니터링

CloudWatch 지표로 WebSocket API 실행 모니터링

AWS 공식
AWS 공식업데이트됨 일 년 전