Route 53에 존재하지 않는 호스트 이름에 대한 청구 비용 완화

Route 53에 존재하지 않는 호스트 이름에 대한 청구 비용 완화

이 청구 주기가 시작된 지 5일이 지났고 내 Route 53 영역은 내가 최근에 삭제한 특정 호스트에 대해 3,300만 개가 넘는 요청을 받았습니다. 그리고 관련 DNS 레코드도 삭제되었습니다.

존재하지 않는 호스트 레코드에 대한 쿼리에 대해 비용이 청구될 것이라고는 생각하지 않았지만 실제로 청구 대시보드에 따르면 그렇습니다. 그리고 삭제된 이후 쿼리 수가 두 배로 늘어났습니다. 일부 초기 쿼리 로깅 및 조사에 따르면 클라이언트가 삭제된 호스트 이름에 대해 중복된 요청을 많이 하는 것으로 나타났습니다.

관심이 있으시다면 이 호스트는 WebRTC 및 VOIP 통화를 부트스트랩하기 위한 STUN 프로토콜용 공개 공개 서버로 운영되고 있었습니다. 이 공용 서버를 운영하는 데 드는 청구 비용이 감당할 수 없을 정도로 늘어나고 있었습니다. 그래서 새 IP 주소와 새 호스트 이름으로 옮겼습니다. 나는 최근 DNS 주소를 코드와 샘플 문서에 하드코딩한 다른 잘 알려진 공공 서비스에 대해 알게 되었습니다.

오늘 밤에는 4일 TTL을 사용하여 127.0.0.1(또는 ::1)로 확인되는 가짜 A 및 AAAA 레코드를 다시 추가했습니다. 이렇게 하면 요청을 반복하는 코드가 요청을 중지하고 다운스트림 DNS 서버에 항목이 캐시되도록 할 수 있습니다. 그러나 과도하고 중복된 DNS 쿼리는 항상 제가 감당할 수 없는 비용이 많이 드는 문제였습니다. 저는 수년 동안 호스트 서비스에 대한 DDOS 공격을 처리하고 완화해 왔지만 Route 53 클라이언트가 중복 요청을 생성하도록 방화벽을 설치하는 방법을 전혀 이해하지 못했습니다.

이상적인 솔루션은 Route 53이 삭제된 호스트 이름에 대한 요청을 무시하고 그에 대한 비용을 청구하지 않는 것입니다.

내 옵션은 무엇입니까?

답변1

레코드를 삭제하는 대신 로컬 호스트 IP 주소와 매우 긴 TTL을 사용하여 유효한 응답을 반환하는 현재 솔루션이 실제로 하나의 솔루션입니다.

Amazon Route 53의 (현재) 공식 문서말하고 제안한다대안적인 접근법

Route 53이 응답하는 경우NXDOMAIN 또는 NODATA 응답(부정 응답)이 포함된 DNS 쿼리에는 표준 쿼리에 대한 요금이 청구됩니다.(Amazon Route 53 요금의 "쿼리" 참조) 부정적인 응답으로 인한 비용이 우려되는 경우:

  • SOA 레코드의 TTL 값을 늘립니다(기본적으로 900초로 설정됨).

  • SOA 레코드에서 최소 TTL(Time To Live) 값(기본적으로 86400초(= 24시간))을 늘립니다.

그러면 특정 DNS 레코드가 존재하지 않는다는 Route 53의 DNS 응답, NXDOMAIN 및/또는 NODATA 응답이 캐시되는 시간이 늘어납니다(네거티브 캐싱을 지원하는 적절한 확인자에서). 그러면 비용이 청구되는 요청 수가 줄어들 것입니다.


SOA 레코드에는 다음 요소가 포함됩니다.

최소 TTL(Time to Live)입니다. 이 값은 재귀 확인자가 Route 53에서 다음 응답을 캐시해야 하는 시간을 정의하는 데 도움이 됩니다.

  • NXDOMAIN example.com과 같이 DNS 쿼리에 지정된 이름을 가진 어떤 유형의 레코드도 없습니다. 또한 zenith.example.com과 같이 DNS 쿼리에 지정된 이름의 하위 항목인 레코드도 없습니다.

  • 노다타DNS 쿼리에 지정된 이름을 가진 레코드가 하나 이상 있지만 해당 레코드 중 DNS 쿼리에 지정된 유형(예: A)이 없습니다.

DNS 해석기가 NXDOMAIN 또는 NODATA 응답을 캐시하는 것을 네거티브 캐싱이라고 합니다.

음성 캐싱 기간은 다음 값 중 더 작습니다.

  • 이 값은 SOA 레코드의 최소 TTL입니다. 예에서 값은 86400(1일)입니다.
  • SOA 레코드의 TTL 값입니다.

Route 53이 응답하는 경우NXDOMAIN 또는 NODATA 응답(부정 응답)이 포함된 DNS 쿼리에는 표준 쿼리에 대한 요금이 청구됩니다.(Amazon Route 53 요금의 "쿼리" 참조) 부정적인 응답으로 인한 비용이 우려되는 경우 한 가지 옵션은 SOA 레코드의 TTL, SOA 레코드의 최소 TTL(이 값) 또는 둘 다를 변경하는 것입니다. 전체 호스팅 영역에 대한 부정적인 응답에 적용되는 이러한 TTL을 늘리면 긍정적인 효과와 부정적인 효과가 모두 발생할 수 있습니다.

...

관련 정보