{"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\/en\/blog\/administrirovanie\/kak-aws-varit-svoi-elastichnye-servisy-masshtabirovanie-serverov-i-bazy-dannyh","title":{"rendered":"How AWS 'cooks' its elastic services. Scaling servers and databases","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Clouds are like a magical box \u2014 you specify what you need, and resources simply appear out of nowhere. Virtual machines, databases, networks \u2014 all of this belongs exclusively to you. There are other tenants in the cloud, but in your universe, you are the sole ruler. You are confident that you will always receive the required resources, without having to share with anyone else, and you alone determine how the network will function. How does this magic work that allows the cloud to flexibly allocate resources while completely isolating tenants from one another?<\/p>\n<p><img decoding=\"async\" alt=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" src=\"\/wp-content\/uploads\/2019\/10\/075904e4db290f28746dd0054c9f87bf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAWS Cloud is an incredibly complex system that has been evolving since 2006. Part of this development was witnessed <strong>Vasily Pantyukhin<\/strong> \u2014 by an architect at Amazon Web Services. As an architect, he sees not only the end result but also the challenges that AWS overcomes. The more you understand how the system works, the more trust you build. Therefore, Vasily will share secrets about AWS cloud services. Below, you'll find information on the architecture of AWS physical servers, the elastic scalability of databases, the custom Amazon database, and methods for enhancing the performance of virtual machines while simultaneously reducing their costs. Understanding Amazon's architectural approaches will help you use AWS services more effectively and may even inspire new ideas for building your own solutions.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<i>About the speaker: Vasily Pantyukhin (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/hen\/\" class=\"user_link\">Hen<\/a><\/noindex>) began his career as a Unix admin in Russian companies, spent 6 years working with substantial Sun Microsystems hardware, and spent 11 years preaching data-centricity at EMC. He naturally evolved into private clouds and, in 2017, moved into public clouds. Now he provides technical advice to help organizations thrive and grow in AWS cloud.<\/p>\n<p>Disclaimer: everything below is Vasily's personal opinion and may not reflect the views of Amazon Web Services. <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/S3f6nWJxBvk\">The video recording<\/a><\/noindex> of the presentation on which this article is based is available on our YouTube channel.<\/i><\/p>\n<h2>Why I discuss the structure of Amazon<\/h2>\n<p>\nMy first car had a \"stick\" \u2014 it had a manual transmission. It was amazing because it gave me the feeling that I could control the car completely. I also liked that I could at least roughly understand how it worked. Naturally, I pictured the mechanics of the gearbox rather simply \u2014 somewhat like a bicycle's transmission.<\/p>\n<p><img decoding=\"async\" alt=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" src=\"\/wp-content\/uploads\/2019\/10\/edaec571a676e162d5f075042ac9d8ea.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEverything was great, except for one thing \u2014 being stuck in traffic. It feels like you're sitting still and doing nothing, but you're constantly shifting gears, pressing the clutch, accelerating, and braking \u2014 it really wears you out. The problem of traffic jams was partly resolved when my family got a car with an automatic transmission. Driving now gives me time to think about something, listen to an audiobook.<\/p>\n<p>Another mystery entered my life because I completely stopped understanding how my car works. A modern vehicle is a complex device. The car adapts simultaneously to dozens of different parameters: gas pedal pressure, braking, driving style, and road quality. I no longer comprehend how this functions.<\/p>\n<p>When I started working with Amazon Cloud, it was also a mystery to me. But this mystery is an order of magnitude greater because in a car, there's one driver, while in AWS, there are millions. All users are steering, pressing the gas and brakes simultaneously. It's amazing that they go where they want \u2014 to me, it's a miracle! The system automatically adapts, scales, and flexibly adjusts to each user, making them feel like they are the only one in this Universe.<\/p>\n<p>The magic faded a bit when I later came to work as an architect at Amazon. I saw the problems we faced, how we solved them, and how we developed services. As my understanding of the system grew, so did my trust in the service. That\u2019s why I want to share a picture of what\u2019s under the hood of the AWS cloud.<\/p>\n<h2>What we'll talk about<\/h2>\n<p>\nI chose a diversified approach \u2014 I selected 4 interesting services worth discussing.<\/p>\n<p><strong>Server Optimization<\/strong>. Ephemeral clouds with physical embodiment: physical data centers where physical servers hum, heat up, and blink their lights.<\/p>\n<p><strong>Serverless Functions <\/strong>(Lambda) \u2014 probably the most scalable service in the cloud.<\/p>\n<p><strong>Database Scaling<\/strong>. I will explain how we build our own scalable databases.<\/p>\n<p><strong>Network Scaling<\/strong>. The final part, where I will reveal the structure of our network. It\u2019s a wonderful thing \u2014 every cloud user thinks they are alone in the cloud and cannot see other tenants.<\/p>\n<blockquote><p><i>Note. This article discusses server optimization and database scaling. Scaling the network will be addressed in the next article. What about serverless functions? A separate transcription has been released on this topic.<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/464305\/\">Small but mighty. Unboxing the Firecracker micro-virtual machine.<\/a><\/noindex>It details several different scaling methods and thoroughly examines the Firecracker solution\u2014a blend of the best qualities of virtual machines and containers.<\/i><\/p><\/blockquote>\n<p><\/p>\n<h2>Servers<\/h2>\n<p>\nThe cloud is ephemeral. Yet, this ephemerality has a physical embodiment\u2014servers. Initially, their architecture was classical: standard x86 chipset, network cards, Linux, and the Xen hypervisor on which virtual machines ran.<\/p>\n<p><img decoding=\"async\" alt=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" src=\"\/wp-content\/uploads\/2019\/10\/734f99888072f78527bcc5f59485a1ff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn 2012, such an architecture adequately met its tasks. Xen is an excellent hypervisor but has one major drawback. <strong>It has relatively high overhead for device emulation.<\/strong>With the arrival of new, faster network cards or SSDs, these overheads became too high. How to tackle this problem? The solution was to work on two fronts\u2014 <strong>optimizing both the hardware and the hypervisor.<\/strong>This is a very serious task.<\/p>\n<h3>Optimizing hardware and the hypervisor.<\/h3>\n<p>\nDoing everything well at once is not feasible. What constitutes 'well' was initially unclear.<\/p>\n<blockquote><p>We decided to adopt an evolutionary approach\u2014changing one key architectural element and deploying it into production.<\/p><\/blockquote>\n<p>We tread on all the rakes, listen to complaints and suggestions, and then change another component. This way, through small increments, we fundamentally change the entire architecture based on user feedback and support.<\/p>\n<p>Transformations began in 2013 with the most challenging aspect\u2014the network. In the <strong>C3<\/strong> instances, a special Network Accelerator card was added alongside the standard network card. It connected literally with a short loopback cable on the front panel. Unsightly, but in the cloud, it's not visible. However, direct interaction with the hardware fundamentally improved jitter and network bandwidth.<\/p>\n<p>Next, we focused on enhancing access to Elastic Block Storage (EBS)\u2014a combination of network and storage. The challenge was that while Network Accelerator cards existed in the market, there was no option to simply buy Storage Accelerator hardware. Therefore, we turned to the startup <strong>Annapurna Labs.<\/strong>, which developed specialized ASIC chips for us. They allowed remote EBS volumes to be connected as NVMe devices.<\/p>\n<p>In the instances <strong>C4<\/strong> , we addressed two tasks. First, we laid the groundwork for the promising but new NVMe technology at the time. Second, we significantly relieved the CPU load by transferring EBS request processing to a new card. It worked out well, so now Annapurna Labs is part of Amazon.<\/p>\n<p>By November 2017, we realized it was time to change the hypervisor itself.<\/p>\n<blockquote><p>The new hypervisor was developed based on enhanced KVM kernel modules.<\/p><\/blockquote>\n<p>It fundamentally reduced overhead for device emulation and enabled direct interaction with new ASICs. The instances <strong>C5<\/strong> were the first virtual machines powered by the new hypervisor. We named it <strong>Nitro<\/strong>.<\/p>\n<p><img decoding=\"async\" alt=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" src=\"\/wp-content\/uploads\/2019\/10\/f9ccbf867e405e88e36d7618375a9e73.jpg\" style=\"display:block;margin: 0 auto;\" \/><em>Evolution of instances on the timeline.<\/em><\/p>\n<p>All new types of virtual machines that appeared since November 2017 operate on this hypervisor.<strong> Bare Metal instances have no hypervisor<\/strong>, but they are also called Nitro, as they use specialized Nitro cards.<\/p>\n<p>Over the next two years, the number of Nitro instance types exceeded several dozen: A1, C5, M5, T3, and others.<\/p>\n<p><img decoding=\"async\" alt=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" src=\"\/wp-content\/uploads\/2019\/10\/3342d335f54f28b3225c7c6d95f27744.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Types of instances.<\/em><\/p>\n<h3>How modern Nitro machines are structured<\/h3>\n<p>\nThey have three main components: the Nitro hypervisor (mentioned earlier), a security chip, and Nitro cards.<\/p>\n<p><strong>The security chip<\/strong> is integrated directly into the motherboard. It controls many important functions, such as host OS boot control.<\/p>\n<p><strong>Nitro cards<\/strong> \u2014 there are four types. All of them were designed by Annapurna Labs and are based on common ASICs. Some of their firmware is also shared.<\/p>\n<p><img decoding=\"async\" alt=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" src=\"\/wp-content\/uploads\/2019\/10\/411947f770f82dead25f9fafad5814c6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Four types of Nitro cards.<\/em><\/p>\n<p>One of the cards is designed to work with <strong>the network.<\/strong><strong>VPC<\/strong>It is recognized in virtual machines as a network card <strong>ENA \u2014 Elastic Network Adapter<\/strong>. It encapsulates traffic when transmitting it over the physical network (which will be discussed in the second part of the article), controls the Security Groups firewall, and handles routing and other networking tasks.<\/p>\n<p>Separate cards work with block storage <strong>EBS<\/strong> and disks embedded in the server. To the guest virtual machine, they appear as <strong>NVMe adapters.<\/strong>They are also responsible for data encryption and disk monitoring.<\/p>\n<p>The system of Nitro cards, hypervisor, and security chip is unified in a SDN network or<strong> Software Defined Network.<\/strong>The Control Plane of this network is managed by <strong>map controller<\/strong>.<\/p>\n<p>Of course, we continue developing new ASICs. For example, at the end of 2018, we released the Inferentia chip, which allows for more efficient handling of machine learning tasks.<\/p>\n<p><img decoding=\"async\" alt=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" src=\"\/wp-content\/uploads\/2019\/10\/2e20101688bc0b68bb54ea7cd1344f51.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Inferentia Machine Learning Processor chip.<\/em><\/p>\n<h2>Scalable database<\/h2>\n<p>\nA traditional database has a layered structure. To simplify, the following levels can be distinguished.<\/p>\n<ul>\n<li><strong>SQL<\/strong> \u2014 it runs client and request managers.<\/li>\n<li>Provisioning <strong>transactions<\/strong> \u2014 this is quite clear, ACID and all that.<\/li>\n<li><strong>Caching<\/strong>, which is ensured by buffer pools.<\/li>\n<li><strong>Logging<\/strong> \u2014 handles the work with redo logs. In MySQL, they are called Bin Logs, in PostgreSQL \u2014 Write Ahead Logs (WAL).<\/li>\n<li><strong>Storage <\/strong>\u2013 directly writing to disk.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" src=\"\/wp-content\/uploads\/2019\/10\/b6ddee7bd150d307049a95f943b15e4c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Layered database structure.<\/em><\/p>\n<p>There are different ways to scale databases: sharding, Shared Nothing architecture, shared disks.<\/p>\n<p><img decoding=\"async\" alt=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" src=\"\/wp-content\/uploads\/2019\/10\/ec8c74c80f295018271326d20d36b08e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHowever, all these methods preserve the same monolithic database structure. This significantly limits scaling. To solve this problem, we developed our own DB \u2014 <strong>Amazon Aurora<\/strong>. It is compatible with MySQL and PostgreSQL.<\/p>\n<h3>Amazon Aurora<\/h3>\n<p>\nThe main architectural idea is to separate the storage and logging layers from the main database.<\/p>\n<p>To be ahead of the game, I will say that we also made the caching layer independent. The architecture ceases to be monolithic, and we gain additional degrees of freedom in scaling individual blocks.<\/p>\n<p><img decoding=\"async\" alt=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" src=\"\/wp-content\/uploads\/2019\/10\/dfe3f039fbcf5140aa1541802b51c1ec.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>The logging and storage levels are separated from the database.<\/em><\/p>\n<p>A traditional DBMS writes data to the storage system in blocks. In Amazon Aurora, we created a 'smart' storage that can communicate in the language of <strong>redo logs<\/strong>. Within itself, the storage transforms logs into data blocks, monitors their integrity, and automatically backs them up.<\/p>\n<p>This approach allows for the implementation of interesting features like <strong>cloning<\/strong>. It works fundamentally faster and more economically since it does not require creating a full copy of all data.<\/p>\n<p>The storage level is implemented as a distributed system. It consists of a very large number of physical servers. Each redo log is processed and stored simultaneously <strong>by six nodes<\/strong>. This ensures data protection and load distribution.<\/p>\n<p><img decoding=\"async\" alt=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" src=\"\/wp-content\/uploads\/2019\/10\/9861d6e975b483cc5a20727af91b1a6b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nRead scalability can be achieved with appropriate replicas. A distributed storage system eliminates the need for synchronization between the main database instance, through which we write data, and the other replicas. Current data is guaranteed to be available to all replicas.<\/p>\n<p>The only problem is caching old data on read replicas. But this issue can be resolved <strong>by sending all redo logs<\/strong> to the replicas over an internal network. If the log is in the cache, it is marked as invalid and overwritten. If it's not in the cache, it is simply discarded.<\/p>\n<p><img decoding=\"async\" alt=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" src=\"\/wp-content\/uploads\/2019\/10\/f87a140e401c49282d58ef65df5a4da2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWe have sorted out the storage.<\/p>\n<h3>How to scale database levels<\/h3>\n<p>\nHere, horizontal scaling is much more challenging. Therefore, we will take the well-trodden path <strong>of classic vertical scaling.<\/strong>.<\/p>\n<p>Let's assume we have an application that interacts with the database through a master node. <\/p>\n<p>In vertical scaling, we allocate a new node with more processors and memory.<\/p>\n<p><img decoding=\"async\" alt=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" src=\"\/wp-content\/uploads\/2019\/10\/72f09bdc94584629fad0c40bf1a45bd9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNext, we switch the application from the old master node to the new one. Problems arise.<\/p>\n<ul>\n<li>This will require noticeable downtime for the application.<\/li>\n<li>The new master node will have a cold cache. Database performance will peak only after warming up the cache.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" src=\"\/wp-content\/uploads\/2019\/10\/9820acd5597cb80bd7c63060ed13a37f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHow can we improve the situation? By putting a proxy between the application and the master node.<\/p>\n<p><img decoding=\"async\" alt=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" src=\"\/wp-content\/uploads\/2019\/10\/ba8265da6ef9b1c1f9ac27bccab73f5d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWhat does this give us? Now, all applications do not need to be manually redirected to the new node. The switch can be made under the proxy and will be fundamentally faster.<\/p>\n<p>It seems that the problem is resolved. But no, we still suffer from the need to warm up the cache. Moreover, a new problem has arisen \u2014 now the proxy is a potential point of failure.<\/p>\n<h3>Final Solution with Amazon Aurora serverless<\/h3>\n<p>\nHow did we solve these problems?<\/p>\n<p><strong>We kept the proxy<\/strong>. This is not a separate instance, but a whole distributed fleet of proxies, through which applications connect to the database. Any node can be replaced almost instantly in case of failure.<\/p>\n<p><strong>We added a pool of warm nodes of various sizes<\/strong>. Therefore, if there is a need to allocate a new node of a larger or smaller size, it is immediately available. No need to wait for it to boot.<\/p>\n<p><strong>The whole scaling process is controlled by a special monitoring system. <\/strong>The monitoring system continuously checks the status of the current master node. If it detects, for example, that the CPU load has reached a critical level, it notifies the pool of warm instances of the need to allocate a new node.<\/p>\n<p><img decoding=\"async\" alt=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" src=\"\/wp-content\/uploads\/2019\/10\/b5693b64e3468a4b6bcafb4fd5732bd8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Distributed 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=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" src=\"\/wp-content\/uploads\/2019\/10\/fcbc5529352477b824cc969afd0a4fec.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTypically, the moment for switching occurs quite quickly. Communication between the proxy and the old master node is then paused, and all sessions are switched to the new node.<\/p>\n<p><img decoding=\"async\" alt=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" 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=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" 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 indicates the load, while the red steps mark the moments of scaling. The brief dips in the blue graph correspond to that short delay.<\/p>\n<p><img decoding=\"async\" alt=\"How AWS &#039;cooks&#039; its elastic services. Scaling servers and databases\" 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 significantly by turning off the database when it is not in use, for example, on weekends. After stopping, the database gradually reduces its capacity and turns off 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'll talk about network scaling. Subscribe <noindex><a rel=\"nofollow\" href=\"http:\/\/eepurl.com\/VYVaf\">to the newsletter<\/a><\/noindex> and stay updated so you don't miss the article.<\/p>\n<p>At <noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/moscow\/2019\">HighLoad++<\/a><\/noindex> Vasily Pantyukhin will present a report titled \"<noindex><a rel=\"nofollow\" href=\"https:\/\/www.highload.ru\/moscow\/2019\/abstracts\/5977\">Houston, We Have a Problem. Designing Fault-Tolerant Systems, Development Patterns for Amazon Cloud Internal Services<\/a><\/noindex>\" What design patterns for distributed systems do Amazon developers use, what are the reasons for service failures, what is Cell-based architecture, Constant Work, Shuffle Sharding \u2014 it will be interesting. Less than a month until the conference \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/conf.ontico.ru\/conference\/join\/hl2019.html\">book your tickets<\/a><\/noindex>. On October 24, prices will increase.<\/p><\/blockquote>\n<p>Source: <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.2 - 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\/en\/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.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\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\/en\/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, networks \u2014 all of this belongs only to you.","canonical_url":"https:\/\/prohoster.info\/en\/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":"en_US","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\/en\/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\/en\/wp-json\/wp\/v2\/posts\/39302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=39302"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/39302\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/39303"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=39302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=39302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=39302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}