{"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\/pt\/blog\/administrirovanie\/kak-aws-varit-svoi-elastichnye-servisy-masshtabirovanie-serverov-i-bazy-dannyh","title":{"rendered":"Como a AWS 'prepara' seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>As nuvens s\u00e3o como uma caixa m\u00e1gica \u2014 voc\u00ea define o que precisa e os recursos simplesmente aparecem do nada. M\u00e1quinas virtuais, bancos de dados, redes \u2014 tudo isso pertence apenas a voc\u00ea. Existem outros inquilinos na nuvem, mas em seu pr\u00f3prio universo, voc\u00ea \u00e9 o governante absoluto. Voc\u00ea tem certeza de que sempre receber\u00e1 os recursos necess\u00e1rios, n\u00e3o precisa considerar ningu\u00e9m e define sozinho como ser\u00e1 a rede. Como funciona essa m\u00e1gica que faz a nuvem alocar recursos de forma el\u00e1stica e isolar completamente os inquilinos uns dos outros?<\/p>\n<p><img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/075904e4db290f28746dd0054c9f87bf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA nuvem AWS \u00e9 um sistema mega-super complexo que vem evoluindo desde 2006. Parte dessa evolu\u00e7\u00e3o foi testemunhada <strong>Vasily Pantyukhin<\/strong> \u2014 por Vasily, arquiteto da Amazon Web Services. Como arquiteto, ele v\u00ea n\u00e3o apenas o resultado final, mas tamb\u00e9m as complexidades que a AWS enfrenta. Quanto mais se entende como o sistema funciona, mais confian\u00e7a se tem. Portanto, Vasily compartilhar\u00e1 os segredos dos servi\u00e7os de nuvem da AWS. Abaixo, explicamos a estrutura dos servidores f\u00edsicos da AWS, a escalabilidade el\u00e1stica de bancos de dados, o banco de dados customizado da Amazon e m\u00e9todos para melhorar o desempenho das m\u00e1quinas virtuais, ao mesmo tempo que reduz seus custos. Conhecer as abordagens arquitet\u00f4nicas da Amazon ajudar\u00e1 a usar os servi\u00e7os da AWS de forma mais eficaz e, possivelmente, fornecer\u00e1 novas ideias para a constru\u00e7\u00e3o de suas pr\u00f3prias solu\u00e7\u00f5es.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<i>Sobre o palestrante: Vasily Pantyukhin (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/hen\/\" class=\"user_link\">Hen<\/a><\/noindex>) come\u00e7ou como administrador Unix em empresas .ru, trabalhou por 6 anos com grandes equipamentos da Sun Microsystems e pregou a centralidade de dados no mundo por 11 anos na EMC. Evoluiu naturalmente para nuvens privadas e, em 2017, entrou no mercado de nuvens p\u00fablicas. Agora, ele oferece conselhos t\u00e9cnicos para viver e desenvolver na nuvem AWS.<\/p>\n<p>Aviso: tudo que segue \u00e9 uma opini\u00e3o pessoal de Vasily e pode n\u00e3o refletir a posi\u00e7\u00e3o da Amazon Web Services. <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/S3f6nWJxBvk\">A grava\u00e7\u00e3o em v\u00eddeo<\/a><\/noindex> da palestra, na qual este artigo foi baseado, est\u00e1 dispon\u00edvel em nosso canal no YouTube.<\/i><\/p>\n<h2>Por que estou falando sobre a estrutura da Amazon<\/h2>\n<p>\nMeu primeiro carro tinha 'c\u00e2mbio manual' \u2014 com transmiss\u00e3o manual. Era incr\u00edvel por causa da sensa\u00e7\u00e3o de que eu podia controlar o carro e tinha total dom\u00ednio sobre ele. Tamb\u00e9m gostava de saber, pelo menos de forma aproximada, como ele funcionava. Naturalmente, eu tinha uma vis\u00e3o bastante primitiva do funcionamento da caixa de c\u00e2mbio \u2014 mais ou menos como uma caixa de marchas de bicicleta.<\/p>\n<p><img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/edaec571a676e162d5f075042ac9d8ea.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTudo foi incr\u00edvel, exceto por uma coisa \u2014 ficar preso no tr\u00e2nsito. Parece que voc\u00ea est\u00e1 sentado e n\u00e3o fazendo nada, mas est\u00e1 constantemente trocando as marchas, pisando na embreagem, no acelerador, no freio \u2014 isso realmente cansa. O problema do tr\u00e2nsito foi parcialmente resolvido quando nossa fam\u00edlia adquiriu um carro autom\u00e1tico. Ao volante, passei a ter tempo para pensar em algo, ouvir um audiolivro.<\/p>\n<p>Al\u00e9m disso, surgiu um enigma na minha vida, porque eu realmente parei de entender como meu carro funciona. Um carro moderno \u00e9 um dispositivo complexo. Ele se adapta simultaneamente a dezenas de par\u00e2metros diferentes: acelera\u00e7\u00e3o, frenagem, estilo de condu\u00e7\u00e3o, qualidade da estrada. Eu j\u00e1 n\u00e3o entendo como isso funciona.<\/p>\n<p>Quando comecei a trabalhar com a nuvem da Amazon, isso tamb\u00e9m era um mist\u00e9rio para mim. S\u00f3 que esse mist\u00e9rio \u00e9 muito mais complexo, porque em um carro h\u00e1 um motorista, enquanto na AWS h\u00e1 milh\u00f5es. Todos os usu\u00e1rios dirigem ao mesmo tempo, acelerando e freando. \u00c9 incr\u00edvel que eles consigam ir para onde desejam \u2014 para mim, isso \u00e9 um milagre! O sistema se adapta automaticamente, escalona e se ajusta elasticamente a cada usu\u00e1rio, de forma que ele sente que \u00e9 o \u00fanico neste universo.<\/p>\n<p>A magia um pouco se dissipou quando, mais tarde, comecei a trabalhar como arquiteto na Amazon. Eu vi com quais problemas enfrentamos, como os resolvemos e como desenvolvemos os servi\u00e7os. Com a crescente compreens\u00e3o do funcionamento do sistema, a confian\u00e7a no servi\u00e7o aumenta. Por isso, quero compartilhar meu entendimento sobre o que acontece por tr\u00e1s do AWS cloud.<\/p>\n<h2>Sobre o que vamos falar<\/h2>\n<p>\nEscolhi uma abordagem diversificada \u2014 selecionei 4 servi\u00e7os interessantes sobre os quais vale a pena falar.<\/p>\n<p><strong>Otimiza\u00e7\u00e3o de servidores<\/strong>. Nuvens ef\u00eameras com uma manifesta\u00e7\u00e3o f\u00edsica: data centers f\u00edsicos, onde est\u00e3o os servidores f\u00edsicos que zumbem, esquentam e piscam as luzes.<\/p>\n<p><strong>Fun\u00e7\u00f5es sem servidor <\/strong>(Lambda) \u2014 provavelmente, o servi\u00e7o mais escal\u00e1vel na nuvem.<\/p>\n<p><strong>Escalonamento de banco de dados<\/strong>. Vou falar sobre como constru\u00edmos nossos pr\u00f3prios bancos de dados escal\u00e1veis.<\/p>\n<p><strong>Escalonamento de rede<\/strong>. A \u00faltima parte, na qual revelarei a estrutura da nossa rede. \u00c9 uma coisa maravilhosa \u2014 cada usu\u00e1rio da nuvem acha que est\u00e1 sozinho na nuvem e n\u00e3o v\u00ea outros inquilinos.<\/p>\n<blockquote><p><i>Nota. Neste artigo, vamos falar sobre a otimiza\u00e7\u00e3o de servidores e escalonamento de bancos de dados. O escalonamento da rede ser\u00e1 abordado no pr\u00f3ximo artigo. E onde est\u00e3o as fun\u00e7\u00f5es serverless? Elas foram objeto de uma an\u00e1lise separada \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/464305\/\">Pequeno, mas poderoso. Unboxing da microvirtualiza\u00e7\u00e3o Firecracker<\/a><\/noindex>\u00bb. Esta an\u00e1lise apresenta v\u00e1rias maneiras diferentes de escalonamento e detalha a solu\u00e7\u00e3o Firecracker \u2014 a simbiose das melhores caracter\u00edsticas de m\u00e1quinas virtuais e cont\u00eaineres.<\/i><\/p><\/blockquote>\n<p><\/p>\n<h2>Servidores<\/h2>\n<p>\nA nuvem \u00e9 ef\u00eamera. Mas essa efemeridade tem uma manifesta\u00e7\u00e3o f\u00edsica \u2014 servidores. Sua arquitetura originalmente era cl\u00e1ssica. Chipset x86 padr\u00e3o, placas de rede, Linux, hipervisor Xen, sobre o qual as m\u00e1quinas virtuais eram executadas.<\/p>\n<p><img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/734f99888072f78527bcc5f59485a1ff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEm 2012, essa arquitetura cumpria suas fun\u00e7\u00f5es. O Xen \u00e9 um \u00f3timo hipervisor, mas tem uma grande desvantagem. Ele apresenta custos elevados <strong>de sobrecarga na emula\u00e7\u00e3o de dispositivos<\/strong>. Com o surgimento de novas placas de rede mais r\u00e1pidas ou discos SSD, esses custos tornam-se excessivos. Como lidar com esse problema? Decidiu-se atuar em duas frentes \u2014 <strong>otimizar tanto o hardware quanto o hipervisor<\/strong>. A tarefa \u00e9 bastante desafiadora.<\/p>\n<h3>Otimiza\u00e7\u00e3o do hardware e do hipervisor<\/h3>\n<p>\nN\u00e3o se consegue fazer tudo de uma vez e com excel\u00eancia. O que significa \u00abexcelente\u00bb tamb\u00e9m n\u00e3o estava claro inicialmente.<\/p>\n<blockquote><p>Decidiu-se aplicar uma abordagem evolutiva \u2014 alterar um elemento importante da arquitetura e lan\u00e7\u00e1-lo em produ\u00e7\u00e3o.<\/p><\/blockquote>\n<p>Enfrentamos todos os desafios, ouvimos reclama\u00e7\u00f5es e sugest\u00f5es. Depois, alteramos outro componente. Assim, com pequenos incrementos, transformamos toda a arquitetura baseada no feedback dos usu\u00e1rios e da equipe de suporte.<\/p>\n<p>As transforma\u00e7\u00f5es come\u00e7aram em 2013, pelo mais dif\u00edcil \u2014 a rede. No <strong>C3<\/strong> as inst\u00e2ncias foram adicionadas a um cart\u00e3o Network Accelerator especial em conjunto com o cart\u00e3o de rede padr\u00e3o. Ele era conectado literalmente com um cabo loopback curto no painel frontal. N\u00e3o era bonito, mas na nuvem n\u00e3o era vis\u00edvel. No entanto, a intera\u00e7\u00e3o direta com o hardware melhorou significativamente o jitter e a largura de banda da rede.<\/p>\n<p>Ap\u00f3s isso, decidimos melhorar o acesso ao armazenamento em bloco EBS \u2014 Elastic Block Storage. \u00c9 uma combina\u00e7\u00e3o de rede e armazenamento. A dificuldade \u00e9 que, enquanto j\u00e1 existiam cart\u00f5es Network Accelerator no mercado, n\u00e3o havia a possibilidade de simplesmente comprar hardware Storage Accelerator. Portanto, nos dirigimos \u00e0 startup <strong>Annapurna Labs<\/strong>, que desenvolveu para n\u00f3s chips ASIC especiais. Eles permitiram conectar volumes EBS remotos como dispositivos NVMe.<\/p>\n<p>Nas inst\u00e2ncias <strong>C4<\/strong> resolvemos duas quest\u00f5es. A primeira \u2014 fizemos uma prepara\u00e7\u00e3o para o futuro com uma tecnologia promissora, mas nova naquela \u00e9poca, a NVMe. A segunda \u2014 aliviamos significativamente a carga do processador central transferindo o processamento de solicita\u00e7\u00f5es para o EBS para um novo chip. A opera\u00e7\u00e3o foi bem-sucedida, por isso agora a Annapurna Labs \u00e9 parte da Amazon.<\/p>\n<p>Em novembro de 2017, percebemos que era hora de trocar o hipervisor.<\/p>\n<blockquote><p>O novo hipervisor foi desenvolvido com base em m\u00f3dulos aprimorados do n\u00facleo KVM.<\/p><\/blockquote>\n<p>Isso permitiu reduzir drasticamente as sobrecargas de emula\u00e7\u00e3o de dispositivos e trabalhar diretamente com os novos ASIC. As inst\u00e2ncias <strong>C5<\/strong> foram as primeiras m\u00e1quinas virtuais a implementar o novo hipervisor. N\u00f3s o chamamos de <strong>Nitro<\/strong>.<\/p>\n<p><img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/f9ccbf867e405e88e36d7618375a9e73.jpg\" style=\"display:block;margin: 0 auto;\" \/><em>A evolu\u00e7\u00e3o das inst\u00e2ncias na linha do tempo.<\/em><\/p>\n<p>Todos os novos tipos de m\u00e1quinas virtuais que surgiram desde novembro de 2017 operam nesse hipervisor.<strong> As inst\u00e2ncias Bare Metal n\u00e3o t\u00eam hipervisor<\/strong>, mas tamb\u00e9m s\u00e3o chamadas de Nitro, pois utilizam placas Nitro especializadas.<\/p>\n<p>Nos dois anos seguintes, o n\u00famero de tipos de inst\u00e2ncias Nitro ultrapassou duas dezenas: A1, C5, M5, T3 e outras.<\/p>\n<p><img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/3342d335f54f28b3225c7c6d95f27744.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Tipos de inst\u00e2ncias.<\/em><\/p>\n<h3>Como s\u00e3o as modernas m\u00e1quinas Nitro.<\/h3>\n<p>\nElas possuem tr\u00eas componentes principais: o hipervisor Nitro (mencionado acima), um chip de seguran\u00e7a e as placas Nitro.<\/p>\n<p><strong>O chip de seguran\u00e7a<\/strong> est\u00e1 integrado diretamente na placa-m\u00e3e. Ele controla v\u00e1rias fun\u00e7\u00f5es importantes, como o controle de inicializa\u00e7\u00e3o do sistema operacional host.<\/p>\n<p><strong>As placas Nitro<\/strong> s\u00e3o de quatro tipos. Todas foram desenvolvidas pela Annapurna Labs e baseiam-se em ASICs comuns. Parte de seu firmware tamb\u00e9m \u00e9 comum.<\/p>\n<p><img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/411947f770f82dead25f9fafad5814c6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Quatro tipos de placas Nitro.<\/em><\/p>\n<p>Uma das placas \u00e9 destinada ao funcionamento com <strong>a rede<\/strong><strong>VPC<\/strong>. Ela \u00e9 vis\u00edvel nas m\u00e1quinas virtuais como uma placa de rede <strong>ENA \u2014 Elastic Network Adaptor<\/strong>. Ela tamb\u00e9m encapsula o tr\u00e1fego ao transmiti-lo pela rede f\u00edsica (sobre isso falaremos na segunda parte do artigo), controla o firewall Security Groups, \u00e9 respons\u00e1vel pelo roteamento e outras fun\u00e7\u00f5es de rede.<\/p>\n<p>Placas separadas trabalham com armazenamento em bloco <strong>EBS<\/strong> e discos integrados ao servidor. Para a m\u00e1quina virtual hospedeira, elas se apresentam como <strong>adaptadores NVMe<\/strong>. Elas tamb\u00e9m s\u00e3o respons\u00e1veis pela criptografia de dados e monitoramento de discos.<\/p>\n<p>O sistema de placas Nitro, do hipervisor e do chip de seguran\u00e7a \u00e9 integrado a uma rede SDN ou<strong> Software Defined Network<\/strong>. A gest\u00e3o dessa rede (Control Plane) \u00e9 responsabilidade <strong>controlador de mapa<\/strong>.<\/p>\n<p>Claro, continuamos desenvolvendo novos ASIC. Por exemplo, no final de 2018, lan\u00e7amos o chip Inferentia, que possibilita um trabalho mais eficiente em tarefas de aprendizado de m\u00e1quina.<\/p>\n<p><img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/2e20101688bc0b68bb54ea7cd1344f51.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Processador de Aprendizado de M\u00e1quina Inferentia.<\/em><\/p>\n<h2>Banco de dados escal\u00e1vel<\/h2>\n<p>\nUm banco de dados tradicional possui uma estrutura em camadas. Simplificando bastante, os seguintes n\u00edveis podem ser destacados.<\/p>\n<ul>\n<li><strong>SQL<\/strong> \u2014 \u00e9 onde os gerenciadores de clientes e consultas operam.<\/li>\n<li>Garantias <strong>de transa\u00e7\u00f5es<\/strong> \u2014 aqui tudo \u00e9 claro, ACID e tudo mais.<\/li>\n<li><strong>Cache<\/strong>, que \u00e9 garantido por pools de buffer.<\/li>\n<li><strong>Registro<\/strong> \u2014 garante a opera\u00e7\u00e3o com logs de redo. No MySQL, eles s\u00e3o chamados de Bin Logs, no PostgreSQL \u2014 Write Ahead Logs (WAL).<\/li>\n<li><strong>Armazenamento <\/strong>\u2013 grava\u00e7\u00e3o diretamente no disco.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/b6ddee7bd150d307049a95f943b15e4c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Estrutura em camadas do banco de dados.<\/em><\/p>\n<p>Existem diferentes maneiras de escalar bancos de dados: sharding, arquitetura Shared Nothing, discos compartilhados.<\/p>\n<p><img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/ec8c74c80f295018271326d20d36b08e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNo entanto, todos esses m\u00e9todos mant\u00eam a mesma estrutura monol\u00edtica do banco de dados. Isso limita significativamente a escalabilidade. Para resolver esse problema, desenvolvemos nosso pr\u00f3prio banco de dados \u2014 <strong>Amazon Aurora<\/strong>. Ele \u00e9 compat\u00edvel com MySQL e PostgreSQL.<\/p>\n<h3>Amazon Aurora<\/h3>\n<p>\nA ideia arquitet\u00f4nica principal \u2014 separar os n\u00edveis de armazenamento e registro do banco de dados principal.<\/p>\n<p>Antecipando, posso dizer que tamb\u00e9m tornamos o n\u00edvel de cache independente. A arquitetura deixa de ser um mon\u00f3lito, permitindo liberdade adicional na escalabilidade de blocos individuais.<\/p>\n<p><img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/dfe3f039fbcf5140aa1541802b51c1ec.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Os n\u00edveis de registro e armazenamento est\u00e3o separados do banco de dados.<\/em><\/p>\n<p>Um SGBD tradicional grava dados no sistema de armazenamento em forma de blocos. No Amazon Aurora, criamos um armazenamento 'inteligente' que pode se comunicar na linguagem <strong>dos logs de redo<\/strong>. Internamente, o armazenamento converte logs em blocos de dados, mant\u00e9m sua integridade e faz backups automaticamente.<\/p>\n<p>Essa abordagem permite implementar coisas interessantes, como <strong>clonagem<\/strong>. Ela funciona de forma significativamente mais r\u00e1pida e econ\u00f4mica, j\u00e1 que n\u00e3o requer a cria\u00e7\u00e3o de uma c\u00f3pia completa de todos os dados.<\/p>\n<p>O n\u00edvel de armazenamento \u00e9 implementado como um sistema distribu\u00eddo. Ele consiste em um grande n\u00famero de servidores f\u00edsicos. Cada log de redo \u00e9 processado e salvo simultaneamente <strong>por seis n\u00f3s<\/strong>. Isso garante a prote\u00e7\u00e3o dos dados e a distribui\u00e7\u00e3o da carga.<\/p>\n<p><img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/9861d6e975b483cc5a20727af91b1a6b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA escalabilidade de leitura pode ser garantida com as r\u00e9plicas adequadas. O armazenamento distribu\u00eddo elimina a necessidade de sincroniza\u00e7\u00e3o entre a inst\u00e2ncia principal do banco de dados, onde gravamos os dados, e as outras r\u00e9plicas. Os dados atualizados est\u00e3o garantidamente dispon\u00edveis para todas as r\u00e9plicas.<\/p>\n<p>O \u00fanico problema \u00e9 o cache de dados antigos nas r\u00e9plicas de leitura. Mas essa tarefa pode ser resolvida <strong>com a transmiss\u00e3o de todos os logs redo<\/strong> para as r\u00e9plicas atrav\u00e9s da rede interna. Se o log estiver no cache, ele \u00e9 marcado como inv\u00e1lido e reescrito. Se n\u00e3o estiver no cache, ele simplesmente \u00e9 descartado.<\/p>\n<p><img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/f87a140e401c49282d58ef65df5a4da2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJ\u00e1 esclarecemos sobre o armazenamento.<\/p>\n<h3>Como escalar os n\u00edveis do SGBD<\/h3>\n<p>\nAqui, a escalabilidade horizontal \u00e9 muito mais dif\u00edcil de fazer. Portanto, vamos seguir o caminho j\u00e1 trilhado <strong>da escalabilidade vertical cl\u00e1ssica.<\/strong>.<\/p>\n<p>Suponha que temos um aplicativo que se comunica com o SGBD atrav\u00e9s da n\u00f3 mestre. <\/p>\n<p>Na escalabilidade vertical, alocamos um novo n\u00f3 que ter\u00e1 mais processadores e mem\u00f3ria.<\/p>\n<p><img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/72f09bdc94584629fad0c40bf1a45bd9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDepois, mudamos o aplicativo do antigo n\u00f3 mestre para o novo. Isso causa problemas.<\/p>\n<ul>\n<li>Isso exigir\u00e1 um tempo de inatividade significativo para o aplicativo.<\/li>\n<li>O novo n\u00f3 mestre ter\u00e1 um cache frio. O desempenho do banco de dados ser\u00e1 m\u00e1ximo apenas ap\u00f3s o aquecimento do cache.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/9820acd5597cb80bd7c63060ed13a37f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nComo melhorar a situa\u00e7\u00e3o? Colocar um proxy entre o aplicativo e o n\u00f3 mestre.<\/p>\n<p><img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/ba8265da6ef9b1c1f9ac27bccab73f5d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nO que isso nos dar\u00e1? Agora, todos os aplicativos n\u00e3o precisam ser redirecionados manualmente para o novo n\u00f3. A troca pode ser feita sob o proxy e, assim, ser\u00e1 fundamentalmente mais r\u00e1pida.<\/p>\n<p>Parece que o problema est\u00e1 resolvido. Mas n\u00e3o, ainda estamos sofrendo com a necessidade de aquecer o cache. Al\u00e9m disso, surgiu um novo problema \u2014 agora o proxy \u00e9 um ponto potencial de falha.<\/p>\n<h3>Solu\u00e7\u00e3o final com Amazon Aurora serverless<\/h3>\n<p>\nComo resolvemos esses problemas?<\/p>\n<p><strong>Mantivemos o proxy<\/strong>. N\u00e3o \u00e9 uma inst\u00e2ncia separada, mas sim uma frota distribu\u00edda de proxies, atrav\u00e9s da qual os aplicativos se conectam ao banco de dados. Qualquer um dos n\u00f3s que falhar pode ser substitu\u00eddo praticamente instantaneamente.<\/p>\n<p><strong>Adicionamos um pool de n\u00f3s quentes de tamanhos variados<\/strong>. Portanto, ao precisar alocar um novo n\u00f3 de maior ou menor tamanho, ele est\u00e1 imediatamente dispon\u00edvel. N\u00e3o \u00e9 necess\u00e1rio esperar que ele seja carregado.<\/p>\n<p><strong>Todo o processo de escalabilidade \u00e9 controlado por um sistema de monitoramento especial. <\/strong>A monitor is constantly tracking the status of the current master node. If it detects that, for example, the CPU load has reached a critical level, it notifies the pool of warm instances to allocate a new node.<\/p>\n<p><img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/b5693b64e3468a4b6bcafb4fd5732bd8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Proxies, warm instances, and monitoring.<\/em><\/p>\n<p>A node with the required capacity is available. Buffer pools are copied to it, and the system begins to wait for a safe moment to switch.<\/p>\n<p><img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/fcbc5529352477b824cc969afd0a4fec.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUsually, the moment for switching comes quite quickly. Then the communication between the proxy and the old master node is paused, and all sessions are switched to the new node.<\/p>\n<p><img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/b3b4af9be2cdd28aaaecd97cae48621d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWork with the database resumes.<\/p>\n<p><img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/eeeae3ba3fc3ff014657f9786a25fd2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nThe graph shows that the pause is indeed very short. The blue graph represents the load, while the red steps indicate the moments of scaling. The brief drops in the blue graph represent that short delay.<\/p>\n<p><img decoding=\"async\" alt=\"Como a AWS &#039;prepara&#039; seus servi\u00e7os el\u00e1sticos. Escalabilidade de servidores e bancos de dados\" src=\"\/wp-content\/uploads\/2019\/10\/ac55eadb5f0b182b93fdd1617961a930.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBy the way, Amazon Aurora allows you to save costs by shutting down the database when it's not in use, for example, on weekends. After stopping, the database gradually reduces its capacity and disconnects for a while. When the load returns, it smoothly ramps back up.<\/p>\n<blockquote><p>In the next part of the story about Amazon's architecture, we will discuss network scaling. Subscribe <noindex><a rel=\"nofollow\" href=\"http:\/\/eepurl.com\/VYVaf\">to the newsletter<\/a><\/noindex> and follow the updates so you don't miss the article.<\/p>\n<p>Sobre <noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/moscow\/2019\">HighLoad++<\/a><\/noindex> Vasily Pantyukhin will present a talk titled \"<noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/moscow\/2019\/abstracts\/5977\">Houston, we have a problem. Designing fault-tolerant systems, patterns for developing Amazon cloud internal services<\/a><\/noindex>\". What design patterns do Amazon developers use for distributed systems, what are the causes of service failures, what is Cell-based architecture, Constant Work, Shuffle Sharding \u2014 it will be interesting. Less than a month to the conference \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/conf.ontico.ru\/conference\/join\/hl2019.html\">book your tickets<\/a><\/noindex>. Prices will rise on October 24.<\/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.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\/pt\/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=\"pt_PT\" \/>\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\/pt\/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\udd47How AWS \"cooks\" its elastic services. Scaling servers and databases | ProHoster","description":"Clouds are like a magic box \u2014 you specify what you need, and resources simply appear out of nowhere. Virtual machines, databases, the network \u2014 all of this belongs solely to you.","canonical_url":"https:\/\/prohoster.info\/pt\/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":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/39302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=39302"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/39302\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/39303"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=39302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=39302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=39302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}