Перейти до вмісту

Що таке хмара і де вона фізично

У лютому 2022 року державні реєстри України лежали в дата-центрах країни, яку обстрілювали ракетами. У перші тижні війни їхні копії почали переїжджати в дата-центри Amazon за кордоном. У жовтні 2022 року компанія 37signals, що робить Basecamp і HEY, оголосила про вихід з AWS: власне залізо виходило дешевше за оренду. Обидва рішення виявилися правильними, хоч і йдуть у різні боки.

Щоб зрозуміти чому, треба знати, що саме ви купуєте, коли берете хмару, де вона стоїть, хто відповідає за безпеку і коли оренда дорожча за покупку. Усі наступні модулі спираються на ці відповіді.

Передумови. Що таке гіпервізор і чим віртуальна машина відрізняється від контейнера, розібрано в модулі ОС «Віртуалізація і контейнери».

Стандартне визначення дає документ NIST SP 800-145 (2011). Хмарні обчислення (cloud computing) описано там як модель доступу через мережу до спільного пулу конфігурованих ресурсів, які швидко виділяються й повертаються майже без участі постачальника. Визначення тримається на п’яти характеристиках, і ними зручно перевіряти будь-яку пропозицію: якщо однієї немає, перед вами хостинг із гучною назвою.

Характеристика Що це означає на практиці
Самообслуговування на вимогу (on-demand self-service) Ресурс створюється викликом API або кліком у консолі, без заявки й листування з людиною
Широкий мережевий доступ (broad network access) Усе доступне через мережу стандартними протоколами
Об’єднання ресурсів (resource pooling) Те саме залізо обслуговує багатьох клієнтів, і на якому сервері ви працюєте, ви не обираєте
Швидка еластичність (rapid elasticity) Потужність можна збільшити за хвилини й так само повернути
Вимірюваний сервіс (measured service) Використання рахується й оплачується; тому в курсі є окремий модуль про рахунок

NIST виділяє чотири моделі розгортання: приватну хмару, хмару спільноти, публічну і гібридну. Цей курс про публічні хмари AWS, Azure і Google Cloud. З першої характеристики випливає, що будь-яку дію з консолі можна записати кодом, тому хмарою керують через Terraform і CLI. З третьої випливає, що ваша машина стоїть на одному сервері з машинами інших клієнтів, а ізоляцію забезпечує гіпервізор.

NIST описує три моделі обслуговування, і їх легше уявляти як шкалу. На одному краї ви орендуєте віртуальне залізо й ставите на нього все самі. На іншому користуєтеся готовим застосунком і не знаєте, на чому він працює.

Модель Що ви отримуєте Що лишається вам AWS / Azure / GCP
IaaS (infrastructure as a service) Віртуальну машину, диск, мережу ОС, оновлення, середовище виконання, застосунок, дані EC2 / Azure Virtual Machines / Compute Engine
PaaS (platform as a service) Середовище, у яке завантажується код Код, конфігурація, дані Elastic Beanstalk / Azure App Service / App Engine
FaaS (function as a service) Функцію, яку платформа запускає за подією Код функції, дозволи, дані Lambda / Azure Functions / Cloud Run functions
SaaS (software as a service) Готовий застосунок Користувачі, налаштування, вміст Microsoft 365, Google Workspace

FaaS у визначенні NIST немає: галузь додала цю модель пізніше. Платформа запускає ваш код лише на час події й не тримає його між запитами; наслідки розібрано в модулі 9.

Межі розмиті. Контейнерні платформи (Cloud Run, Azure Container Apps, AWS Fargate) лежать між IaaS і PaaS. Керована база даних (Amazon RDS, Azure SQL, Cloud SQL) є PaaS для одного сервісу: ОС і оновлення движка беруть на себе провайдери, а схема, запити й доступ лишаються вашими. Такі сервіси називають керованими (managed service). Вибір моделі є обміном контролю на працю.

Модель спільної відповідальності

Section titled “Модель спільної відповідальності”

Провайдер відповідає за безпеку самої хмари: будівлі, живлення, сервери, мережу, гіпервізор. Клієнт відповідає за те, що він у хмарі робить: конфігурацію, доступи, дані. Це називають моделлю спільної відповідальності (shared responsibility model); AWS формулює її як security of the cloud і security in the cloud, за змістом так само вона працює в Azure і GCP.

Сітка відповідальності: у кожній моделі обслуговування — власне залізо, IaaS, PaaS чи SaaS — видно, які шари обслуговує клієнт, а які провайдер. Дані й керування доступом лишаються клієнтові в усіх моделяхвласне залізоIaaSPaaS / FaaSSaaSдані й керування доступомвивививизастосуноквививипровайдерсередовище виконаннявивипровайдерпровайдеропераційна системавивипровайдерпровайдервіртуалізація і серверивипровайдерпровайдерпровайдерсховище й мережавипровайдерпровайдерпровайдерЦОД: будівля, живленнявипровайдерпровайдерпровайдервідповідальність клієнтавідповідальність провайдера
Межа між «ви» і «провайдер» опускається зверху вниз: чим вищий рівень сервісу, тим менше шарів лишається клієнтові. Верхній рядок, дані й керування доступом, не належить провайдерові в жодній моделі.

Практично це означає таке. На EC2 оновлення ОС ваша задача, на Lambda такої задачі немає. А дані й доступи ваші завжди: публічний бакет із клієнтськими файлами чи ключ у публічному репозиторії є помилкою клієнта, бо провайдер виконав саме те, що йому налаштували.

Провайдери тримаються цієї позиції, навіть коли ціна помилки величезна. У лютому 2026 року вкрадений API-ключ Gemini за 48 годин нарахував $82 314 замість звичайних $180 на місяць, і представник Google послався на модель спільної відповідальності (The Register). Цей випадок розібрано в модулі 2, а безпекову частину моделі в модулі 12.

Регіоном (region) називають географічну область, де провайдер тримає кілька дата-центрів. Регіон є основною одиницею вибору: створюючи ресурс, ви обираєте регіон, і провайдери декларують, що дані лишаються в ньому, доки ви самі не налаштуєте копіювання деінде.

Зона доступності (availability zone, AZ) складається з одного чи кількох окремих дата-центрів усередині регіону з власним живленням, охолодженням і мережею. За описом AWS зони віддалені одна від одної до 100 км: достатньо, щоб пожежа чи відключення підстанції не зачепили обидві, і достатньо близько для синхронної реплікації з затримкою в одиниці мілісекунд. Azure описує зони так само, з цільовою затримкою між ними менше приблизно 2 мс.

Edge-локація (edge location) є точкою присутності провайдера ближче до користувачів, ніж регіон. Там працюють CDN, DNS і термінація TLS. Ваших віртуальних машин і баз даних там немає.

Схема: регіон складається з трьох зон доступності, у кожній свої дата-центри; між регіонами лежить магістраль провайдера; edge-локації розташовані ближче до користувачів, ніж регіонирегіон Aзона 1ЦОДЦОДвласне живленнявласна мережазона 2ЦОДЦОДвласне живленнявласна мережазона 3ЦОДЦОДвласне живленнявласна мережашвидкі канали між зонамирегіон B123магістраль провайдера між регіонамиedge-локаціїкеш і точка входу в мережу провайдера; ваших ВМ і баз даних там немаєкористувачдомен відмови: спершу зона, потім регіон
Регіон складається із зон, кожна зона з одного чи кількох дата-центрів. Між регіонами лежить магістраль провайдера. Edge-локацій багато, вони ближче до користувача, але обчислень там немає.

Масштаб станом на вересень 2026 року:

AWS Azure GCP
Регіони 39 понад 70 43
Зони доступності 124 єдиної цифри немає 130
Edge-локації 750+ точок CloudFront понад 190 точок присутності понад 200

Цифри не можна порівнювати напряму: провайдери по-різному рахують регіони і точки присутності. Для архітектури важливіше, чи є регіон поблизу користувачів і чи є в ньому потрібні сервіси, бо нові сервіси з’являються не в усіх регіонах одночасно.

Затримка визначає фізика

Section titled “Затримка визначає фізика”

Світло у волокні йде зі швидкістю приблизно 200 000 км/с. Кілометр волокна коштує 5 мкс в один бік, тож кожні 100 км маршруту додають близько 1 мс до часу кругового обходу (round-trip time, RTT). Нижню межу RTT для відстаней по прямій показує таблиця; реальний маршрут довший, а на шляху є обладнання.

Маршрут Відстань по прямій, приблизно Нижня межа RTT
Львів — Франкфурт 1 100 км 11 мс
Київ — Франкфурт 1 550 км 16 мс
Київ — Північна Вірджинія (us-east-1) 7 850 км 79 мс

Розрахунок наш: відстань за формулою великого кола, RTT = 2 × відстань / 200 000 км/с. Реальні значення виміряйте на своїй мережі.

Затримка стає проблемою, коли застосунок робить багато послідовних викликів: 30 запитів до бази у Вірджинії забирають з Києва понад 2,3 с лише на мережу. Тому сервер і база мають стояти в одному регіоні, а часто й в одній зоні. Між зонами регіону затримка вимірюється одиницями мілісекунд, тож синхронна реплікація там прийнятна; між регіонами зазвичай ні.

Доменом відмови (failure domain) називають усе, що виходить з ладу разом: сервер, стійку, зону, регіон, акаунт. Кожен наступний рівень охоплює більше й відмовляє рідше. Якщо відмова домену для вас неприйнятна, ресурси мають лежати щонайменше у двох доменах цього рівня. Дві машини в одній зоні переживають відмову сервера, але не зони; дві зони переживають зону, але не збій регіону. Кожен рівень коштує грошей і ускладнює систему, тому вибір рівня є ціновим рішенням. Докладно це в модулі 13, реальні збої регіонів у модулі 11.

Регіон не завжди є межею: деякі сервіси глобальні або залежать від однієї площини керування (control plane), і її збій зачіпає інші регіони. Це перевіряють для кожного сервісу.

Суверенітет і резидентність даних

Section titled “Суверенітет і резидентність даних”

Резидентність даних (data residency) означає, де фізично лежать байти. Суверенітет даних (data sovereignty) стосується того, чиє право діє над ними і хто може змусити їх видати. Дані в німецькому регіоні американської компанії фізично в Німеччині, але юридично провайдер може підпадати під право іншої країни. Це питання до юриста.

Провайдери відповідають по-різному. Azure оформлює географії як межі резидентності: кожен регіон належить одній географії, яка є фіксованою межею для даних. У січні 2026 року AWS запустила AWS European Sovereign Cloud: регіон у Бранденбурзі є фізично й логічно відокремленою від решти AWS партицією, яку обслуговує окрема німецька компанія з персоналом із резидентів ЄС (прес-реліз). До суверенних хмар ми повернемося в модулі 14.

Українське законодавство теж розрізняє категорії. Закон «Про хмарні послуги» у чинній редакції забороняє обробку службової інформації й державної таємниці у хмарних ресурсах за кордоном, а виняток для Міноборони та ЗСУ на час воєнного стану ввели змінами 2024 року (закони 3549-IX і 3783-IX).

Економіка: від капітальних витрат до операційних

Section titled “Економіка: від капітальних витрат до операційних”

Власне залізо купують одноразово (capex, capital expenditure) і амортизують роками. Хмару орендують і платять за використання (opex, operational expenditure). Звідси кілька наслідків.

Потужність не треба прогнозувати на роки: сервер, куплений під пік, більшу частину часу простоює, а в хмарі різницю між піком і середнім ви не купуєте. Натомість одиниця потужності дорожча, бо в ціні є еластичність, обслуговування й маржа провайдера, а стелі витрат немає, поки ви її не поставите (модуль 2).

Просту модель дає співвідношення піку й середнього. Власне залізо купується під пік P, і платите ви за нього завжди. У хмарі ви платите за середнє навантаження A, але одиниця потужності коштує в k разів дорожче. Хмара виграє, коли k × A менше за P, тобто коли A / P менше за 1 / k. Якщо k = 3, хмара вигідна, доки середнє навантаження не перевищує третини піку. Числа умовні: справжнє k треба виміряти на своїх цінах із урахуванням знижок за зобов’язання (модуль 13), а до власного заліза додати колокацію, електрику, людей і запас.

Окрема стаття, яку легко забути, це вихід. Вихідний трафік (egress) зазвичай платний, і великий обсяг даних важко дешево витягти. AWS дає 100 ГБ вихідного трафіку на місяць безкоштовно, а для тих, хто повністю виходить з AWS, діє безкоштовне 60-денне вікно передавання (про нього пише DHH у розборі нижче). Ціну трафіку як архітектурне обмеження розібрано в модулі 5.

Поняття AWS Azure GCP
Регіон Region (eu-central-1) region (germanywestcentral) region (europe-west3)
Зона доступності Availability Zone (eu-central-1a, ID euc1-az1) availability zone (1, 2, 3) zone (europe-west3-a)
Edge-локації CloudFront мережа Microsoft, Azure Front Door, CDN edge-мережа Google, Cloud CDN
Пара регіонів немає region pairs у частини регіонів немає (для окремих сервісів є multi-region)

Чим відрізняється і що з цього випливає. У AWS назви зон приписуються кожному акаунту випадково: us-east-1a у вашому акаунті може бути іншою будівлею, ніж у колеги, а стабільним лишається лише AZ ID (use1-az1). В Azure логічні зони 1, 2, 3 так само відображаються на фізичні окремо для кожної підписки. У GCP назви зон однакові для всіх проєктів. Тому коли ви спільно використовуєте підмережу чи розраховуєте, що два сервіси стоять в одній зоні, звіряйте AZ ID або відображення зон, а не літеру чи цифру. Крім того, не в кожному регіоні Azure є зони.

Terminal window
# регіони, доступні акаунту
aws ec2 describe-regions --query 'Regions[].RegionName' --output text
# зони Франкфурта: назва для вашого акаунта і стабільний AZ ID
aws ec2 describe-availability-zones --region eu-central-1 \
--query 'AvailabilityZones[].[ZoneName,ZoneId]' --output text

Усі команди лише читають дані й нічого не створюють. Як безпечно отримати акаунт з бюджетом, розказано в модулі 2.

Це добре задокументований приклад того, як хмара змінила зберігання державних даних під час війни. Розберемо, що відомо з першоджерел.

Дата Подія Джерело
17 лютого 2022 Закон «Про хмарні послуги» № 2075-IX, за тиждень до вторгнення текст закону
24 лютого (четвер) Вторгнення; AWS зустрічається з урядовцями, замовляє Snowball The Register, AWS
26–27 лютого (субота, неділя) Snowball у Кракові, потім в Україні AWS
12 березня Постанова Кабміну № 263 текст
16 березня Закон опубліковано; чинності набирає через шість місяців текст закону
30 листопада Федоров розповідає про міграцію на AWS re:Invent The Register
14 квітня 2023 AWS: понад 10 ПБ, 42 державні органи, 24 університети блог AWS

Дні тижня AWS називає словами, а дати виведено з календаря: 24 лютого 2022 року був четвер.

Що дав закон. Закон 2075-IX створив правову основу для комерційних хмар у державі: каталоги послуг, вимоги до провайдерів, закупівлі. Але чинності він набув лише у вересні 2022 року, тож на момент виведення даних не діяв. Практичну можливість дала постанова Кабміну № 263 від 12 березня 2022 року: на період воєнного стану органи виконавчої влади можуть розміщувати державні інформаційні ресурси й публічні електронні реєстри на хмарних ресурсах за межами України та створювати додаткові резервні копії. Пункт 4 вимагає припинити такі заходи протягом шести місяців після завершення воєнного стану. У лютому 2025 року уряд підтримав постанову, що дозволяє лишати дані за кордоном і після війни (за повідомленням Мінцифри).

Отже, закон, ухвалений за тиждень до вторгнення, дав державі юридичну мову й процедури, а вивезення даних у перші тижні спиралося на рішення Кабміну воєнного стану.

Скільки саме вивезли. Публічних цифр кілька, і їх легко сплутати.

  • Snowball: три пристрої, доставлені з Дубліна через Польщу (Nextgov). Nextgov називає місткість до 80 ТБ на пристрій, тобто до 240 ТБ разом. The Register у звіті з re:Invent пише про «terabytes».
  • Понад 10 ПБ: накопичена цифра з блога AWS (оновлено 14 квітня 2023 року), а не вміст трьох коробок. Nextgov пише, що дані вивезено комбінацією трьох Snowball і дротових з’єднань.
  • «Близько 100 реєстрів»: такої цифри в перевірених джерелах немає. Блог AWS каже, що триває «100 government data migrations». Це міграції, а не реєстри.

Арифметика показує, чому потрібні були і пристрої, і канали. Через мережу 1 Гбіт/с 80 ТБ передаються приблизно 7,4 доби, а 10 ПБ приблизно 2,5 роки; навіть на 100 Гбіт/с 10 ПБ займають близько 9 діб суцільного передавання.

Що з цього випливає. По-перше, дані, що лежать лише в дата-центрах країни, яка воює, мають спільний домен відмови з нею; копія в іншому регіоні, а краще в іншій юрисдикції, цю залежність прибирає. По-друге, підготовка вирішує швидкість: технічно перші пристрої доставили за три дні, бо існував партнер із готовим процесом, а правова база запізнювалася й довелося ухвалювати постанову під час війни. По-третє, є компроміс: дані за кордоном захищені від фізичного знищення, але залежать від іноземного провайдера та його юрисдикції, і закон саме тому розрізняє категорії даних.

Розбір: репатріація 37signals

Section titled “Розбір: репатріація 37signals”

37signals публікує свої цифри в часі, тож видно, як оцінки перевірялися реальністю. Репатріацією (repatriation) називають повернення навантаження з хмари на власне залізо.

Дата Що сказано Джерело
19.10.2022 Рішення виходити: оренда обчислень здебільшого невигідна для компаній зі стабільним зростанням. Лише RDS і пошук для HEY коштують понад $500 000 на рік DHH
21.02.2023 У 2022 році на хмару пішло $3,2 млн, з них майже $1 млн на 8 ПБ у S3. План: обладнання Dell приблизно за $600 000 (4 000 vCPU у двох дата-центрах) і стійки через Deft, $720 000 на рік. Разом $840 000 на рік замість $2,3 млн; економія $7 млн за п’ять років без збільшення команди ops DHH
17.10.2024 Сім застосунків, зокрема HEY, перенесено влітку 2023 року. Рахунок за хмару у 2024 році впав із $3,2 млн до $1,3 млн. Обладнання коштувало близько $700 000 і окупилося в другій половині 2023 року. Прогноз економії за п’ять років понад $10 млн DHH
26.03.2025 Лишився S3: майже $1,5 млн на рік за контрактом до 30.06.2025. Замість нього 18 ПБ від Pure Storage у двох дата-центрах. Передати треба майже 6 ПБ; вихід безкоштовний завдяки 60-денному вікну, кожен день запізнення коштує близько $5 000 DHH
09.05.2025 AWS списала близько $250 000 за вихідний трафік; компанія збирається закрити акаунт AWS The Register

Цифри в публікаціях трохи розходяться (план $600 000 на обладнання, фактично близько $700 000), як буває в записах, зроблених у різний час. Порядок величин і напрямок збереглися.

Чому це спрацювало саме для них. У жовтні 2022 року DHH пояснив, що хмара сильна на двох краях. Один край: простий застосунок із малим трафіком, де керовані сервіси економлять працю. Другий: нерівне навантаження. Коли запускався HEY, за три тижні зареєструвалося 300 000 користувачів замість прогнозованих 30 000 за півроку, і хмара такий стрибок витримала. Для 37signals жодна з цих умов уже не діє, і, за його словами, вони платили премію за можливість, якою не користувалися. Це та сама модель співвідношення середнього до піку з розділу про економіку.

Чого ця історія не доводить.

  • Це компанія зі стабільним навантаженням, командою, що вміє експлуатувати залізо, і наявною колокацією в двох дата-центрах. Це публічні цифри однієї компанії, яка обстоює власну позицію, тож їх варто брати як приклад методу.
  • Економія залежить від того, що вважати вартістю. У розрахунку є обладнання, стійки, електрика й канали, а команду ops, за словами DHH, збільшувати не довелося. У вашій компанії це припущення треба перевіряти.
  • Економія прийшла не одразу: контракти на обчислення закінчувалися впродовж 2023 року, тому перший «чистий» рік економії 2024.

Типові помилки розуміння

Section titled “Типові помилки розуміння”

«Хмара — це чужий сервер». Сервер справді чужий, але хмара додає до нього API, еластичність і облік за використання. Без цих ознак це звичайна оренда заліза.

«Дані в хмарі захищені провайдером». Провайдер захищає інфраструктуру, а конфігурація, доступи й дані лишаються вашими.

«Зона доступності й регіон однакові». Зона захищає від відмови будівлі чи підстанції, регіон від відмови групи зон. Це різні домени відмови з різною ціною.

«Затримку можна виправити кодом». Можна зменшити кількість послідовних викликів чи винести кеш ближче до користувача, але нижню межу задає відстань.

«Резидентність даних означає суверенітет». Місце серверів не визначає, чиє право діє над даними.

«Хмара завжди дорожча» або «завжди дешевша». Результат залежить від співвідношення піку й середнього, обсягів трафіку, наявної команди й контрактів.

Перевір себе

1. Ви запускаєте код на Lambda. Хто відповідає за оновлення операційної системи, на якій він виконується?
2. Ключ доступу до акаунта потрапив у публічний репозиторій, і за добу нараховано тисячі доларів. Провайдер відмовляється списувати рахунок. Яку логіку він застосовує?
3. Застосунок у Києві робить 40 послідовних запитів до бази в us-east-1, RTT не менший за 79 мс. Яка нижня межа часу лише на мережу?
4. Команда має пережити відмову цілого дата-центру, бюджет обмежений. Яке розміщення дає таку стійкість найдешевше?
5. Що було безпосередньою правовою підставою розміщувати держреєстри в хмарах за кордоном у березні 2022 року?
6. Стартап із рівним навантаженням хоче повторити вихід 37signals з хмари. Що найточніше описує обмеження такого рішення?