Fedora-mirrors hebben last van grote stijging AWS-verkeer

Fedora-mirrors hebben te lijden onder een plotselinge groei van het verkeer vanaf de Amazon Web Services Cloud. In maart verschenen zo'n vijf miljoen extra systemen die de mirrors van Fedora proberen te gebruiken.

Stephen Smoogen van Red Hat schrijft in een blog dat er eerder dit jaar meldingen kwamen over steviger gebruik van diverse mirrors. Bij nadere inspectie bleek dat er zo'n vijf miljoen extra EPEL-7-systemen zijn opgezet. EPEL, of Extra Packages For Enterprise Linux, is een repository met aanvullende softwarepakketten voor Enterprise Linux-distributies, waaronder die van Red Hat. De nieuwe systemen proberen allemaal mirrordata op te halen van Fedora-webproxies en benaderen vervolgens massaal de mirrors zelf, die veelal door vrijwilligers worden gedraaid.

Veel van het nieuwe verkeer blijkt vanuit de AWS Cloud te komen. Hoe dat zit, weet ook Smoogen niet precies. Wel laat hij weten dat diverse Amazon-engineers contact met hem hebben gezocht en dat onderzocht wordt waardoor het probleem wordt veroorzaakt.

Door Eveline Meijer

Nieuwsredacteur

30-05-2024 • 10:39

46

Submitter: TheVivaldi

Reacties (46)

Sorteer op:

Weergave:

Het is altijd bijzonder hoeveel geld commerciële partijen verdienen en dan amper iets terugdoen voor de Open Source projecten die ze daarvoor gebruiken. Het zou ze sieren als ze Fedora tegenmoet komen op een of andere manier.
Vorig jaar nog een talk gezien van de maintainer van een open source programma dat door enkele zeer grote bedrijven gebruikt werd. Bedrijven die zelf niks teruggeven.

Maar als hij tijdens zijn presentatie hun logo wilde gebruiken op 1 slide met een lijst van gebruikers wilden ze daar natuurlijk geld voor.

[Reactie gewijzigd door iqcgubon op 23 juli 2024 08:43]

Fedora wordt al gesponsord door IBM/Red Hat. Fedora heeft geen liefde nodig van bedrijven. N.B. Al die grote commerciële partijen ondersteunen die projecten al, door ze überhaupt te gebruiken en fouten aan te melden door professionals. Dit is al heel wat waard.

In het geval van Amazon zal dit overigens ook echt niet op een andere manier gebeuren. Ze hebben zelf al een Linux distro. Waarom zouden ze in vredesnaam een 'concurrent' gaan spekken?
Omdat die concurrent dingen upstreamt die ook in andere distro's, waaronder hun eigen, terugkomen? Dat is zo'n beetje het hele idee toch?
Maar dat doen ze toch via hun eigen distro? Dan gaan ze dat toch ook niet doen via RHEL of SUSE ofzo? Het idee van Amazon is, zoals @Mellow Jack hieronder al schrijft, dat ze een soort one-stop-shop kunnen zijn.
Ik zou geen reden weten waarom Amazon Red Hat zou willen helpen met iets?
Amazon Linux is gebaseerd op Fedora en Red Hat. Steunen/Helpen is uiteraard niet verplicht, maar het is niet alsof Amazon er niks te halen heeft. Zonder die twee zou Amazon immers volledig zélf aan de slag moeten vanaf nul met hun distro.
In het geval van Amazon zal dit overigens ook echt niet op een andere manier gebeuren. Ze hebben zelf al een Linux distro. Waarom zouden ze in vredesnaam een 'concurrent' gaan spekken?
De meeste grote bedrijven doen ook toevoegingen aan de Linux kernel en dragen op die manier bij. Daarnaast helpen ze ook op grote schaal de "concurrentie" en hier zijn geen uitzonderingen op.

Het is natuurlijk geweldig voor een infra leverancier als Microsoft, AWS of Google om een 1 stop shop te zijn. Dus ja ze bieden vrijwel alles en werken met iedereen samen. Opzich ook wel logisch natuurlijk want een gemiddelde enterprise heeft Linux, Windows, MySQL, MSSQL, Oracle, PostgreSQL, Android, iOS en natuurlijk nog wat oude VMware workloads waar ze niet van afkomen. Zelfde gaat op voor netwerken, chips, security tooling en nog veel meer.
Klopt, maar patches sturen naar kernel.org, Mozilla en Apache, en daarmee indirect ook Red Hat helpen, is natuurlijk wat anders dan Red Hat direct helpen. Dat Red Hat baat heeft bij die patches is 'mooi meegenomen', maar natuurlijk niet het doel van Amazon. Dat is op z'n slechtst zelfs een vervelende bijkomstigheid vanuit een commercieel oogpunt.
Een bedrijf waarvoor ik heb gewerkt ontwikkelt software voor specifieke klanten. Bepaalde klanten verplichtingen het gebruik van RHEL. Alleen voor die klanten gebruiken we RHEL. Voor ons datacenter gebruikte we Alma Linux .

Als we dan naar de cloud kijken is de vraag welke cloud deze use case het beste ondersteund. Zowel AWS als Azure hebben dus commerciële motivaties om iets als Alma linux en RHEL te ondersteunen. Het is zelfs commercieel valide om engineers te leveren

[Reactie gewijzigd door Mellow Jack op 23 juli 2024 08:43]

Omdat Amazon Linux gebaseerd is op Red Hat en Fedora. “spekken” is misschien een groot woord, maar zonder Red Hat en Fedora moet Amazon bij een volgende versie vanaf nul beginnen met hun distro.
Grote, commerciele partijen dragen ook heel veel bij aan open source software ontwikkeling. Zonder de grote commericele partijen zouden veel open source projecten zolderkamerprojectjes blijven. En als je dan ziet wat die ontwikkeling daadwerkelijk kost dan praat je echt over serieus geld.
Ik las laatst een interessante take die ongeveer zo ging: "open source (Linux) is door en voor big tech. Wij mogen toevallig er ook gebruik van maken"

Zonder big tech zou Linux een hobbyproject gebleven zijn. Het gros van de (kernel) developers bouwen enkel wat hun bedrijf nodig heeft, wat toevallig ook de ervaring voor de rest van ons verbetert. Het duidelijkste voorbeeld is wat Valve voor gaming doet nu.
Support is niet altijd alleen maar geld. AWS Linux is gebaseerd op Debian, dingen die AWS daarin doet, worden ook weer vrijgegeven. En Fedora is de speeltuin van Red Hat - minstens net zo commercieel.
Amazon Linux is gebaseerd op RHEL (Amazon Linux 1 & 2) of Fedora (Amazon Linux 2023).
Ah ja klopt ik was in de war, verhaal is in feite hetzelfde.
Wel laat hij weten dat diverse Amazon-engineers contact met hem hebben gezocht en dat onderzocht wordt waardoor het probleem wordt veroorzaakt.
Volgens mij gebeurt dat dus ook, niet te snel oordelen.
Dat gebeurt ook, sterkter nog, zonder internettoegang heb je accès tot de repos onder publieke url omdat aws deze cached
Volgens mij zijn ze alleen op zoek naar een oplossing om het verkeer te verlagen. Het is niet dat die engineers ineens betaald door Amazon voor Fedora iets gaan doen.
Je zou verwachten dat AWS eigen mirror's of pull-through caches zou draaien hiervoor.
Dat hebben ze ook, voor de grote distro's waar ze zelf VM (EC2) images (AMI's) van aanbieden.

Maar ze hebben geen 100% invloed over wat er op die machines gebeurt natuurlijk.

Maar gezien de aantallen zal het waarschijnlijk een bug/configuratiefout ergens bij AWS zijn.
Waarom zouden ze dat doen? Kost geld.
Bezos heeft nog te weinig geld, dus besparen op elke cent die mogelijk is.
Bandwidth kost ook geld, en bovendien kan je die bandwidth niet verkopen aan andere gebruikers.

[Reactie gewijzigd door Remc0_ op 23 juli 2024 08:43]

Alleen Egres kost toch geld bij de meeste cloud providers ;-)
Als gebruiker kost alleen egress geld, als provider kost beide geld.
Ik denk dat AWS met zijn aanmerkelijke aanwezigheid in de markt die kosten wel heeft weten te drukken tot het minimaal mogelijke en heel veel peering overeenkomsten heeft.
Ook bij lage kosten is het voorkomen van deze kosten toch altijd winst? Een lokale mirror voor packages in je datacenter en je voorkomt een heleboel kosten, terwijl het draaien van zo'n mirror ook nog eens heel simpel is.

[Reactie gewijzigd door jaapzb op 23 juli 2024 08:43]

Egress is dataverkeer die ze kunnen factureren aan klanten.
Je hebt ook 'interne dataverkeer', wat AWS dus wel geld kost, maar niet kan factureren. Dat is het verkeer dat ze dus mogelijk zouden willen beperken. Ze hebben daar een boel VM-etjes draaien die updates willen downloaden. Dat wil je liever via een interne server laten verlopen.
Providers hebben meestal een pop in datacenters.
Als je als bedrijf veel klanten hebt bij bv KPN, zou een verbinding gemaakt kunnen worden op hun pop.
Op deze manier bespaar je geld, en je kan je klanten beter bereiken.
Bezos? Die is toch al een hele tijd geen ceo meer?
Wel grootaandeelhouder (en wss in de raad van bestuur ofzo)
RHEL 7 is bijna EOL, zou verwachten dat de installbase af zou nemen.
Maar die repo wordt niet uitgeschakeld, en er zijn helaas genoeg die nooit zullen upgraden. CentOS bestaat al een tijdje niet meer in de oude opzet, en je zult schrikken hoeveel dit nog draaien in productie.

Er komen wel verandering aan op dnf en rpm-ostree. Nu wordt alle metadata opgehaald, en wat ik begreep gaan ze dat nu niet meer doen.

Voordeel voor de gebruiker is dat het vele malen sneller is, maar ook dus voor hun eigen hits op de server en het mindere van verkeer.

Ik heb met redelijk wat package-managers gewerkt, en ik moet toch echt zeggen dat dnf een van de langzaamste is. Een dnf search duurt erg lang, en het wordt nog leuker als je het combineert met een frontend als Gnome Software.

Helaas wordt dnf5 steeds vooruit geschoven, die gaat hopelijk veel performance winst opleveren.
Maar die repo wordt niet uitgeschakeld, en er zijn helaas genoeg die nooit zullen upgraden. CentOS bestaat al een tijdje niet meer in de oude opzet, en je zult schrikken hoeveel dit nog draaien in productie.
Eens, er zijn veel te veel oude systemen die niet meer worden gemoderniseerd. Wat dat betreft benijd ik de commerciele bedrijven die druk op hun gebruikers kunnen uitoefenen door ieder jaar de prijs voor (ondersteuning op) oude producten kunnen verhogen. Ik ben eigenlijk niet zo van druk vanuit bedrijven op hun klanten maar hier geldt een groter belang. Dit is (niet alleen) commerciele druk maar ook in het belang van de klanten/gebruikers en de maatschappij (op een "voor je eigen bestwil" manier) .

Het is niet voor fijn voor die gebruikers maar het geeft wel een hanteerbare afweging: de prijs van upgraden tegenover de prijs van onderhouden. Oude systemen laten doordraaien is niet gratis, ook al lijkt dat op het eerste gezicht misschien wel zo.

Op het moment dat je ze wel moet upgraden komen de kosten extra hard terug, hoe groter het gat dat je moet overbruggen hoe sneller de kosten stijgen. Al is het maar omdat systemen de neiging hebben na verloop van complexer worden, deels door wisselende omstandigheden, deels door menselijk gedrag (foutjes, niet goed opruimen, gewoon mensenwerk). Daarnaast leggen oude systemen beperkingen op aan de rest van je omgeving (bv ivm compatibility). Iedere extra beperking heeft z'n prijs.

We hebben het dan nog niet gehad over security risico's. Ondanks alle beloftes en goede bedoelingen is er in praktijk altijd een verschil in veiligheid tussen de oudere en nieuwere versies. Volledige support op oude software is onbetaalbaar. Zelfs als je het wel kan betalen is het nog niet makkelijk om mensen te vinden die dat werk kunnen en willen doen.
Fixes voor de nieuwste versie vertalen zich niet automatisch naar oudere versies en gevolgen van veranderingen zijn vaak niet volledig te overzien. Lang niet alle fixes die invloed hebben op veiligheid worden ook zo gemarkeerd, vaak weten we het niet eens en onderzoeken het ook niet, daar is geen geld/tijd voor.

Ik zou ook nog een boom op kunnen zetten over de beschikbaarheid van kennis en ervaring. De meeste mensen en ondersteuners kennen de versie van nu en weten hoe die samenwerkt met andere applicaties van nu. Testen tegen oude versie gebeurt veel minder en kennis over die systemen zakt vanzelf weg. Dat geldt ook voor je eigen beheerders. Als die na 5 jaar niks doen onderhoud moeten doen aan een oud systeem is de kennis en ervaring wel weer verdwenen, als je personeel uberhaupt nog in dienst is.

Waar mogelijk altijd upgraden. Als het niet mogelijk is dan moet je nú gaan nadenken hoe je dat gaat veranderen. Oude sytemen upgraden wordt nooit makkelijker, alleen maar lastiger. Hebben nieuwe systemen dan niet hun eigen problemen? Natuurlijk hebben die ook problemen, maar die zijn over het algemeen veel beter aan te pakken. De programmeur/leverancier werkt actief aan het product en de meeste andere gebruikers zitten op dezelfde versie, net als de meeste andere software waar je mee te maken. Het is in het belang van de leverancier om de nieuwste versie zo goed mogelijk te maken. Oude versies onderhouden is vooral een kostenpost.

Als je toch problemen hebt die niet op te lossen zijn dan heb je nog de volledige support-periode om een andere oplossing te zoeken. Als je wacht dan moet je een andere oplossing zoeken terwijl je een niet langer ondersteunt systeem draait. Als je hulp nodig zou hebben bij de upgrade/migreren kun je dus niet meer bij je oorspronkelijke leverancier terecht voor hulp, en de nieuwe leverancier kent je oude meuk ook niet.

Ja, er zijn altijd uitzonderingen, systemen die niet onderhoudbaar zijn of onvervangbaar. Dat soort uitzonderingen moeten we proberen te minimaliseren. Meestal is het uiteindelijk een kwestie van (heel veel) geld. Daarom is het belangrijk om te beseffen dat hoe langer je wacht hoe moeilijker en duurder het wordt.
Er is een 'point of no return' waarna het eigenlijk onmogelijk is om nog een acceptabele oplossing te vinden. Op een gegeven moment lopen de kosten en risico's zo snel op dat het onoverkomelijk wordt. Dan kun je alleen nog amputeren en moet je accepteren dat je bv data kwijt raakt, of de gok moet nemen dat het toevallig allemaal goed gaat. (En dat gaat het zelden, zie de vele datalekken).
Nu komen bedrijven er nog mee weg omdat ze veel kunnen verzwijgen en de meeste mensen redelijk afgestompt zijn als het gaat over datalekken, maar dat is wel aan het veranderen door wetgeving als de AVG.
In het oorspronkelijke artikel staat een grafiekje per release. Het is schrikbarend hoeveel systemen nog oude versies draaien en hoe weinig er op de nieuwste versie zitten (ook exclusief die recente piek van RHEL7).

https://blogger.googleuse...00/epel-stacked-short.png

RHEL8 is al 5 jaar oud. De meerderheid van de RHEL systemen loopt dus meer dan 5 jaar achter. Ze krijgen vast wel bug&security fixes maar ze staan wel stil. Tegen de tijd dat die systemen wel onderhoud krijgen moet je dus meer dan 5 jaar aan ontwikkelingen over (minstens) 2 major releases heen bij benen. Dat is vragen om problemen.
ddos attack door amazon, je zou toch zeggen dat het voor aws dan ook nuttig is om eigen mirror op te zetten ?
Maar AWS is standaard Amazon Linux, welke een eigen repo heeft.
Wellicht kan AWS een repo voor ze draaien ;)
Maar Amazon Linux is wel gebaseerd op Red Hat en Fedora.
Dat klopt, maar daar zijn dus lokale mirrors voor, dat geeft geen extra load.
Amazon AMIs voor Fedora gebruiken al de mirror van AWS, dus waarschijnlijk heeft een populaire AMI een wijziging doorgevoerd ofzo?
Sowieso gebruikt Fedora al deels AWS voor hun mirrors: https://docs.fedoraprojec...manager-S3-EC2-netblocks/
Mijn gevoel zegt dat AWS een AMI heeft vrijgegeven die, per ongeluk (?), standaard gebruikt maakt van EPEL 7.
Of iemand heeft toegang gehad. Of er heeft iets gedraaid dat mogelijk doet dupliceren i.p.v. iets anders.
Slim gedacht, zou me niet verbazen. AMI gereleased met deze mirror url, welke gewoon door klanten auto gepulled wordt dagelijks tig miljoen keer.
yum/dnf detecteren toch zelf de beste mirror? Zou denken dat hier iets niet helemaal lekker is.

https://mirrors.fedorapro...epo=fedora-37&arch=x86_64
Vreemd eigenlijk dat hier geen bittorrent voor gebruikt wordt?
Bittorrent heeft vergeleken met http een enorme overhead. Deze mirrors leveren ook nog eens een reeks kleine onafhankelijke bestanden, waar bittorrent ook niet bijzonder goed in is. Combineer dat met clients die niet zullen seeden (iedere admin zal dat direct uitzetten op een server), en bittorrent is de moeite gewoon niet waard.

Zelfs de traditionele Linux ISOs gaan steeds minder via bittorrent - en dat was zo ongeveer de best mogelijke toepassing!
@Soldaatje
Vreemd eigenlijk dat hier geen bittorrent voor gebruikt wordt?
Bittorrent is hier niet heel geschikt voor omdat het om heel veel (relatief) kleine files gaat die regelmatig veranderen. Bittorrent is meer geschikt voor grote statische bestanden.

Ik heb wel eens een versie van apt (Debian) gezien die bittorrent als backend gebruikte. Dat was in praktijk zoveel langzamer dan het direct downloaden dat het weinig zin had. In de meeste gevallen ben je beter af door zelf een lokale mirror op te zetten. Dat kan een gewone http-cache zijn (bestaan die nog?).

Normaal gesproken in de snelheid van de mirrors geen enkel probleem, er zijn ze er heel veel. Ik vermoed dat er hier meer aan de hand is dan 5 miljoen nieuwe systemen, maar dat er iets mis gaat waardoor die systemen steeds weer opnieuw updates proberen te downloaden. Een systeem dat bij is zou niet heel veel load meer moeten genereren op de mirrors. Tenzij je bv steeds de package cache weggooit en opnieuw laat downloaden.

Ik moet denken aan een van mijn eerdere "experimenten" met Docker. Ik bouwde al mijn images dagelijks vers op en soms meerdere keren per dag, gebaseerd op diverse triggers (zoals een nieuwe upstream release), allemaal in een verse-build omgeving die on-demand werd aangemaakt, en soms ook nog een test-omgeving. Dat stond vooral steeds weer dezelfde images, packages en sources te bouwen en dat liep een beetje uit te klauwen toen het aantal images begon op te lopen.

[Reactie gewijzigd door CAPSLOCK2000 op 23 juli 2024 08:43]

Op dit item kan niet meer gereageerd worden.