{"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\/it\/blog\/administrirovanie\/kak-aws-varit-svoi-elastichnye-servisy-masshtabirovanie-serverov-i-bazy-dannyh","title":{"rendered":"Come AWS 'prepara' i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Le nuvole sono simili a una magica scatola: chiedi ci\u00f2 di cui hai bisogno e le risorse appaiono dal nulla. Macchine virtuali, database, rete: tutto appartiene solo a te. Esistono anche altri tenant nel cloud, ma nel tuo universo sei l'unico sovrano. Sei sicuro di ricevere sempre le risorse necessarie, senza dover rendere conto a nessuno, e decidi autonomamente come sar\u00e0 la rete. Come funziona questa magia che fa s\u00ec che il cloud assegni risorse in modo elastico e isoli completamente i tenant tra di loro?<\/p>\n<p><img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/075904e4db290f28746dd0054c9f87bf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIl cloud AWS \u00e8 un sistema estremamente complesso che si \u00e8 evoluto dal 2006. Parte di questa evoluzione ha visto <strong>Vasily Pantyukhin<\/strong> \u2014 l'architetto Amazon Web Services. Come architetto, vede non solo il risultato finale, ma anche le complessit\u00e0 che AWS affronta. Pi\u00f9 comprendi il funzionamento del sistema, maggiore \u00e8 la fiducia. Perci\u00f2, Vasily condivider\u00e0 i segreti dei servizi cloud AWS. Sotto il titolo, la struttura dei server fisici di AWS, la scalabilit\u00e0 elastica dei database, il database personalizzato di Amazon e i metodi per migliorare le prestazioni delle macchine virtuali, riducendo nel contempo i costi. Conoscere gli approcci architettonici di Amazon aiuter\u00e0 a utilizzare in modo pi\u00f9 efficace i servizi AWS e, forse, fornir\u00e0 nuove idee per costruire soluzioni proprie.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<i>Chi \u00e8 il relatore: Vasily Pantyukhin (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/hen\/\" class=\"user_link\">Hen<\/a><\/noindex>) ha iniziato come amministratore Unix in aziende .ru, ha lavorato per 6 anni su grandi server Sun Microsystem, e per 11 anni ha predicato la centralit\u00e0 dei dati nel mondo in EMC. Si \u00e8 evoluto naturalmente verso i cloud privati e nel 2017 si \u00e8 lanciato nei cloud pubblici. Ora offre consigli tecnici per vivere e prosperare nel cloud AWS.<\/p>\n<p>Dichiarazione: tutto ci\u00f2 che segue \u00e8 l'opinione personale di Vasily e potrebbe non coincidere con la posizione di Amazon Web Services. <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/S3f6nWJxBvk\">La registrazione video<\/a><\/noindex> del discorso, sulla base del quale \u00e8 stato redatto l'articolo, \u00e8 disponibile sul nostro canale YouTube.<\/i><\/p>\n<h2>Perch\u00e9 parlo della struttura di Amazon<\/h2>\n<p>\nLa mia prima auto era con il 'cambio manuale' \u2014 con cambio meccanico. Era fantastico per la sensazione di poter controllare l'auto e averne il controllo totale. Mi piaceva anche che avessi almeno una comprensione approssimativa del suo funzionamento. Naturalmente, immaginavo la struttura della trasmissione in modo piuttosto primitivo \u2014 pi\u00f9 o meno come un cambio di una bicicletta.<\/p>\n<p><img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/edaec571a676e162d5f075042ac9d8ea.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTutto \u00e8 stato meraviglioso, tranne un aspetto: stare bloccato nel traffico. Sembra che tu stia seduto e non faccia nulla, ma continui a cambiare marcia, premere la frizione, l'acceleratore, il freno \u2014 e tutto ci\u00f2 ti stanca davvero. Il problema del traffico si \u00e8 parzialmente risolto quando in famiglia \u00e8 arrivata un'auto con cambio automatico. Alla guida ho avuto il tempo di pensare a qualcosa, di ascoltare un audiolibro.<\/p>\n<p>Inoltre, nella mia vita \u00e8 apparso un mistero, perch\u00e9 ho smesso di capire come funziona la mia auto. Un'auto moderna \u00e8 un dispositivo complesso. Si adatta contemporaneamente a decine di parametri diversi: pressione sull'acceleratore, freno, stile di guida, qualit\u00e0 della strada. Non capisco pi\u00f9 come funziona.<\/p>\n<p>Quando ho iniziato a lavorare con Amazon Cloud, anche per me era un mistero. Solo che questo mistero \u00e8 a un livello superiore, perch\u00e9 nell'auto c'\u00e8 un solo conducente, mentre in AWS ce ne sono milioni. Tutti gli utenti guidano contemporaneamente, premendo l'acceleratore e il freno. \u00c8 sorprendente che riescano ad andare dove vogliono \u2014 per me \u00e8 un miracolo! Il sistema si adatta automaticamente, si scalda ed \u00e8 elasticamente configurato per ogni utente, al punto che sembra che sia l'unico in questo universo.<\/p>\n<p>La magia \u00e8 svanita un po' quando poi sono venuto a lavorare come architetto in Amazon. Ho visto quali problemi affrontiamo, come li risolviamo, come sviluppiamo i servizi. Con la crescita della comprensione del funzionamento del sistema, aumenta la fiducia nel servizio. Perci\u00f2 voglio condividere l'immagine di ci\u00f2 che c'\u00e8 sotto il cofano del cloud AWS.<\/p>\n<h2>Di cosa parleremo<\/h2>\n<p>\nHo scelto un approccio diversificato: ho selezionato 4 servizi interessanti di cui vale la pena parlare.<\/p>\n<p><strong>Ottimizzazione dei server<\/strong>. Nuvole effimere con incarnazione fisica: data center fisici, dove si trovano server fisici che ronzano, si scaldano e lampeggiano.<\/p>\n<p><strong>Funzioni serverless <\/strong>(Lambda) \u2014 probabilmente il servizio pi\u00f9 scalabile nel cloud.<\/p>\n<p><strong>Scalabilit\u00e0 del database<\/strong>. Racconter\u00f2 come costruiamo i nostri database scalabili.<\/p>\n<p><strong>Scalabilit\u00e0 della rete<\/strong>. Ultima parte, in cui sveler\u00f2 l'architettura della nostra rete. \u00c8 una cosa meravigliosa \u2014 ogni utente del cloud sente di essere l'unico nel cloud e non vede affatto gli altri tenant.<\/p>\n<blockquote><p><i>Nota. In questo articolo si parler\u00e0 dell'ottimizzazione dei server e della scalabilit\u00e0 dei database. La scalabilit\u00e0 della rete verr\u00e0 trattata nel prossimo articolo. Dove sono le funzioni serverless? Ne \u00e8 stata pubblicata una spiegazione separata \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/464305\/\">Piccolo ma potente. Unboxing della micro-virtualizzazione Firecracker<\/a><\/noindex>\u00bb. In essa vengono discussi diversi metodi di scalabilit\u00e0, e viene analizzata in dettaglio la soluzione Firecracker, un connubio delle migliori qualit\u00e0 delle macchine virtuali e dei container.<\/i><\/p><\/blockquote>\n<p><\/p>\n<h2>Server<\/h2>\n<p>\nIl cloud \u00e8 effimero. Ma questa effimereit\u00e0 ha pur sempre una rappresentazione fisica: i server. Inizialmente la loro architettura era classica. Chipset x86 standard, schede di rete, Linux, hypervisor Xen, su cui venivano eseguite le macchine virtuali.<\/p>\n<p><img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/734f99888072f78527bcc5f59485a1ff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNel 2012, tale architettura gestiva perfettamente i propri compiti. Xen \u00e8 un ottimo hypervisor, ma ha un serio svantaggio. Ha costi di overhead piuttosto <strong>elevati per l'emulazione dei dispositivi<\/strong>. Con l'emergere di nuove schede di rete pi\u00f9 veloci o di dischi SSD, questi overhead diventano troppo elevati. Come affrontare questo problema? Abbiamo deciso di lavorare su due fronti: <strong>ottimizzare sia l'hardware che l'hypervisor<\/strong>. \u00c8 un compito molto serio.<\/p>\n<h3>Ottimizzazione dell'hardware e dell'hypervisor<\/h3>\n<p>\nNon sar\u00e0 possibile fare tutto bene e in una volta sola. Cosa significhi \"bene\" non era chiaro fin dall'inizio.<\/p>\n<blockquote><p>Abbiamo deciso di applicare un approccio evolutivo: cambiamo un elemento importante dell'architettura e lo mettiamo in produzione.<\/p><\/blockquote>\n<p>Incontriamo tutte le difficolt\u00e0, ascoltiamo reclami e suggerimenti. Poi modifichiamo un altro componente. Cos\u00ec, con piccoli incrementi, cambiamo radicalmente tutta l'architettura sulla base del feedback da parte degli utenti e del supporto.<\/p>\n<p>Le trasformazioni sono iniziate nel 2013 con la parte pi\u00f9 complessa: la rete. In <strong>C3<\/strong> gli istanze, \u00e8 stata aggiunta una scheda speciale Network Accelerator accanto alla scheda di rete standard. Essa si collegava letteralmente con un cavo di loopback corto sulla parte anteriore. Brutto da vedere, ma nel cloud non si nota. Tuttavia, l'interazione diretta con l'hardware ha migliorato in modo sostanziale il jitter e la capacit\u00e0 di rete.<\/p>\n<p>Successivamente, abbiamo deciso di migliorare l'accesso allo storage a blocchi EBS - Elastic Block Storage. Questa \u00e8 una combinazione di rete e storage. La difficolt\u00e0 \u00e8 che se sul mercato esistevano schede Network Accelerator, non c'era la possibilit\u00e0 di acquistare hardware Storage Accelerator. Pertanto, ci siamo rivolti alla startup <strong>Annapurna Labs<\/strong>, che ha sviluppato chip ASIC speciali per noi. Questi hanno permesso di collegare volumi EBS remoti come dispositivi NVMe.<\/p>\n<p>Negli istanze <strong>C4<\/strong> abbiamo risolto due problemi. Il primo \u00e8 stato quello di realizzare un futuro promettente, ma nuovo all'epoca, con la tecnologia NVMe. Il secondo \u00e8 stato quello di alleggerire significativamente il processore centrale spostando l'elaborazione delle richieste a EBS su una nuova scheda. \u00c8 andata bene, quindi ora Annapurna Labs \u00e8 parte di Amazon.<\/p>\n<p>Entro novembre 2017, abbiamo capito che era giunto il momento di cambiare anche l'ipercloud.<\/p>\n<blockquote><p>Il nuovo ipervisor \u00e8 stato sviluppato sulla base di moduli migliorati del kernel KVM.<\/p><\/blockquote>\n<p>Ha permesso di ridurre significativamente le spese generali per l'emulazione dei dispositivi e di lavorare direttamente con i nuovi ASIC. Le istanze <strong>C5<\/strong> sono state le prime virtual machine sotto il cofano delle quali opera il nuovo ipervisor. Lo abbiamo chiamato <strong>Nitro<\/strong>.<\/p>\n<p><img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/f9ccbf867e405e88e36d7618375a9e73.jpg\" style=\"display:block;margin: 0 auto;\" \/><em>Evoluzione delle istanze su una linea temporale.<\/em><\/p>\n<p>Tutti i nuovi tipi di macchine virtuali introdotti da novembre 2017 funzionano su questo ipervisor.<strong> Le istanze Bare Metal non hanno un ipervisor<\/strong>, ma vengono anch'esse chiamate Nitro, poich\u00e9 utilizzano schede Nitro specializzate.<\/p>\n<p>Nei successivi due anni, il numero di tipi di istanze Nitro ha superato diverse decine: A1, C5, M5, T3 e altri.<\/p>\n<p><img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/3342d335f54f28b3225c7c6d95f27744.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Tipi di istanze.<\/em><\/p>\n<h3>Come sono strutturate le moderne macchine Nitro<\/h3>\n<p>\nHanno tre componenti principali: l'ipercloud Nitro (di cui si \u00e8 gi\u00e0 parlato), il chip di sicurezza e le schede Nitro.<\/p>\n<p><strong>Il chip di sicurezza<\/strong> \u00e8 integrato direttamente nella scheda madre. Controlla molte funzioni importanti, come il controllo di avvio del SO host.<\/p>\n<p><strong>Le schede Nitro<\/strong> \u2013 ne esistono quattro tipi. Tutte sono sviluppate da Annapurna Labs e si basano su ASIC comuni. Parte del loro firmware \u00e8 anch'esso condiviso.<\/p>\n<p><img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/411947f770f82dead25f9fafad5814c6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Quattro tipi di schede Nitro.<\/em><\/p>\n<p>Una delle schede \u00e8 destinata a lavorare con <strong>la rete<\/strong><strong>VPC<\/strong>. Questa \u00e8 visibile nelle virtual machine come scheda di rete <strong>ENA \u2014 Elastic Network Adaptor<\/strong>. Inoltre incapsula il traffico quando viene trasferito attraverso la rete fisica (di questo parleremo nella seconda parte dell'articolo), controlla il firewall delle Security Groups, si occupa del routing e di altre cose di rete.<\/p>\n<p>Schede separate lavorano con lo storage a blocchi <strong>EBS<\/strong> e con i dischi integrati nel server. Per la virtual machine guest, vengono presentati come <strong>adattatori NVMe<\/strong>. Inoltre si occupano della crittografia dei dati e del monitoraggio dei dischi.<\/p>\n<p>Il sistema delle schede Nitro, dell'ipercloud e del chip di sicurezza \u00e8 integrato in una rete SDN o<strong> Software Defined Network<\/strong>. Il controllo di questa rete (Control Plane) \u00e8 gestito da <strong>controller della mappa<\/strong>.<\/p>\n<p>Certo, stiamo continuando a sviluppare nuovi ASIC. Ad esempio, alla fine del 2018 abbiamo rilasciato il chip Inferentia, che consente di lavorare in modo pi\u00f9 efficiente su compiti di apprendimento automatico.<\/p>\n<p><img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/2e20101688bc0b68bb54ea7cd1344f51.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Chip Inferentia Machine Learning Processor.<\/em><\/p>\n<h2>Database scalabile<\/h2>\n<p>\nUn database tradizionale ha una struttura a strati. Se semplifichiamo molto, possiamo individuare i seguenti livelli.<\/p>\n<ul>\n<li><strong>SQL<\/strong> \u2014 su di esso operano i gestori dei clienti e delle richieste.<\/li>\n<li>Forniture <strong>transazioni<\/strong> \u2014 qui \u00e8 tutto chiaro, ACID e tutto il resto.<\/li>\n<li><strong>Caching<\/strong>, che \u00e8 garantito dai pool di buffer.<\/li>\n<li><strong>Registrazione<\/strong> \u2014 gestisce i redo log. In MySQL sono chiamati Bin Logs, in PosgreSQL \u2014 Write Ahead Logs (WAL).<\/li>\n<li><strong>Archiviazione <\/strong>\u2013 scrittura diretta su disco.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/b6ddee7bd150d307049a95f943b15e4c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Struttura a strati del database.<\/em><\/p>\n<p>Esistono diversi modi per scalare i database: sharding, architettura Shared Nothing, dischi condivisi.<\/p>\n<p><img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/ec8c74c80f295018271326d20d36b08e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTuttavia, tutti questi metodi mantengono la stessa struttura monolitica del database. Questo limita notevolmente la scalabilit\u00e0. Per risolvere questo problema, abbiamo sviluppato il nostro database \u2014 <strong>Amazon Aurora<\/strong>. \u00c8 compatibile con MySQL e PostgreSQL.<\/p>\n<h3>Amazon Aurora<\/h3>\n<p>\nL'idea architettonica principale \u00e8 separare i livelli di archiviazione e logging dal database principale.<\/p>\n<p>Anticipando, posso dire che abbiamo reso il livello di caching anche indipendente. L'architettura smette di essere un monolite e otteniamo ulteriori gradi di libert\u00e0 nella scalabilit\u00e0 dei singoli blocchi.<\/p>\n<p><img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/dfe3f039fbcf5140aa1541802b51c1ec.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>I livelli di logging e archiviazione sono separati dal database.<\/em><\/p>\n<p>Un DBMS tradizionale scrive i dati sul sistema di archiviazione in blocchi. In Amazon Aurora abbiamo creato un'archiviazione \"intelligente\" che pu\u00f2 comunicare nel linguaggio <strong>dei redo log<\/strong>. All'interno, l'archiviazione converte i log in blocchi di dati, ne controlla l'integrit\u00e0 e realizza automaticamente i backup.<\/p>\n<p>Questo approccio consente di realizzare cose interessanti come <strong>il cloning<\/strong>. Funziona in modo significativamente pi\u00f9 veloce ed economico poich\u00e9 non richiede la creazione di una copia completa di tutti i dati.<\/p>\n<p>Il livello di archiviazione \u00e8 realizzato come un sistema distribuito. Esso consiste in un numero molto elevato di server fisici. Ogni redo log viene elaborato e salvato contemporaneamente <strong>da sei nodi<\/strong>. Questo garantisce protezione dei dati e distribuzione del carico.<\/p>\n<p><img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/9861d6e975b483cc5a20727af91b1a6b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLa scalabilit\u00e0 in lettura pu\u00f2 essere garantita attraverso replica appropriate. Lo storage distribuito elimina la necessit\u00e0 di sincronizzazione tra l'istanza principale del database, da cui scriviamo i dati, e le altre repliche. I dati aggiornati sono garantiti come accessibili a tutte le repliche.<\/p>\n<p>L'unico problema \u00e8 la memorizzazione nella cache di dati obsoleti sulle repliche di lettura. Ma questo problema si risolve <strong>trasferendo tutti i redo-log<\/strong> alle repliche tramite la rete interna. Se il log \u00e8 in cache, viene contrassegnato come non valido e sovrascritto. Se non \u00e8 presente in cache, viene semplicemente scartato.<\/p>\n<p><img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/f87a140e401c49282d58ef65df5a4da2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAbbiamo chiarito la questione dello storage.<\/p>\n<h3>Come scalare i livelli del DBMS<\/h3>\n<p>\nQui la scalabilit\u00e0 orizzontale \u00e8 molto pi\u00f9 complessa. Dunque, seguiremo la strada gi\u00e0 battuta <strong>della scalabilit\u00e0 verticale classica.<\/strong>.<\/p>\n<p>Supponiamo di avere un'applicazione che interagisce con il DBMS tramite un nodo master. <\/p>\n<p>Con la scalabilit\u00e0 verticale, dedichiamo un nuovo nodo che avr\u00e0 pi\u00f9 processori e memoria.<\/p>\n<p><img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/72f09bdc94584629fad0c40bf1a45bd9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSuccessivamente, spostiamo l'applicazione dal vecchio nodo master al nuovo. Ci sono problemi.<\/p>\n<ul>\n<li>Questo richieder\u00e0 un notevole downtime dell'applicazione.<\/li>\n<li>Il nuovo nodo master avr\u00e0 una cache fredda. Le prestazioni del database saranno massime solo dopo il riscaldamento della cache.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/9820acd5597cb80bd7c63060ed13a37f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCome migliorare la situazione? Inserire un proxy tra l'applicazione e il nodo master.<\/p>\n<p><img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/ba8265da6ef9b1c1f9ac27bccab73f5d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCosa ci garantir\u00e0 questo? Ora tutte le applicazioni non devono essere reindirizzate manualmente al nuovo nodo. Il passaggio pu\u00f2 avvenire sotto il proxy e sar\u00e0 sostanzialmente pi\u00f9 veloce.<\/p>\n<p>Sembra che il problema sia risolto. Ma no, soffriamo ancora della necessit\u00e0 di riscaldamento della cache. Inoltre, \u00e8 emerso un nuovo problema: ora il proxy \u00e8 un potenziale punto di guasto.<\/p>\n<h3>La soluzione finale con Amazon Aurora serverless<\/h3>\n<p>\nCome abbiamo risolto questi problemi?<\/p>\n<p><strong>Abbiamo mantenuto il proxy<\/strong>. Non \u00e8 un'istanza separata, ma un'intera flotta distribuita di proxy, attraverso la quale le applicazioni si connettono al database. Qualsiasi nodo, in caso di guasto, pu\u00f2 essere sostituito praticamente in un istante.<\/p>\n<p><strong>Abbiamo aggiunto un pool di nodi caldi di diverse dimensioni<\/strong>. Quindi, quando \u00e8 necessario allocare un nuovo nodo di dimensioni maggiori o minori, \u00e8 subito disponibile. Non \u00e8 necessario aspettare che venga caricato.<\/p>\n<p><strong>L'intero processo di scalabilit\u00e0 \u00e8 controllato da un sistema di monitoraggio speciale. <\/strong>Il monitoraggio controlla costantemente lo stato dell'attuale master node. Se rileva, ad esempio, che il carico della CPU ha raggiunto un valore critico, avverte il pool di istanze pronte della necessit\u00e0 di allocare un nuovo nodo.<\/p>\n<p><img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/b5693b64e3468a4b6bcafb4fd5732bd8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Proxy distribuiti, istanze pronte e monitoraggio.<\/em><\/p>\n<p>Un nodo con la potenza richiesta \u00e8 disponibile. I buffer pool vengono copiati su di esso e il sistema inizia ad aspettare un momento sicuro per il switch.<\/p>\n<p><img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/fcbc5529352477b824cc969afd0a4fec.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDi solito, il momento per il switch arriva piuttosto rapidamente. La comunicazione tra il proxy e il vecchio master node viene quindi interrotta, tutte le sessioni vengono reindirizzate al nuovo nodo.<\/p>\n<p><img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/b3b4af9be2cdd28aaaecd97cae48621d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIl lavoro con il database riprende.<\/p>\n<p><img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/eeeae3ba3fc3ff014657f9786a25fd2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNel grafico \u00e8 evidente che l'interruzione \u00e8 davvero molto breve. Nel grafico blu c'\u00e8 il carico, mentre nei gradini rossi ci sono i momenti di scalabilit\u00e0. Le brevi cadute nel grafico blu rappresentano proprio quel breve ritardo.<\/p>\n<p><img decoding=\"async\" alt=\"Come AWS &#039;prepara&#039; i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database\" src=\"\/wp-content\/uploads\/2019\/10\/ac55eadb5f0b182b93fdd1617961a930.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA proposito, Amazon Aurora permette di risparmiare e di spegnere il database quando non \u00e8 utilizzato, ad esempio, nel fine settimana. Dopo lo spegnimento, il carico del database riduce gradualmente la sua potenza e si spegne per un certo periodo. Quando il carico ritorna, esso risale nuovamente gradualmente.<\/p>\n<blockquote><p>Nella prossima parte del racconto sull'architettura di Amazon parleremo della scalabilit\u00e0 della rete. Iscriviti <noindex><a rel=\"nofollow\" href=\"http:\/\/eepurl.com\/VYVaf\">alla newsletter<\/a><\/noindex> e segui gli aggiornamenti per non perdere l'articolo.<\/p>\n<p>A <noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/moscow\/2019\">HighLoad++<\/a><\/noindex> Vasily Pantiukhin presenter\u00e0 la relazione \"<noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/moscow\/2019\/abstracts\/5977\">Houston, abbiamo un problema. Design dei sistemi a prova di guasto, pattern di sviluppo dei servizi interni del cloud Amazon<\/a><\/noindex>\". Quali pattern di design dei sistemi distribuiti usano gli sviluppatori di Amazon, quali possono essere le cause di guasti nei servizi, cosa significa architettura basata su celle, lavoro costante, shuffle sharding \u2013 sar\u00e0 interessante. Meno di un mese alla conferenza \u2013 <noindex><a rel=\"nofollow\" href=\"https:\/\/conf.ontico.ru\/conference\/join\/hl2019.html\">prenota i biglietti<\/a><\/noindex>. Il 24 ottobre ci sar\u00e0 un aumento dei prezzi definitivo.<\/p><\/blockquote>\n<p>Fonte: <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.1.1 - 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\/it\/blog\/administrirovanie\/kak-aws-varit-svoi-elastichnye-servisy-masshtabirovanie-serverov-i-bazy-dannyh\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\/it\/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\udd47Come AWS 'cucina' i suoi servizi elastici. Scalabilit\u00e0 dei server e dei database | ProHoster","description":"Le nuvole sono simili a una scatola magica: chiedi ci\u00f2 di cui hai bisogno e le risorse appariranno dal nulla. Macchine virtuali, database, rete: tutto questo \u00e8 solo tuo.","canonical_url":"https:\/\/prohoster.info\/it\/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":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/39302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=39302"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/39302\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/39303"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=39302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=39302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=39302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}