{"id":39302,"date":"2019-10-31T22:29:40","date_gmt":"2019-10-31T19:29:40","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-aws-varit-svoi-elastichnye-servisy-masshtabirovanie-serverov-i-bazy-dannyh\/"},"modified":"2019-10-31T22:29:40","modified_gmt":"2019-10-31T19:29:40","slug":"kak-aws-varit-svoi-elastichnye-servisy-masshtabirovanie-serverov-i-bazy-dannyh","status":"publish","type":"post","link":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/kak-aws-varit-svoi-elastichnye-servisy-masshtabirovanie-serverov-i-bazy-dannyh","title":{"rendered":"Hoe AWS zijn elastische services \"bereidt\". Schalen van servers en databases","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>De cloud lijkt op een magische doos \u2014 je vraagt wat je nodig hebt en de bronnen verschijnen zomaar uit het niets. Virtuele machines, databases, netwerken \u2014 dit alles behoort uitsluitend jou toe. Er zijn ook andere tenants in de cloud, maar in jouw universum ben jij de enige heerser. Je bent ervan verzekerd dat je altijd de benodigde bronnen krijgt, houdt rekening met niemand en bepaalt zelf hoe het netwerk eruitziet. Hoe werkt deze magie die de cloud in staat stelt om flexibel bronnen toe te wijzen en tenants volledig van elkaar te isoleren?<\/p>\n<p><img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/075904e4db290f28746dd0054c9f87bf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDe AWS-cloud is een megacomplex systeem dat zich evolutionair ontwikkelt sinds 2006. Een deel van deze ontwikkeling heeft <strong>Vasily Pantyukhin<\/strong> \u2014 architect van Amazon Web Services. Als architect ziet hij niet alleen het eindresultaat, maar ook de complexiteiten die AWS overwint. Hoe beter je de werking van het systeem begrijpt, hoe meer vertrouwen je hebt. Daarom zal Vasily de geheimen van AWS-cloudservices delen. Onder de knop bespreekt hij de inrichting van fysieke AWS-servers, elastische schaalbaarheid van databases, de op maat gemaakte Amazon-database en methoden om de prestaties van virtuele machines te verhogen terwijl de kosten tegelijkertijd worden verlaagd. Kennis van de architecturale benaderingen van Amazon zal je helpen de AWS-services effectiever te gebruiken en mogelijk nieuwe idee\u00ebn geven voor het bouwen van je eigen oplossingen.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<i>Over de spreker: Vasily Pantyukhin (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/hen\/\" class=\"user_link\">Hen<\/a><\/noindex>) begon als Unix-beheerder in .ru-bedrijven, werkzaam met grote machines van Sun Microsystem gedurende 6 jaar, en heeft 11 jaar de datacenterheid van de wereld gepredikt bij EMC. Hij evolueerde natuurlijk naar private clouds en stapte in 2017 over naar publieke clouds. Nu helpt hij met technische adviezen om te leven en te groeien in de AWS-cloud.<\/p>\n<p>Disclaimer: alles hieronder is de persoonlijke mening van Vasily en deze kan afwijken van de positie van Amazon Web Services. <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/S3f6nWJxBvk\">De videoregistratie<\/a><\/noindex> van de presentatie waarop dit artikel is gebaseerd, is beschikbaar op ons YouTube-kanaal.<\/i><\/p>\n<h2>Waarom ik vertel over het functioneren van Amazon<\/h2>\n<p>\nMijn eerste auto had een \u2018handvat\u2019 \u2014 met een handgeschakelde versnellingsbak. Dat was geweldig omdat het gevoel gaf dat ik de auto kon besturen en volledige controle had. Ook vond ik het leuk dat ik tenminste een globaal begrip had van hoe het werkte. Natuurlijk stelde ik me de werking van de versnellingsbak vrij primitief voor - ongeveer zoals de versnellingsbak van een fiets.<\/p>\n<p><img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/edaec571a676e162d5f075042ac9d8ea.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAlles was geweldig was, behalve \u00e9\u00e9n ding - vastzitten in het verkeer. Je zit daar en doet feitelijk niets, maar je schakelt constant, drukt op de koppeling, gas, rem - dat maakt je echt moe. Het probleem van verkeersopstoppingen werd gedeeltelijk opgelost toen we een automatische auto in de familie kregen. Achter het stuur heb je tijd om over dingen na te denken en naar audioboeken te luisteren.<\/p>\n<p>Er kwam ook een raadsel in mijn leven, omdat ik helemaal niet meer begreep hoe mijn auto werkt. Een moderne auto is een complex apparaat. De auto past zich tegelijkertijd aan tientallen verschillende parameters aan: het indrukken van het gas, de rem, de rijstijl, de wegkwaliteit. Ik begrijp al niet meer hoe dit werkt.<\/p>\n<p>Toen ik begon met Amazon Cloud, was dat voor mij ook een mysterie. Maar dit mysterie is van een heel andere orde, omdat er in de auto \u00e9\u00e9n bestuurder is en in AWS zijn het er miljoenen. Alle gebruikers sturen tegelijkertijd, drukken op het gas en de rem. Het is verbazingwekkend dat ze gaan waar ze willen - voor mij is dat een wonder! Het systeem past zich automatisch aan, schaalt op en elastisch aan elke gebruiker aan, zodat het lijkt alsof diegene alleen is in dit universum.<\/p>\n<p>De magie vervaagde een beetje toen ik later architect bij Amazon werd. Ik zag met welke problemen we te maken hebben, hoe we deze oplossen, hoe we de diensten ontwikkelen. Met de groei van mijn begrip van de werking van het systeem groeit ook het vertrouwen in de dienst. Daarom wil ik het beeld delen van wat er onder de motorkap van AWS Cloud gebeurt.<\/p>\n<h2>Waar gaan we het over hebben<\/h2>\n<p>\nIk heb een gediversifieerde aanpak gekozen - ik heb vier interessante diensten geselecteerd waarover het de moeite waard is om te praten.<\/p>\n<p><strong>Serveroptimalisatie<\/strong>. Vergankelijk cloud met fysieke belichaming: fysieke datacentra waar fysieke servers staan die zoemen, warm worden en knipperende lampjes hebben.<\/p>\n<p><strong>Serverless-functies <\/strong>(Lambda) - waarschijnlijk de meest schaalbare dienst in de cloud.<\/p>\n<p><strong>Schaalvergroting van databases<\/strong>. Ik zal vertellen hoe we onze eigen schaalbare databases bouwen.<\/p>\n<p><strong>Schaalvergroting van netwerken<\/strong>. Het laatste deel waarin ik de werking van ons netwerk zal onthullen. Het is een wonderlijke zaak - elke gebruiker van de cloud denkt dat hij alleen in de cloud is en andere huurders helemaal niet ziet.<\/p>\n<blockquote><p><i>Opmerking. In dit artikel zullen we het hebben over serveroptimalisatie en database-scaling. Netwerk-scaling wordt in het volgende artikel besproken. Waar zijn de serverless functies? Daarover is een afzonderlijke verklaring verschenen.<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/464305\/\">Klein, maar fijn. Unboxing van de micro-virtualisatie Firecracker<\/a><\/noindex>. Hierin worden verschillende manieren van schaalvergroting besproken, en de oplossing Firecracker wordt grondig behandeld \u2014 een symbiose van de beste eigenschappen van virtuele machines en containers.<\/i><\/p><\/blockquote>\n<p><\/p>\n<h2>Servers<\/h2>\n<p>\nDe cloud is vluchtig. Maar deze vluchtigheid heeft nog steeds een fysieke belichaming \u2014 servers. Oorspronkelijk was hun architectuur klassiek. Standaard x86-chipset, netwerkkaarten, Linux, hypervisor Xen, waarop virtuele machines werden uitgevoerd.<\/p>\n<p><img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/734f99888072f78527bcc5f59485a1ff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn 2012 voldeed deze architectuur prima aan zijn taken. Xen is een uitstekende hypervisor, maar heeft \u00e9\u00e9n ernstig nadeel. Het heeft behoorlijk <strong>hoge overheadkosten voor apparaatsimulatie.<\/strong>Bij de komst van nieuwe, snellere netwerkkaarten of SSD's worden deze overheadkosten te hoog. Hoe met dit probleem om te gaan? We besloten om op twee fronten tegelijk te werken \u2014 <strong>zowel de hardware als de hypervisor te optimaliseren.<\/strong>De taak is zeer serieus.<\/p>\n<h3>Optimalisatie van hardware en hypervisor<\/h3>\n<p>\nAlles in \u00e9\u00e9n keer goed doen zal niet mogelijk zijn. Wat 'goed' is, was aanvankelijk ook onduidelijk.<\/p>\n<blockquote><p>We besloten een evolutionaire benadering te hanteren \u2014 we veranderen \u00e9\u00e9n belangrijk element van de architectuur en brengen het in productie.<\/p><\/blockquote>\n<p>We lopen tegen alle problemen aan, luisteren naar klachten en voorstellen. Daarna veranderen we het andere component. Zo, in kleine stappen, veranderen we de gehele architectuur op basis van feedback van gebruikers en ondersteuning.<\/p>\n<p>De transformaties begonnen in 2013 met het meest gecompliceerde \u2014 het netwerk. In <strong>C3<\/strong> instellingen werd aan de standaard netwerkkaart een speciale Network Accelerator-kaart toegevoegd. Deze werd letterlijk aangesloten met een korte loopback-kabel aan de voorzijde. Niet mooi, maar in de cloud zie je het niet. Toch verbeterde de directe interactie met de hardware de jitter en netwerksnelheid aanzienlijk.<\/p>\n<p>Daarna besloten we de toegang tot de Elastic Block Storage (EBS) te verbeteren \u2014 een combinatie van netwerk en opslag. De moeilijkheid was dat, hoewel er Network Accelerator-kaarten op de markt waren, het niet mogelijk was om gewoon een Storage Accelerator-hardware te kopen. Daarom hebben we contact opgenomen met de startup <strong>Annapurna Labs<\/strong>, die speciaal ontwikkelde ASIC-chips voor ons. Hiermee kunnen externe EBS-volumes als NVMe-apparaten worden aangesloten.<\/p>\n<p>In instanties <strong>C4<\/strong> hebben we twee problemen opgelost. De eerste was het cre\u00ebren van een toekomstbestendig fundament voor een in dat moment veelbelovende, maar nieuwe technologie: NVMe. De tweede was het aanzienlijk ontlasten van de centrale processor door de verwerking van verzoeken naar EBS naar een nieuwe kaart te verplaatsen. Het is goed gelukt, en daarom is Annapurna Labs nu onderdeel van Amazon.<\/p>\n<p>In november 2017 realiseerden we ons dat het tijd was om ook de hypervisor te vernieuwen.<\/p>\n<blockquote><p>De nieuwe hypervisor is ontwikkeld op basis van aangepaste KVM-kernelmodules.<\/p><\/blockquote>\n<p>Deze heeft de overhead voor de emulatie van apparaten aanzienlijk verminderd en maakt directe samenwerking met de nieuwe ASIC mogelijk. Instanties <strong>C5<\/strong> waren de eerste virtuele machines die draaien op de nieuwe hypervisor. We hebben het genoemd <strong>Nitro<\/strong>.<\/p>\n<p><img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/f9ccbf867e405e88e36d7618375a9e73.jpg\" style=\"display:block;margin: 0 auto;\" \/><em>De evolutie van instanties op de tijdlijn.<\/em><\/p>\n<p>Alle nieuwe typen virtuele machines die sinds november 2017 zijn verschenen, draaien op deze hypervisor.<strong> Bare Metal-instanties hebben geen hypervisor<\/strong>, maar ze worden ook Nitro genoemd, omdat ze gespecialiseerde Nitro-kaarten gebruiken.<\/p>\n<p>In de volgende twee jaar nam het aantal Nitro-instanties toe tot meer dan een paar dozijn: A1, C5, M5, T3 en anderen.<\/p>\n<p><img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/3342d335f54f28b3225c7c6d95f27744.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Typen instanties.<\/em><\/p>\n<h3>Hoe moderne Nitro-machines zijn opgebouwd<\/h3>\n<p>\nZe hebben drie hoofdbestanddelen: de Nitro-hypervisor (daarboven genoemd), een beveiligingschip en Nitro-kaarten.<\/p>\n<p><strong>De beveiligingschip<\/strong> is rechtstreeks op het moederbord ge\u00efntegreerd. Hij controleert tal van belangrijke functies, zoals het controleren van de opstart van het host-besturingssysteem.<\/p>\n<p><strong>Nitro-kaarten<\/strong> zijn er in vier types. Al deze zijn ontwikkeld door Annapurna Labs en zijn gebaseerd op gemeenschappelijke ASIC's. Een deel van hun firmware is ook gemeenschappelijk.<\/p>\n<p><img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/411947f770f82dead25f9fafad5814c6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Vier types Nitro-kaarten.<\/em><\/p>\n<p>Een van de kaarten is bedoeld voor gebruik met <strong>het netwerk<\/strong><strong>VPC<\/strong>. Dit is zichtbaar in virtuele machines als een netwerkadapter <strong>ENA \u2014 Elastic Network Adaptor<\/strong>. Hiermee wordt ook het verkeer ingekapseld bij overdracht via het fysieke netwerk (hierover zullen we in het tweede deel van het artikel spreken), en het beheert de firewall Security Groups, verantwoordelijk voor routering en andere netwerkzaken.<\/p>\n<p>Verschillende kaarten werken met block storage <strong>EBS<\/strong> en schijven die in de server zijn ingebouwd. Voor de gast-VM worden ze gepresenteerd als <strong>NVMe-adapters<\/strong>. Ze zijn ook verantwoordelijk voor de versleuteling van gegevens en schijfmonitoring.<\/p>\n<p>Het Nitro-kaartsysteem, de hypervisor en de beveiligingschip zijn verenigd in een SDN-netwerk of<strong> Software Defined Network<\/strong>. Het beheer van dit netwerk (Control Plane) is verantwoordelijk voor <strong>kaartcontroller<\/strong>.<\/p>\n<p>Zeker, we blijven werken aan de ontwikkeling van nieuwe ASIC's. Zo hebben we eind 2018 de Inferentia-chip gelanceerd, die effici\u00ebnter omgaat met machine learning-taken.<\/p>\n<p><img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/2e20101688bc0b68bb54ea7cd1344f51.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Inferentia Chip Machine Learning Processor.<\/em><\/p>\n<h2>Schaalbare database<\/h2>\n<p>\nEen traditionele database heeft een gelaagde structuur. Als we het sterk vereenvoudigen, kunnen we de volgende lagen onderscheiden.<\/p>\n<ul>\n<li><strong>SQL<\/strong> \u2014 hierop draaien de klant- en verzoekbeheerders.<\/li>\n<li>Verzekeringen <strong>transacties<\/strong> \u2014 hier is alles duidelijk, ACID en zo verder.<\/li>\n<li><strong>Caching<\/strong>, dat wordt verzorgd door bufferpools.<\/li>\n<li><strong>Logging<\/strong> \u2014 zorgt voor de omgang met redo-logs. In MySQL worden ze Bin Logs genoemd, in PostgreSQL Write Ahead Logs (WAL).<\/li>\n<li><strong>Opslag <\/strong>\u2013 direct naar schijf schrijven.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/b6ddee7bd150d307049a95f943b15e4c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Gelaagde database-structuur.<\/em><\/p>\n<p>Er zijn verschillende manieren om databases te schalen: sharding, Shared Nothing-architectuur, gedeelde schijven.<\/p>\n<p><img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/ec8c74c80f295018271326d20d36b08e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEchter, al deze methoden behouden dezelfde monolithische database-structuur. Dit beperkt de schaalbaarheid aanzienlijk. Om dit probleem op te lossen, hebben we onze eigen database ontwikkeld\u2014 <strong>Amazon Aurora<\/strong>. Deze is compatibel met MySQL en PostgreSQL.<\/p>\n<h3>Amazon Aurora<\/h3>\n<p>\nHet belangrijkste architecturale idee is om de opslag- en logniveau's los te koppelen van de hoofd-database.<\/p>\n<p>Vooruitlopend kan ik zeggen dat we ook het cache-niveau onafhankelijk hebben gemaakt. De architectuur stopt met een monolith te zijn, en we verkrijgen extra vrijheden in het schalen van afzonderlijke blokken.<\/p>\n<p><img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/dfe3f039fbcf5140aa1541802b51c1ec.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>De log- en opslagniveaus zijn gescheiden van de database.<\/em><\/p>\n<p>Een traditionele RDBMS schrijft gegevens naar het opslagsysteem in de vorm van blokken. In Amazon Aurora hebben we een \"slimme\" opslag gemaakt die kan communiceren in de taal van <strong>redo-logs<\/strong>. Intern verandert de opslag logs in datablocks, controleert de integriteit en maakt automatisch een back-up.<\/p>\n<p>Deze aanpak maakt het mogelijk om interessante dingen te realiseren zoals <strong>clonen<\/strong>. Dit werkt principieel sneller en goedkoper omdat het geen volledige kopie van alle gegevens vereist.<\/p>\n<p>Het opslagniveau is ge\u00efmplementeerd als een gedistribueerd systeem. Het bestaat uit een zeer groot aantal fysieke servers. Iedere redo-log wordt gelijktijdig verwerkt en opgeslagen door <strong>zes knooppunten<\/strong>. Dit zorgt voor gegevensbescherming en load balancing.<\/p>\n<p><img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/9861d6e975b483cc5a20727af91b1a6b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLe leesschaalbaarheid kan worden gegarandeerd door de juiste replicaties. Een gedistribueerde opslag elimineert de noodzaak voor synchronisatie tussen de primaire database-instantie, waar we gegevens schrijf, en de andere replicaties. Actuele gegevens zijn gegarandeerd beschikbaar voor alle replicaties.<\/p>\n<p>Het enige probleem is de caching van oude gegevens op de leesschijven. Maar deze uitdaging kan worden opgelost <strong>door alle redo-logboeken<\/strong> naar de replicaties via het interne netwerk te sturen. Als de log in de cache staat, wordt deze gemarkeerd als ongeldig en overschreven. Als deze niet in de cache staat, wordt deze eenvoudigweg genegeerd.<\/p>\n<p><img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/f87a140e401c49282d58ef65df5a4da2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWe hebben het opslagprobleem opgelost.<\/p>\n<h3>Hoe schaal je de niveaus van de DBMS<\/h3>\n<p>\nHier is horizontale schaalbaarheid veel moeilijker te realiseren. Daarom volgen we een beproefd pad <strong>van klassieke verticale schaalbaarheid.<\/strong>.<\/p>\n<p>Laten we aannemen dat we een applicatie hebben die communiceert met de DBMS via een master-node. <\/p>\n<p>Bij verticale schaalbaarheid hebben we een nieuwe node nodig met meer processoren en geheugen.<\/p>\n<p><img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/72f09bdc94584629fad0c40bf1a45bd9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDaarna schakelen we de applicatie van de oude master-node naar de nieuwe. Dit leidt tot problemen.<\/p>\n<ul>\n<li>Dit vereist aanzienlijke downtime voor de applicatie.<\/li>\n<li>De nieuwe master-node heeft een koude cache. De databaseprestaties zijn pas optimaal nadat de cache is opgewarmd.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/9820acd5597cb80bd7c63060ed13a37f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHoe kunnen we de situatie verbeteren? Door een proxy tussen de applicatie en de master-node te plaatsen.<\/p>\n<p><img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/ba8265da6ef9b1c1f9ac27bccab73f5d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWat levert dit ons op? Nu hoeven we alle applicaties niet handmatig naar de nieuwe node om te leiden. De overschakeling kan onder de proxy worden gedaan en is daardoor wezenlijk sneller.<\/p>\n<p>Het lijkt erop dat het probleem is opgelost. Maar nee, we blijven nog steeds lijden onder de noodzaak om de cache op te warmen. Bovendien is er een nieuw probleem opgekomen \u2014 nu is de proxy een potenti\u00eble foutbron.<\/p>\n<h3>De uiteindelijke oplossing met Amazon Aurora serverless<\/h3>\n<p>\nHoe hebben we deze problemen opgelost?<\/p>\n<p><strong>We hebben de proxy behouden.<\/strong>Dit is geen aparte instantie, maar een volledige gedistribueerde vloot van proxy's waarvan de applicaties verbinding maken met de database. Elke node kan in geval van uitval vrijwel onmiddellijk worden vervangen.<\/p>\n<p><strong>We hebben een pool van warme nodes van verschillende groottes toegevoegd.<\/strong>Daarom is een nieuwe node van grotere of kleinere grootte onmiddellijk beschikbaar indien nodig. We hoeven niet te wachten tot deze is opgestart.<\/p>\n<p><strong>Het gehele schaalbaarheidsproces wordt gecontroleerd door een speciaal monitoringssysteem. <\/strong>Monitoring houdt voortdurend de status van de huidige master-node in de gaten. Als het bijvoorbeeld ontdekt dat de CPU-belasting een kritieke waarde heeft bereikt, waarschuwt het de pool van warme instanties om een nieuwe node vrij te geven.<\/p>\n<p><img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/b5693b64e3468a4b6bcafb4fd5732bd8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Gedetailleerde proxies, warme instanties en monitoring.<\/em><\/p>\n<p>Een node met de vereiste capaciteit is beschikbaar. Buffers worden naar deze node gekopieerd en het systeem wacht op een veilig moment om over te schakelen.<\/p>\n<p><img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/fcbc5529352477b824cc969afd0a4fec.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nGewoonlijk komt het moment voor de overschakeling snel. De communicatie tussen de proxy en de oude master-node wordt dan gepauzeerd, en alle sessies worden overgeschakeld naar de nieuwe node.<\/p>\n<p><img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/b3b4af9be2cdd28aaaecd97cae48621d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHet werk met de database wordt herstart.<\/p>\n<p><img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/eeeae3ba3fc3ff014657f9786a25fd2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOp de grafiek is te zien dat de pauze inderdaad erg kort is. De blauwe grafiek toont de belasting, terwijl de rode stappen de schaalmomenten aangeven. De kortdurende dalingen in de blauwe grafiek zijn precies die korte vertraging.<\/p>\n<p><img decoding=\"async\" alt=\"Hoe AWS zijn elastische services &quot;bereidt&quot;. Schalen van servers en databases\" src=\"\/wp-content\/uploads\/2019\/10\/ac55eadb5f0b182b93fdd1617961a930.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOverigens stelt Amazon Aurora je in staat om flink te besparen door de database uit te schakelen wanneer deze niet in gebruik is, bijvoorbeeld in het weekend. Na het stoppen verlaagt de database geleidelijk zijn capaciteit en schakelt deze enige tijd uit. Wanneer de belasting terugkomt, stijgt deze weer geleidelijk.<\/p>\n<blockquote><p>In het volgende deel van ons verhaal over de Amazon-architectuur zullen we spreken over netwerkschaalbaarheid. Abonneer je <noindex><a rel=\"nofollow\" href=\"http:\/\/eepurl.com\/VYVaf\">op de nieuwsbrief<\/a><\/noindex> en blijf op de hoogte van updates zodat je het artikel niet mist.<\/p>\n<p>Op <noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/moscow\/2019\">HighLoad++<\/a><\/noindex> Vasili Pantiukhin zal de presentatie geven \"<noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/moscow\/2019\/abstracts\/5977\">Houston, we hebben een probleem. Ontwerp van failover-systemen, ontwikkelpatronen voor interne diensten van de Amazon-cloud<\/a><\/noindex>\". Welke ontwerppatronen voor gedistribueerde systemen gebruiken Amazon-ontwikkelaars, wat zijn de oorzaken van service-uitval, wat is Cell-based architecture, Constant Work, Shuffle Sharding \u2014 het belooft interessant te worden. Minder dan een maand tot de conferentie \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/conf.ontico.ru\/conference\/join\/hl2019.html\">reserveer je tickets<\/a><\/noindex>. Op 24 oktober verhogen we definitief de prijzen.<\/p><\/blockquote>\n<p>Bron: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/471686\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u0431\u043b\u0430\u043a\u0430 \u043f\u043e\u0434\u043e\u0431\u043d\u044b \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0448\u043a\u0430\u0442\u0443\u043b\u043a\u0435 \u2014 \u0437\u0430\u0434\u0430\u0435\u0448\u044c, \u0447\u0442\u043e \u0442\u0435\u0431\u0435 \u043d\u0443\u0436\u043d\u043e, \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u0437 \u043d\u0438\u043e\u0442\u043a\u0443\u0434\u0430. \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b, \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u0435\u0442\u044c \u2014 \u0432\u0441\u0435 \u044d\u0442\u043e \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u0431\u0435. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0442\u0435\u043d\u0430\u043d\u0442\u044b \u043e\u0431\u043b\u0430\u043a\u0430, \u043d\u043e \u0432 \u0441\u0432\u043e\u0435\u0439 \u0412\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0442\u044b \u0435\u0434\u0438\u043d\u043e\u043b\u0438\u0447\u043d\u044b\u0439 \u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044c. \u0422\u044b \u0443\u0432\u0435\u0440\u0435\u043d, \u0447\u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0448\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u043d\u0438 \u0441 \u043a\u0435\u043c \u043d\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0448\u044c\u0441\u044f \u0438 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0448\u044c, \u043a\u0430\u043a\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":39303,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-39302","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u0431\u043b\u0430\u043a\u0430 \u043f\u043e\u0434\u043e\u0431\u043d\u044b \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0448\u043a\u0430\u0442\u0443\u043b\u043a\u0435 \u2014 \u0437\u0430\u0434\u0430\u0435\u0448\u044c, \u0447\u0442\u043e \u0442\u0435\u0431\u0435 \u043d\u0443\u0436\u043d\u043e, \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u0437 \u043d\u0438\u043e\u0442\u043a\u0443\u0434\u0430. \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b, \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u0435\u0442\u044c \u2014 \u0432\u0441\u0435 \u044d\u0442\u043e \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u0431\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/kak-aws-varit-svoi-elastichnye-servisy-masshtabirovanie-serverov-i-bazy-dannyh\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a AWS \u00ab\u0432\u0430\u0440\u0438\u0442\u00bb \u0441\u0432\u043e\u0438 \u044d\u043b\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b. \u041c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0438 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u0431\u043b\u0430\u043a\u0430 \u043f\u043e\u0434\u043e\u0431\u043d\u044b \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0448\u043a\u0430\u0442\u0443\u043b\u043a\u0435 \u2014 \u0437\u0430\u0434\u0430\u0435\u0448\u044c, \u0447\u0442\u043e \u0442\u0435\u0431\u0435 \u043d\u0443\u0436\u043d\u043e, \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u0437 \u043d\u0438\u043e\u0442\u043a\u0443\u0434\u0430. \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b, \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u0435\u0442\u044c \u2014 \u0432\u0441\u0435 \u044d\u0442\u043e \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u0431\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/kak-aws-varit-svoi-elastichnye-servisy-masshtabirovanie-serverov-i-bazy-dannyh\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:29:40+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:29:40+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Hoe AWS zijn elastische diensten \"kookt\". Schaalbaarheid van servers en databases | ProHoster","description":"Clouds zijn als een magische doos \u2014 je vraagt wat je nodig hebt en de middelen verschijnen uit het niets. Virtuele machines, databases, netwerken \u2014 dit alles behoort alleen tot jou.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/kak-aws-varit-svoi-elastichnye-servisy-masshtabirovanie-serverov-i-bazy-dannyh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a AWS \u00ab\u0432\u0430\u0440\u0438\u0442\u00bb \u0441\u0432\u043e\u0438 \u044d\u043b\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b. \u041c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0438 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster","og:description":"\u041e\u0431\u043b\u0430\u043a\u0430 \u043f\u043e\u0434\u043e\u0431\u043d\u044b \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0448\u043a\u0430\u0442\u0443\u043b\u043a\u0435 \u2014 \u0437\u0430\u0434\u0430\u0435\u0448\u044c, \u0447\u0442\u043e \u0442\u0435\u0431\u0435 \u043d\u0443\u0436\u043d\u043e, \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0438\u0437 \u043d\u0438\u043e\u0442\u043a\u0443\u0434\u0430. \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b, \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u0435\u0442\u044c \u2014 \u0432\u0441\u0435 \u044d\u0442\u043e \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u0431\u0435.","og:url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/kak-aws-varit-svoi-elastichnye-servisy-masshtabirovanie-serverov-i-bazy-dannyh","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:29:40+00:00","article:modified_time":"2019-10-31T19:29:40+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"39302","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 01:37:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:52:26","updated":"2026-01-24 01:37:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/39302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=39302"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/39302\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/39303"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=39302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=39302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=39302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}