Bespaar op S3 traffic kosten met een caching proxy

Deze proxy component maakt deel uit van een serie proxies, die modulair van opzet zijn en vrijwel zero-config nodig hebben. In de serie zijn nu onder andere aanwezig een SSL terminator, een forward proxy en een caching proxy. In de loop der tijd zal ik een een rate limiter, een router/load balancer en een cdn proxy/image resizer toevoegen.


Leer hoe je de kosten voor gegevensoverdracht van S3 kunt verminderen door je eigen caching proxy te implementeren.

Het gebruik van AWS S3 voor het opslaan van afbeeldingen en andere statische bestanden verhoogt de schaalbaarheid en betrouwbaarheid van je applicatie.

Echter, de kosten van gegevensoverdracht kunnen hoog zijn; AWS rekent $0,09 per gigabyte, wat kan leiden tot $90 aan maandelijkse uitgaven voor elke terabyte aan gegevensoverdracht.


Om deze kosten te verminderen, kan het inzetten van een caching proxy helpen. Deze proxy serveert gecachte bestanden, wat de uitgaven aanzienlijk kan verlagen. Bijvoorbeeld, door een LightSail-server van $5 per maand te gebruiken (inclusief 2TB aan verkeer), kun je tot $90 per maand besparen als zelfs maar 50% van je data vanuit de cache wordt geleverd. En je kunt nog meer besparen als het cachegebruik hoger is.

Je kan een self-managed caching proxy inzetten met de modulaire proxy componenten die ik eerder heb ontwikkeld, en gepubliceerd heb op Dockerhub onder MIT licentie.

Een proxy chain die hier opgezet wordt is samengesteld uit drie componenten:

• Een SSL terminator om gecachede bestanden via https te kunnen leveren
• Een caching proxy die het cache-proces beheert
• Een forward proxy die verzoeken naar S3 verwerkt

Voordat je begint, heb je het volgende nodig:

• Een S3-bucket gevuld met statische bestanden die openbare leestoegang toestaan
• Een Linux-server, met een goede combinatie prijsstelling en voldoende verkeer en opslag (bijvoorbeeld AWS LightSail)
• Docker geïnstalleerd op je Linux-server
• Een SSL-certificaat (aanbevolen)

Zodra een docker-compose bestand op je server geconfigureerd en gestart is, zal je proxy operationeel zijn, waardoor het mogelijk wordt om gecachte S3-bestanden te serveren.

Deze methode stelt je in staat te profiteren van de verkeerskosten die bij je server horen (bijvoorbeeld ongeveer $2,50/TB voor LightSail) in plaats van de hogere kosten van directe toegang tot S3 ($90/TB, wat 36 keer duurder is).

Bekijk de docker-compose file om de proxy-chain te starten op deze github gist.



Met deze post wil ik inzicht geven in de strategieën en gedachten achter mijn DevOps-projecten. Het laat mijn inzet zien om de DevOps best practices te volgen en up-to-date te blijven met technologische vooruitgang.



Datum: Januari, 2024

Vaardigheden

  • Docker
  • Basic linux administration