[AWS] Web ACL 비율 기반(rate limit)으로 트래픽 속도 제어하기

HYEOB KIM·2022년 6월 21일
1

aws

목록 보기
50/62

이전 내용: [AWS] 특정 IP에 대해 블럭하는 Web ACL 생성

개요

  • 대규모 트래픽에 대해 5분 동안 하나의 IP 주소에 대해 최대 요청 수를 지정해서 트래픽을 제어해봅시다.

비율 기반 규칙 생성

  1. 웹 ACL을 생성할 때 또는 기존에 생성된 웹 ACL에서 규칙을 생성합니다.

  2. 타입을 Rate-based rule(비율 기반 규칙)으로 선택합니다.

  3. Rate limit를 입력합니다. Rate limit는 5분 동안 하나의 IP 주소에 대한 요청의 최대값을 의미합니다. 요청 수가 Rate limit를 넘어서면 자동으로 Block됩니다.
    Criteria to count request towards rate limit에서 Consider all requests를 선택하면 모든 요청에 대해 rate limit을 적용하고, Only consider requests that match the criteria in a rule statement를 선택하면, 특정 조건에 맞는 요청만 rate limit를 적용합니다.

  4. (Only consider requests that match the criteria in a rule statement를 선택했다면) 저희는 이전 과정에서 생성한 IP set을 통해서 해당 IP에 대해서만 규칙을 적용합니다.

  5. 규칙에 걸리면 모두 Block 처리됩니다.

AWS 모범 사례(CAPTCHA 이용)

AWS 모범 사례에 따르면 이렇게 비율 기반 규칙으로 트래픽 속도를 제어할 때, 합법적인 사용자를 차단하지 않도록 속도 제한을 상대적으로 높게 유지하는 경우 차단 규칙 앞에 낮은 rate limit와 action으로 CAPTCHA를 이용하는 두 번째 속도 기반 규칙을 추가하는 것이 좋다고 합니다.

CAPTCHAallow, block과 같이 규칙에 걸릴 때 취하는 action중 하나입니다. 아래와 같은 문제 퍼즐을 제출하고 퍼즐을 풀면 토큰을 클라이언트의 쿠키에 발급하는 형식입니다. 면역 시간 동안 토큰은 만료되지 않고 요청에 대한 응답을 즉각적으로 받을 수 있습니다.

CAPTCHA 문제는 사람이 요청을 보내고 있는지 확인하고 웹 스크래핑, 자격 증명 스터핑 및 스팸과 같은 활동을 방지하기 위해 고안되었습니다.

지정 방법은 규칙을 생성할 때 Action 설정에서 CAPTCHA를 선택하는 것입니다.

profile
Devops Engineer

0개의 댓글