

# API Gateway에서 Amazon Data Firehose에 대한 REST API 직접 호출 로깅
<a name="apigateway-logging-to-kinesis"></a>

API에 대한 클라이언트 액세스와 관련된 문제를 디버깅하기 위해 API 호출을 Amazon Data Firehose에 로깅할 수 있습니다. Firehose에 대한 자세한 내용은 [Amazon Data Firehose란 무엇입니까?](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html)를 참조하실 수 있습니다.

액세스 로깅을 위해서는 CloudWatch 또는 Firehose 중 하나만 활성화할 수 있으며 둘 다 활성화할 수 없습니다. 하지만 실행 로깅을 위해 CloudWatch를 활성화하고 액세스 로깅을 위해 Firehose를 활성화할 수 있습니다.

**Topics**
+ [API Gateway에 대한 Firehose 로그 형식](#apigateway-kinesis-log-formats)
+ [Firehose 로깅에 대한 권한](#set-up-kinesis-access-logging-permissions)
+ [API Gateway 콘솔을 사용하여 Firehose 액세스 로깅 설정](#set-up-kinesis-access-logging-using-console)

## API Gateway에 대한 Firehose 로그 형식
<a name="apigateway-kinesis-log-formats"></a>

Firehose 로깅은 [CloudWatch 로깅](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-logging.html)과 동일한 형식을 사용합니다.

## Firehose 로깅에 대한 권한
<a name="set-up-kinesis-access-logging-permissions"></a>

단계에서 Firehose 액세스 로깅이 활성화된 경우, 역할이 이미 존재하지 않으면 API Gateway가 사용자의 계정에 서비스 연결 역할을 생성합니다. 그 역할의 이름은 `AWSServiceRoleForAPIGateway`이고 이 역할에는 `APIGatewayServiceRolePolicy` 관리형 정책이 연결됩니다. 서비스 연결 역할에 대한 자세한 내용은 [서비스 연결 역할 사용](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html) 단원을 참조하십시오.

**참고**  
Firehose 스트림의 이름은 `amazon-apigateway-{your-stream-name}`이어야 합니다.

## API Gateway 콘솔을 사용하여 Firehose 액세스 로깅 설정
<a name="set-up-kinesis-access-logging-using-console"></a>

API 로깅을 설정하려면 API를 단계에 배포해야 합니다. 또한 Firehose 스트림도 생성해야 합니다.

1. [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway)에서 API Gateway 콘솔에 로그인합니다.

1.  다음 중 하나를 수행합니다.

   1.  기존 API를 선택한 다음 스테이지를 선택합니다.

   1.  API를 생성하여 단계에 배포합니다.

1. 기본 탐색 창에서 **스테이지**를 선택합니다.

1.  **로그 및 추적** 섹션에서 **편집**을 선택합니다.

1. Firehose 스트림에 대한 액세스 로깅을 활성화하려면:

   1. **사용자 지정 액세스 로깅**을 활성화합니다.

   1. **액세스 로그 대상 ARN**에 Firehose 스트림의 ARN을 입력합니다. ARN 형식은 `arn:aws:firehose:{region}:{account-id}:deliverystream/amazon-apigateway-{your-stream-name}`입니다.
**참고**  
Firehose 스트림의 이름은 `amazon-apigateway-{your-stream-name}`이어야 합니다.

   1. **로그 형식**에 로그 형식을 입력합니다. **CLF**, **JSON**, **XML** 또는 **CSV**를 선택할 수 있습니다. 예제 로그 형식에 대한 자세한 내용은 [API Gateway에 대한 CloudWatch 로그 형식](set-up-logging.md#apigateway-cloudwatch-log-formats) 섹션을 참조하세요.

1. **Save changes**(변경 사항 저장)를 선택합니다.

이제 API Gateway가 API에 대한 요청을 Firehose에 기록할 준비가 되었습니다. 단계 설정, 로그 또는 단계 변수를 업데이트할 때 API를 다시 배포할 필요가 없습니다.