Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


How do i go about making my own CDN with multiple VPS's?
New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

How do i go about making my own CDN with multiple VPS's?

thammy321thammy321 Member
edited July 2022 in Help

Basically the title. How do i go about making my own CDN by having multiple VPS all over the world?

What should i use? Nginx? Varnish? Something else maybe?

I was thinking to have around 19-20 VPS.

4 in NA + Canada
2 in South America
8 in Europe
4 in Asia + Australia/NZ
1 in Africa

Most of them are on 1gbps, some 10gbps, unlimited BW.

My question is, what kind of CPU and RAM do i need?

I have seen OneClickCDN script which basically turns VPS into a CDN Node, but i have not had much luck with it when it comes to caching etc...

Comments

  • Question is - why?
    For the price of 20 VPS you can have Cloudflare/Bunny/Akamai Pro plan.

    Anyway if it's just for learning, start from here:
    https://shubhamdhiman98.medium.com/how-to-build-your-own-cdn-ff2b8ab7ac4b

    Thanked by 3martheen lzy666 nick_
  • quanhua92quanhua92 Member
    edited July 2022

    I use Google Cloud DNS to route the user to the nearest server with the geodns feature. Each server is a HAProxy that load balances the traffic to a list of nearby webservers.
    For static files, I don't know why you do not want to use Cloudflare or BunnyCDN

  • I was playing with "nginx as CDN POP" a couple of weeks ago.
    You may try my nginx files.
    Geo routing did through route53.

    Thanked by 1lorian
  • yoursunnyyoursunny Member, IPv6 Advocate

    Pay $666 consulting fee to @imgmoney and he'll teach you.
    His CDN is stronger than Akamai, Fastly, Cloudflare, and ChinaCache combined.

  • I do accept 666 push-ups. Payment processor @yoursunny

  • imgmoneyimgmoney Member
    edited July 2022

    OPS trying to create CDN for video streaming services and with VPS it is not possible to have a stable one.

    Instead of VPS he should go with Dedicated Servers with huge ram to store the cache on RAM.

    And he can use cloudns.net for geo balancing and use nginx to cache the content.

    The more easy will be BunnyCDN or CloudFlare

    To Be Honest, for Video he can just do round robins via DNS and cache content in few dedicated servers.

  • @imgmoney said:
    OPS trying to create CDN for video streaming services and with VPS it is not possible to have a stable one.

    Instead of VPS he should go with Dedicated Servers with huge ram to store the cache on RAM.

    And he can use cloudns.net for geo balancing and use nginx to cache the content.

    The more easy will be BunnyCDN or CloudFlare

    Exactly, i forgot to mention that this will be used to serve mostly .mp4 files up to 50mb in size.

    Obviously for static files i will just setup Cloudflare.

    I'm in talks with Bunny right now, their pricing seems to be reasonable and they seem to get recommended by a lot of people on here.

  • yoursunnyyoursunny Member, IPv6 Advocate

    @thammy321 said:
    this will be used to serve mostly .mp4 files up to 50mb in size.

    Deploy the same software as https://pushups.ndn.today and you can use the global push-ups delivery network for free.
    My network along with peering partners has more than 40 Gbps available capacity and can deliver video (push-ups or otherwise) to hundreds of viewers at the same time.
    The software is available at https://github.com/yoursunny/NDNts-video-server

  • ralfralf Member
    edited July 2022

    @imgmoney said:
    I do accept 666 push-ups. Payment processor @yoursunny

    @yoursunny also never grumbles when someone does a chargeback.

    Thanked by 1yoursunny
  • speedypagespeedypage Member, Patron Provider
    edited July 2022

    If the content will be replicated across all servers from the get-go and you can ensure you can copy the video files to all nodes, Bunny is currently releasing DNS that supports both latency + geo location routing and it also has HTTP monitoring to take a server that may be offline out of the mix. This could then effectively work as a CDN with permanent-caching by just using a basic web server to serve the files.

    If the content needs to be available on all servers even if it's only currently on 1, perhaps Bunny's Edge Storage would be an option as it'll be georeplicated and available from all even if it hadn't yet replicated to the other nodes.

    I can understand why a user may not wish to just use a CDN alone, as if it doesn't have a high cache HIT rate - traffic will be slower due to it constantly going back to the origin. The two above setups would work around this issue.

    Thanked by 1trewq
  • a7medo778a7medo778 Member

    so while i am a bit late to the party, I am in a similar position, i used to do hetzner cloud puppeteer to spin up delivery nodes when needed.
    but now its a client project so the question is how to do a cdn switcher with Backblaze as the storage backbone @imgmoney @yoursunny

    its pure video cdn, and not that picky about the latency thingy

    Thanked by 1yoursunny
  • NeoonNeoon Community Contributor, Veteran

    You can but, gonna cost you more.
    https://github.com/Ne00n/woodCDN/tree/gdnsd

    Was working when I did rebuild it for gdnsd a while ago.
    However, not perfect and currently I am not developing it anymore.

    It uses a distributed database for the vhost entries and everything.

  • a7medo778a7medo778 Member
    edited June 6

    @Neoon said:
    You can but, gonna cost you more.
    https://github.com/Ne00n/woodCDN/tree/gdnsd

    Was working when I did rebuild it for gdnsd a while ago.
    However, not perfect and currently I am not developing it anymore.

    It uses a distributed database for the vhost entries and everything.

    I saw Backblaze post about basically using cloudflare as a free video cdn (only business plan costs)
    https://www.backblaze.com/cloud-storage/case-studies/plex
    https://www.backblaze.com/docs/cloud-storage-deliver-public-backblaze-b2-content-through-cloudflare-cdn
    but I am not sure I want to risk a takedown notice from cloudflare if I hit 300tb p/m in traffic for example

    that's why its too risky to use it alone

    btw, awesome work on the project, I did it once before for a project spinning up 13 hetzner cloud nodes as edge servers, each having 10gb NIC's, it worked flawlessly
    but again, what if a takedown notice 😅

  • NeoonNeoon Community Contributor, Veteran

    @a7medo778 said:

    @Neoon said:
    You can but, gonna cost you more.
    https://github.com/Ne00n/woodCDN/tree/gdnsd

    Was working when I did rebuild it for gdnsd a while ago.
    However, not perfect and currently I am not developing it anymore.

    It uses a distributed database for the vhost entries and everything.

    I saw Backblaze post about basically using cloudflare as a free video cdn (only business plan costs)
    https://www.backblaze.com/cloud-storage/case-studies/plex
    https://www.backblaze.com/docs/cloud-storage-deliver-public-backblaze-b2-content-through-cloudflare-cdn
    but I am not sure I want to risk a takedown notice from cloudflare if I hit 300tb p/m in traffic for example

    that's why its too risky to use it alone

    You gonna get emails from their Trust and Safety Team.

    Thanked by 2zGato a7medo778
  • a7medo778a7medo778 Member

    @Neoon said:

    @a7medo778 said:

    @Neoon said:
    You can but, gonna cost you more.
    https://github.com/Ne00n/woodCDN/tree/gdnsd

    Was working when I did rebuild it for gdnsd a while ago.
    However, not perfect and currently I am not developing it anymore.

    It uses a distributed database for the vhost entries and everything.

    I saw Backblaze post about basically using cloudflare as a free video cdn (only business plan costs)
    https://www.backblaze.com/cloud-storage/case-studies/plex
    https://www.backblaze.com/docs/cloud-storage-deliver-public-backblaze-b2-content-through-cloudflare-cdn
    but I am not sure I want to risk a takedown notice from cloudflare if I hit 300tb p/m in traffic for example

    that's why its too risky to use it alone

    You gonna get emails from their Trust and Safety Team.

    exactly the post that scared me 😂

  • orangecatorangecat Member

    try out goedge(opensource or commercial) or its light-weight version:teaweb(this one stops maintainance)

  • jobayerjobayer Member

    @imgmoney said:
    I do accept 666 push-ups. Payment processor @yoursunny

    I want to place an order :wink:

    Thanked by 1yoursunny
  • a7medo778a7medo778 Member

    @orangecat said:
    try out goedge(opensource or commercial) or its light-weight version:teaweb(this one stops maintainance)

    looks interesting but its all in Chinese I can understand anything 😅

  • VexeliaVexelia Member
    edited June 7

    @luckypenguin said:
    Question is - why?
    For the price of 20 VPS you can have Cloudflare/Bunny/Akamai Pro plan.

    Anyway if it's just for learning, start from here:
    https://shubhamdhiman98.medium.com/how-to-build-your-own-cdn-ff2b8ab7ac4b

    When has Akamai ever been priced at $20 per month? :*

  • vovlervovler Member
    edited June 7

    @Neoon said:

    @a7medo778 said:

    @Neoon said:
    You can but, gonna cost you more.
    https://github.com/Ne00n/woodCDN/tree/gdnsd

    Was working when I did rebuild it for gdnsd a while ago.
    However, not perfect and currently I am not developing it anymore.

    It uses a distributed database for the vhost entries and everything.

    I saw Backblaze post about basically using cloudflare as a free video cdn (only business plan costs)
    https://www.backblaze.com/cloud-storage/case-studies/plex
    https://www.backblaze.com/docs/cloud-storage-deliver-public-backblaze-b2-content-through-cloudflare-cdn
    but I am not sure I want to risk a takedown notice from cloudflare if I hit 300tb p/m in traffic for example

    that's why its too risky to use it alone

    You gonna get emails from their Trust and Safety Team.

    You mean their Sales Team :D
    Gotta hit those KPIs

    Thanked by 1OhJohn
  • gremeyergremeyer Member

    @a7medo778 said:
    I saw Backblaze post about basically using cloudflare as a free video cdn (only business plan costs)
    https://www.backblaze.com/cloud-storage/case-studies/plex
    https://www.backblaze.com/docs/cloud-storage-deliver-public-backblaze-b2-content-through-cloudflare-cdn
    but I am not sure I want to risk a takedown notice from cloudflare if I hit 300tb p/m in traffic for example

    I've pushed 6 PB/mo through Cloudflare from Backblaze on the free plan for several months and never heard anything from them. The only caveat is Backblaze has account-wide rate limits on requests so if your request rate is going to be high then you should cache as much as you can, use Tiered Cache, and/or use multiple accounts.

  • @gremeyer said:

    @a7medo778 said:
    I saw Backblaze post about basically using cloudflare as a free video cdn (only business plan costs)
    https://www.backblaze.com/cloud-storage/case-studies/plex
    https://www.backblaze.com/docs/cloud-storage-deliver-public-backblaze-b2-content-through-cloudflare-cdn
    but I am not sure I want to risk a takedown notice from cloudflare if I hit 300tb p/m in traffic for example

    I've pushed 6 PB/mo through Cloudflare from Backblaze on the free plan for several months and never heard anything from them. The only caveat is Backblaze has account-wide rate limits on requests so if your request rate is going to be high then you should cache as much as you can, use Tiered Cache, and/or use multiple accounts.

    you can try out storj instead of backblaze, they have inbuilt cdn capabilities and not need to pay for extra cdn player

  • gremeyergremeyer Member

    @suushii02 said:
    you can try out storj instead of backblaze, they have inbuilt cdn capabilities and not need to pay for extra cdn player

    I considered Storj but you have to pay for egress.

  • @orangecat said:
    try out goedge(opensource or commercial) or its light-weight version:teaweb(this one stops maintainance)

    looks interesting but its all in Chinese I can understand anything 😅> @gremeyer said:

    @a7medo778 said:
    I saw Backblaze post about basically using cloudflare as a free video cdn (only business plan costs)
    https://www.backblaze.com/cloud-storage/case-studies/plex
    https://www.backblaze.com/docs/cloud-storage-deliver-public-backblaze-b2-content-through-cloudflare-cdn
    but I am not sure I want to risk a takedown notice from cloudflare if I hit 300tb p/m in traffic for example

    I've pushed 6 PB/mo through Cloudflare from Backblaze on the free plan for several months and never heard anything from them. The only caveat is Backblaze has account-wide rate limits on requests so if your request rate is going to be high then you should cache as much as you can, use Tiered Cache, and/or use multiple accounts.

    thats pretty close to what i am trying to push actually,
    have you ever figured out multi-cdn thingy ? i think that way i can sleep well at night with 2-3 cdn failover
    and i assume you did your own encoding right ?

  • gremeyergremeyer Member

    @a7medo778 said:
    thats pretty close to what i am trying to push actually,
    have you ever figured out multi-cdn thingy ? i think that way i can sleep well at night with 2-3 cdn failover
    and i assume you did your own encoding right ?

    I never did multi-CDN, just used Cloudflare.

  • hsrhsr Member

    Would definitely recommend Bunny for this, extremely cheap and would be far cheaper and easier than creating your own CDN.

    Thanked by 1nick_
  • @a7medo778 said:

    @orangecat said:
    try out goedge(opensource or commercial) or its light-weight version:teaweb(this one stops maintainance)

    looks interesting but its all in Chinese I can understand anything 😅> @gremeyer said:

    @a7medo778 said:
    I saw Backblaze post about basically using cloudflare as a free video cdn (only business plan costs)
    https://www.backblaze.com/cloud-storage/case-studies/plex
    https://www.backblaze.com/docs/cloud-storage-deliver-public-backblaze-b2-content-through-cloudflare-cdn
    but I am not sure I want to risk a takedown notice from cloudflare if I hit 300tb p/m in traffic for example

    I've pushed 6 PB/mo through Cloudflare from Backblaze on the free plan for several months and never heard anything from them. The only caveat is Backblaze has account-wide rate limits on requests so if your request rate is going to be high then you should cache as much as you can, use Tiered Cache, and/or use multiple accounts.

    thats pretty close to what i am trying to push actually,
    have you ever figured out multi-cdn thingy ? i think that way i can sleep well at night with 2-3 cdn failover
    and i assume you did your own encoding right ?

    Do you mean multi-node cdn(one node in azure and another node in AWS ,etc) or multi-provider cdn(one cluster in azure and another in AWS or so-called fusion-cdn:one cname address provide various nodes from CF,akamai,gcore etc)
    As for multi-node cdn,go edge can easily automatically switch from one node to another if you activate health check
    As for multi-cluster cdn,I haven't try it out
    As for multi-provider cdn, it's something about only dns,it's quite easy to configure it with some advance dns provider such dns53

  • @orangecat said:

    @a7medo778 said:

    @orangecat said:
    try out goedge(opensource or commercial) or its light-weight version:teaweb(this one stops maintainance)

    looks interesting but its all in Chinese I can understand anything 😅> @gremeyer said:

    @a7medo778 said:
    I saw Backblaze post about basically using cloudflare as a free video cdn (only business plan costs)
    https://www.backblaze.com/cloud-storage/case-studies/plex
    https://www.backblaze.com/docs/cloud-storage-deliver-public-backblaze-b2-content-through-cloudflare-cdn
    but I am not sure I want to risk a takedown notice from cloudflare if I hit 300tb p/m in traffic for example

    I've pushed 6 PB/mo through Cloudflare from Backblaze on the free plan for several months and never heard anything from them. The only caveat is Backblaze has account-wide rate limits on requests so if your request rate is going to be high then you should cache as much as you can, use Tiered Cache, and/or use multiple accounts.

    thats pretty close to what i am trying to push actually,
    have you ever figured out multi-cdn thingy ? i think that way i can sleep well at night with 2-3 cdn failover
    and i assume you did your own encoding right ?

    Do you mean multi-node cdn(one node in azure and another node in AWS ,etc) or multi-provider cdn(one cluster in azure and another in AWS or so-called fusion-cdn:one cname address provide various nodes from CF,akamai,gcore etc)
    As for multi-node cdn,go edge can easily automatically switch from one node to another if you activate health check
    As for multi-cluster cdn,I haven't try it out
    As for multi-provider cdn, it's something about only dns,it's quite easy to configure it with some advance dns provider such dns53

    no something much simpler, i am not looking for an active active setup, just a way that if cloudflare baled on me (stop the service), i can serve my content from a secondary cdn without major changes.
    like how can i relink backblaze from cloudflare to lets say bunny without interruptions.

    i still like the hetzner cloud peers tbh 😂, its way too cool on kronosapp

Sign In or Register to comment.