Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mitigate possible bandwidth surge #13

Open
1 of 3 tasks
hcho3 opened this issue Jul 27, 2020 · 2 comments
Open
1 of 3 tasks

Mitigate possible bandwidth surge #13

hcho3 opened this issue Jul 27, 2020 · 2 comments

Comments

@hcho3
Copy link
Owner

hcho3 commented Jul 27, 2020

AWS charges a premium for outgoing traffic:

This results in surprise bills for many users. Here's one recent example: https://news.ycombinator.com/item?id=23956671

Here are some ways the XGBoost CI server can be hit with massive bandwidth bill:

  • Someone may hard-link a nightly build of XGBoost in their Dockerfile or a Kubernetes script, and each deployment will download the build (~100 MB) from our S3 bucket.
  • A mis-configured script or CI may send lots of requests to our S3 bucket or the website https://xgboost-ci.net.
  • https://xgboost-ci.net may get hit with a DDoS attack.

We need to implement the following mitigation measures:

  • Put https://xgboost-ci.net behind a CDN service like CloudFlare.
  • Monitor outbound traffic from S3 buckets and set up alarms for anomalously high traffic.
  • Automatically shut down access to S3 bucket when the traffic is anomalously high.

cc @trivialfis

@hcho3
Copy link
Owner Author

hcho3 commented Jul 27, 2020

It might be easier to configure an alarm on the S3 bucket, instead of dealing with another VPS provider. Will investigate.

@hcho3
Copy link
Owner Author

hcho3 commented Aug 12, 2020

I created a new Lambda function that will monitor all outbound traffic from the S3 buckets.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant