API Gateway에서 REST API에 대한 스테이지 설정 - Amazon API Gateway

API Gateway에서 REST API에 대한 스테이지 설정

단계란 API의 스냅샷인 배포에 대한 명명된 참조입니다. 단계를 사용하여 특정 배포를 관리하고 최적화합니다. 예를 들어 캐싱을 활성화하거나, 요청 조절을 사용자 지정하거나, 로깅을 구성하거나, 스테이지 변수를 정의하거나, 테스트용 Canary 릴리스를 연결하도록 스테이지 설정을 구성할 수 있습니다. 다음 섹션에서는 스테이지를 생성하고 구성하는 방법을 보여줍니다.

새 단계 생성

처음 배포한 후 단계를 더 추가하고 이를 기존 배포에 연결할 수 있습니다. API Gateway 콘솔을 사용하여 새 단계를 생성하거나, API를 배포할 때 기존 단계를 선택할 수 있습니다. 일반적으로, API를 재배포하기 전에 API 배포에 새 단계를 추가할 수 있습니다. API Gateway 콘솔을 사용하여 새 스테이지를 생성하려면 다음 단계를 따릅니다.

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

  2. REST API를 선택합니다.

  3. 기본 탐색 창에서 API에 대해 스테이지를 선택합니다.

  4. 스테이지 탐색 창에서 스테이지 생성을 선택합니다.

  5. 스테이지 이름에 이름(예: prod)을 입력합니다.

    참고

    단계 이름에는 영숫자, 하이픈, 밑줄만 사용할 수 있습니다. 최대 길이는 128자입니다.

  6. (선택 사항). 설명에 간략한 설명을 입력합니다.

  7. 배포에서 이 스테이지와 연결하고자 하는 기존 API 배포의 날짜와 시간을 선택합니다.

  8. 추가 설정에서 스테이지에 대한 추가 설정을 지정할 수 있습니다.

  9. 스테이지 생성을 선택합니다.

스테이지 설정 수정

API 배포에 성공하면 해당 단계가 기본 설정으로 채워집니다. 콘솔 또는 API Gateway REST API를 사용하여 API 캐싱 및 로깅을 포함한 단계 설정을 변경할 수 있습니다. 다음 단계에서는 API Gateway 콘솔의 스테이지 편집기를 사용하여 이 작업을 수행하는 방법을 보여줍니다.

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

  2. REST API를 선택합니다.

  3. 기본 탐색 창에서 API에 대해 스테이지를 선택합니다.

  4. 단계(Stages) 창에서 단계 명칭을 선택합니다.

  5. 스테이지 세부 정보 섹션에서 편집을 선택합니다.

  6. (선택 사항) 스테이지 설명에서 설명을 편집합니다.

  7. 추가 설정에서 다음 설정을 수정합니다.

    캐시 설정

    스테이지에 API 캐싱을 활성화하려면 프로비저닝 API 캐시를 활성화합니다. 그런 다음 기본 메서드 수준 캐싱, 캐시 용량, 캐시 데이터 암호화, 캐시 수명 시간(TTL) 및 키별 캐시 무효화에 대한 요구 사항을 구성합니다.

    기본 메서드 수준 캐싱을 설정하거나 특정 메서드에 대해 메서드 수준 캐시를 켜야 캐시가 활성화됩니다.

    캐시 설정에 관한 자세한 내용은 API Gateway의 REST API 캐시 설정 섹션을 참조하세요.

    참고

    API 단계에 대한 API 캐싱을 활성화하는 경우, AWS 계정에 API 캐싱 요금이 청구될 수 있습니다. 캐싱은 AWS 프리 티어에서 제공되지 않습니다.

    제한 설정

    이 API에 연결된 모든 메서드에 스테이지 수준 제한 대상을 설정하려면 제한을 켭니다.

    요율에서 대상 요율을 입력합니다. 토큰이 토큰 버킷에 추가되는 속도(초당 요청 수)입니다. 스테이지 수준 속도는 REST API 구성 및 실행에 대한 API Gateway 할당량에 지정된 계정 수준 속도보다 클 수 없습니다.

    버스트에 대상 버스트율을 입력합니다. 버스트율은 토큰 버킷의 용량입니다. 이렇게 하면 일정 기간 동안 목표 요율보다 더 많은 요청을 처리할 수 있습니다. 이 단계 수준 버스트율은 REST API 구성 및 실행에 대한 API Gateway 할당량에 지정된 계정 수준 버스트율보다 클 수 없습니다.

    참고

    제한 속도는 엄격한 제한이 아니며 최선으로 적용됩니다. 경우에 따라 클라이언트가 설정한 대상을 초과할 수 있습니다. 비용을 제어하거나 API에 대한 액세스를 차단하기 위해 제한에 의존하지 마십시오. 비용을 모니터링하는 데 AWS Budgets를 사용하고 API 요청을 관리하는 데 AWS WAF를 사용하는 것이 좋습니다.

    방화벽 및 인증서 설정

    AWS WAF 웹 ACL을 스테이지와 연결하려면 웹 ACL 드롭다운 목록에서 웹 ACL을 선택합니다. 원하는 경우 Block API Request if WebACL cannot be evaluated (Fail- Close)(WebACL을 평가할 수 없는 경우 API 요청 차단(Fail-Close))를 선택합니다.

    스테이지의 클라이언트 인증서를 선택하려면 클라이언트 인증서 드롭다운 메뉴에서 인증서를 선택합니다.

  8. 계속을 선택합니다.

  9. 변경 사항을 검토하고 변경 사항 저장을 선택합니다.

  10. 이 API Gateway API의 이 스테이지와 연결된 모든 메서드에 대해 Amazon CloudWatch Logs를 활성화하려면 로그 및 추적 섹션에서 편집을 선택니다.

    참고

    CloudWatch Logs를 활성화하려면 API Gateway가 사용자를 대신하여 CloudWatch Logs에 정보를 기록할 수 있도록 하는 IAM 역할의 ARN도 지정해야 합니다. 이를 위해 APIs(API) 기본 탐색 창에서 설정을 선택합니다. 그런 다음 CloudWatch 로그 역할에 IAM 역할의 ARN을 입력합니다.

    일반적인 애플리케이션 시나리오에서 IAM 역할은 다음과 같은 액세스 정책 설명이 포함된 AmazonAPIGatewayPushToCloudWatchLogs의 관리형 정책을 연결할 수 있습니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents", "logs:FilterLogEvents" ], "Resource": "*" } ] }

    IAM 역할에는 다음과 같은 신뢰 관계 설명도 포함되어야 합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "apigateway.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    CloudWatch에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서를 참조하세요.

  11. CloudWatch Logs 드롭다운 메뉴에서 로깅 수준을 선택합니다. 로깅 수준은 다음과 같습니다:

    • 끄기 - 이 단계에서는 로깅이 켜져 있지 않습니다.

    • 오류만 - 오류에 대해서만 로깅이 활성화됩니다.

    • 오류 및 정보 로그 - 모든 이벤트에 대해 로깅이 활성화됩니다.

  12. API Gateway가 단계에 대한 데이터 추적 로깅을 CloudWatch에 보고하도록 하려면 데이터 추적을 선택합니다. 이 기능은 API 문제를 해결하는 데 유용하지만 민감한 데이터를 로깅할 수 있습니다.

    참고

    프로덕션 API에는 데이터 추적을 사용하지 않는 것이 좋습니다.

  13. 세부 지표플 선택하여 API calls, Latency, Integration latency, 400 errors, 500 errors의 API 지표를 클라우드에 보고하도록 API Gateway에 요청합니다. CloudWatch에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서에서 기본 모니터링 및 세부 모니터링을 참조하세요.

    중요

    메서드 수준 CloudWatch 지표 액세스에 대한 요금이 사용자 계정으로 청구되지만, API 수준 또는 단계 수준 지표에 대한 요금은 청구되지 않습니다.

  14. 대상에 대한 액세스 로깅을 활성화하려면 사용자 지정 액세스 로깅을 켭니다.

  15. 액세스 로그 대상 ARN에 로그 그룹 또는 Firehose 스트림의 ARN을 입력합니다.

    Firehose의 ARN 형식은 arn:aws:firehose:{region}:{account-id}:deliverystream/amazon-apigateway-{your-stream-name}입니다. Firehose 스트림의 이름은 amazon-apigateway-{your-stream-name}이어야 합니다.

  16. 로그 형식에 로그 형식을 입력합니다. 예제 로그 형식에 대한 자세한 내용은 API Gateway에 대한 CloudWatch 로그 형식 섹션을 참조하세요.

  17. API 스테이지에 대해 AWS X-Ray 추적을 활성화하려면 X-Ray 추적을 선택합니다. 자세한 내용은 API Gateway에서 X-Ray를 사용하여 REST API에 대한 사용자 요청 추적 단원을 참조하십시오.

  18. 변경 사항 저장(Save changes)을 선택합니다. API를 다시 배포하여 새 설정을 적용합니다.

스테이지 수준 설정 재정의

스테이지 수준 설정을 사용자 지정한 후 각 API 메서드에 대해 해당 설정을 재정의할 수 있습니다. 이러한 옵션 중 일부를 사용하면 AWS 계정에 추가 요금이 발생합니다.

  1. 메서드 재정의를 구성하려면 보조 탐색 창 아래에서 스테이지를 확장한 다음 메서드를 선택합니다.

    보조 탐색 창에서 스테이지를 확장한 다음 메서드를 선택합니다.
  2. 메서드 재정의에서 편집을 선택합니다.

  3. 메서드 수준의 CloudWatch 설정을 켜려면 CloudWatch Logs에 대해 로깅 수준을 선택합니다.

  4. 메서드의 데이터 추적 로깅을 활성화하려면 데이터 추적을 선택합니다.

    참고

    프로덕션 API에는 데이터 추적을 사용하지 않는 것이 좋습니다.

  5. 메서드 수준의 세부 지표를 켜려면 세부 지표를 선택합니다. 메서드 수준 CloudWatch 지표 액세스에 대한 요금이 사용자 계정으로 청구되지만, API 수준 또는 단계 수준 지표에 대한 요금은 청구되지 않습니다.

  6. 메서드 수준 제한을 켜려면 제한을 선택합니다. 적절한 메서드 수준 옵션을 입력합니다. 제한에 대한 자세한 내용은 API Gateway의 처리량 향상을 위해 REST API에 대한 요청을 제한할 수 있습니다.을 참조하십시오.

  7. 메서드 수준 캐시를 구성하려면 메서드 캐시 활성화를 선택합니다. 스테이지 세부 정보에서 기본 메서드 수준 캐싱 설정을 변경해도 이 설정에는 영향을 주지 않습니다.

  8. Save(저장)를 선택합니다.