Extra Form
PHP PHP 7.4
CMS Rhymix 2.1

안녕하세요.

 

호스팅업체에서 일 20Gb 트래픽을 지원받고있습니다.

 

사이트 가오픈 당시 매일 10GB도 나오지 않아 안심했는데, 정식오픈을 하니 일주일이 넘도록 일 50,60 GB 가 넘네요.

 

봇들은 대부분 막아놨으며 (robots.txt) , 심지어 검색봇들도 그냥 차단했습니다.

 

별소용이 없는걸보아..  봇때문에 생긴 문제가 아닌 정상 유저들 증가로 생긴일 같습니다.

 

저희사이트가 이미지가 메인인 사이트라 더 심할거같고요..

 

SmartSelect_20240708_062706_Samsung Internet.jpg

(일주일사이 갑자기 늘어났네요^^ㅠ)

 

질문은 이렇습니다.

 

이런 상황에서 트래픽 대역폭을 제한하려 합니다.

 

1. mod_ratlimit 

해당 모듈이 트래픽 제어 모듈이라는 설명을 들었습니다.

 

모듈 설명으론 유용해보이는데 xetown 도 그렇고 많은 사람이 사용하진않더라구요. 이 방법이 아닐까요?

 

2. nginx 제어

 

https://junyoungs.blogspot.com/2014/08/nginx.html?m=1

 

(참고: https://xetown.com/questions/774073)

nginx 에서 직접 제어하는 방법입니다.

 

저같은 상황에서 이렇게 하는게 맞나요?

 

2-1. 2번 방법이라면, 대역폭을 얼마로 제한해야하나요?

 

계산하기 편하게, 일일 트래픽 지원이 24GB 라고한다면

(스샷에서 보시다 싶이 전송기준이 /sec 이므로)

24시간 24GB

1시간 1GB

...

1초 약 250KB

 

이므로

 

nginx.conf 수정

location ... { 

    최대 대역폭
    limit_rate 200k; <<얘를 250kb 로 수정 (k 는 아니고 kb 쓰는게 맞겠죠?)

    일정 용량을 전송 제한
    limit_rate_after 원하는용량M; << 이 부분은 이해하지 못했습니다.

}

 

250kb 로 제한하는게 맞을까요?

 

2-2 일정 용량을 전송 제한
    limit_rate_after 원하는용량M; << 이 부분은 이해하지 못했습니다.

 

이부분은 따로 설정없이 모든 대역폭을 제한하고싶으면 0Mb 으로 하는건가요, 아예 이 구절을 빼도 되는걸까요?

 

 

감사합니다.

  • profile
    이미지가 메인인 사이트면 트래픽이 많이 지원되는 사이트로 옮기세요. 광고도 다시고요. 이정도 트래픽이면 어느정도의 페이지뷰가 나오는 것 같은데요.
  • profile ?
    추천해주실 업체가있나요?
  • ? profile
    국내 서버 고수하시든 해외로 이전하시든 외국 업체 쓰세요. 님 같은 케이스는 외국 검색봇 때문에 트래픽이 늘어나는 케이스인데 적잖은 수의 국내 업체들이 님같은 사례를 안좋아합니다. 돈이 적지 않으시다면 AWS EC2 세이빙 플랜 지르시는 것을 추천드리고요. 월 100기가는 트래픽 무료이고 클라우드프론트랑 연동시에는 1테라 무료입니다. 돈이 적으시다면 오라클 클라우드(무료 서버가 아니라 유료 서버를 쓰세요. AWS 보다는 저렴하고 10테라 트래픽 무료입니다)를 쓰시고요. 현재 vultr는 비추합니다. 한국 지점은 트렌짓 계약을 바꿨는지 벌처 룩킹 글래스 보니까 일본을 거처가는 문제가 있어서 국내 서버를 스나 마나입니다. 해외 지점은 리노드나 디지털오션 같은 상위호환이 존재하고요.
  • profile

    limit_rate 200k; 하면 서버의 전체 트래픽이 200k로 제한되는 것이 아니고, 한 사람 한 사람의 전송 속도가 200k로 제한됩니다. 열 명이 접속한다면 합계 2000k를 사용할 수 있겠지요. 즉, 서버 입장에서는 트래픽 절약 효과가 거의 없고, 사용자 입장에서는 휴대폰 데이터 제공량이 다 떨어졌을 때 3G 속도로 떨어지는 것 같은 답답함을 느끼게 됩니다.

     

    봇을 차단하신 것이 맞는지 확인하는 것이 우선입니다. 정말로 문제를 일으키는 악성 봇은 robots.txt를 따르지 않습니다. nginx 설정을 건드릴 수 있는 서버라면 nginx 접속 로그도 모두 볼 수 있을 테니, 접속 로그에서 의심스러운 user-agent를 모두 찾아 nginx 설정에서 차단하시기 바랍니다.

  • profile ?

    네 무슨 user agent 인지 확인해보니까 CriteoBot, bingbot, YandexBot, 구글봇 이런 류의 얌전한? 심각하지않은 봇들이 들어온걸 확인했습니다.

    criteo와 yandex 는 차단했고, bing 과 구글 봇은 심지어 crawl-delay 까지 시켰습니다.

    어제 그러고 잤는데 고작 6시간만에 트래픽 14gb 가 또 찼습니다.

    cdn (클라우드플레어)이용해서 이미지루트 file/attach/image/.* 는 전부 캐시 1년하게 설정도 해놨습니다.

    위에 적은 봇들(criteo yandex)은 robots.txt 로 안막아질정도로 nginx 에서 설정으로 막아야하나요?

    어쨌든 트래픽을 일20gb 밑으로 되게끔해야하는데, limit_rate 나 cdn 으로 이미지 캐싱, robots.txt 가 이렇다할 효과가 안보입니다.

    클라우드플레어 트래픽를 보면 이제 사람일 확률 비율이 99퍼정도며 지금 추가로 속도 제한 룰도 설정했습니다.

    서버에서 유저, 즉 아웃바운드 트래픽에대해서만 과금을 하는데 그게 일20gb 씩만 지원이 돼서요.
    limit_rate 220k 를 해도 사이트 속도가 느려지진 않았는데, 어차피 cdn 이 중재를 하는거면 더 낮춰야하는건지,, 

    트래픽이 고민입니다ㅜㅜ


    조언을 부탁드립니다.

  • ? profile

    구글, 빙, 네이버 등 주요 검색엔진 외에는 robots.txt를 무시한다고 가정하는 것이 안전합니다.
    요즘 여기저기서 난리를 피워대는 Claudebot, facebookexternalhit도 robots.txt 따위 신경쓰지 않습니다.
    그나마 robots.txt를 참고한다고 하는 로봇들도 며칠에 한 번쯤 정책 변경을 반영할 뿐이죠.
    심지어 구글봇도 crawl-delay는 무시합니다.
    즉, 사실상 의미 없게 된 지 오래입니다. 강제성 있는 조치가 아니니까요.

    위에 말씀드린 것처럼 limit_rate를 해도 트래픽 총량을 제한하는 효과는 없습니다.
    쓸모없는 기능이니 이쪽은 더이상 파 볼 가치가 없습니다. 시간낭비예요.

    단, 모든 이미지를 캐싱해 주는 클플 같은 CDN을 사용하시는데도
    트래픽이 전혀 줄어들지 않는 것은 이상합니다.
    개발모드로 설정되어 있거나, 캐싱이 제대로 안 되는 상태가 아닌지 의심해 보셔야겠습니다.

    만약 CDN을 적용하고도 하루 50GB의 트래픽이 필요한 사이트라면 (움짤이 많다거나...)
    하루 50GB 이상의 트래픽을 사용할 수 있는 업체로 옮기는 수밖에요.
    국내에 진출한 외국계 클라우드들 대부분 TB 단위의 트래픽을 제공하는데,
    사이트의 필요에 따라 서버를 선택해야지, 서버의 필요에 따라 사이트를 불구로 만들 수는 없잖아요.

  • ? profile
    얀덱스는 검색엔진봇이고 그리고 크리테오는 광고쪽 봇이라 막으면 광고수익에 지장가기 때문에 막지 않은걸 추천드리고 업체 옮기시는 것을 추천드려요.
  • profile profile

    질문자분이 실제로 사용하시는 광고 플랫폼과 관련없는 봇이라면 모두 불청객이죠. 구글봇까지 차단했다는 것을 보면 구글 애드센스도 사용하시지 않는 모양인데, 다른 광고 플랫폼을 신경쓸 여유가 있으실지 모르겠네요.

    질문으로부터 유추할 수 있는 개인의 상황이나 우선순위를 고려하지 않은 일반론적인 답변은 주의해야 합니다.

    예를 들어 트래픽 초과요금이 아까워서 사이트 접속 속도를 늦추려고 할 만큼 비용에 예민한 소비자에게, 비용 예측 자체가 어려운 AWS EC2를, 그것도 몇 년간 지속적으로 이용하지 않으면 상당한 위약금이 발생할 수 있는 세이빙 플랜을 권하는 것이 과연 적절한지 의문입니다.

  • profile profile

    EC2의 변수는 트래픽 이그레스 비용인데, 최근에 월 100기가 이그레스를 주고 클라우드프론트랑 연결 시 무료 1테라 트래픽을 줘서 약정을 해야한다는 점을 감수하면 나쁘지 않다고 봅니다. EC2는 온디멘드는 너무 비싸서 24/7로 돌리려면 예약 인스턴스나 세이빙 플랜을 줘야 합니다. 예약 인스턴스의 경우 서버를 팔 수 있다는 장점이 있지만 페이오니어 등을 통해 미국 수취 계좌를 확보해야 하는 문제가 있어서 예약 인스턴스 스케일 업을 해도 그대로 할인 혜택이 되는 EC2 Instance Savings Plans 추천하는 편입니다. https://aws.amazon.com/ko/savingsplans/faq/ 어차피 웹 서버는 24/7 돌아가야 하고요.

     

    vultr 서울지점 연결 이슈는 실존하는 이슈고 제가 관련 글까지 썼습니다. https://xetown.com/topics/1830741 글 보시면 알겠지만 위치만 서울 서버일 뿐 실질적으로 일본 서버랑 다를 바가 없는 상황입니다. 핑도 일본 서버 만큼 나오고요. 결국 한국 서버를 쓰고 싶은데 외국계를 쓰고 싶을 경우 vultr를 빼면 남는 선택지는 사실상 하이퍼스케일러 CSP 뿐입니다.

    물론 AWS 비용이 부담된다는건 저도 알기 때문에 오라클 클라우드도 대안으로 제시했습니다. 하지만 서버 관리 하는 입장에서 오라클 클라우드 쓰기에는 대시보드라든지 자체 방화벽이 있음에도 불구하고 iptable 설정을 일일히 해줘야 하는 등 불편함이 있기 때문에 AWS를 우선적으로 추천하는 겁니다. 참고로 오라클 클라우드는 UFW 사용이 안되서 무조건 iptable 써야 하고 클라우드 방화벽 설정과 별개로 iptable에서 포트 오픈 작업도 해줘야 합니다. 애저나 GCP도 AWS랑 상황이 그렇게 다르지 않고 100기가 이그레스도 주지 않는 걸로 알고 있습니다.