У серпні ми вже обговорювали public preview нового функціоналу Microsoft Azure - VNET Peering. Відтоді VNET Peering вийшов у GA і настав час подивитися на нього пильніше. Дійсно, цікаво було б дізнатися наскільки відрізняється швидкість передачі даних у віртуальних мережах Azure, при різних способах їх організації.
Наприклад, чи відрізняється швидкість всередині однієї підмережі і між різними підмережами в одному VNET? Чи знижує швидкість перехід в інший VNET через Peer? А через VNET-to-VNET VPN?
Я провів невеликий експеримент на цю тему, щоб перевірити корисність і ефективність VNET Peering і запрошую під кат ознайомитися з його результатами.
Для початку, визначимося, що саме ми будемо порівнювати. Я зібрав наступне тестове середовище:
Це дозволило мені порівняти декілька типів зв'язку, які можуть існувати між серверами в Azure:
- Сервери в одній підмережі
- Сервери у різних підмережах одного VNET
- Сервери в різних Peered VNET
- Сервери у різних VNET з "єднаних VPN через Virtual network Gateway
Для останнього сценарію мені також було цікаво подивитися на різницю між різними SKU доступними для Virtual Network Gateway, тому я послідовно пересвідомлював це з'єднання з Basic SKU, Standard SKU і High-Performance SKU. Microsoft заявляє пропускну здатність 100 Mbps для двох перших і 200 Mbps для High-Performance SKU.
Я вибрав досить тривіальний і простий тест, а точніше два тести (жодним чином не претендую на їх 100% -у об'єктивність) - копіювання файлів загальним обсягом 5GB. У першому тесті це 5 файлів по 1GB, у другому - 500 файлів по 10 MB. Вміст файлів - ZIP архів зі стандартною компресією випадкових даних. Кожна операція здійснювалася 10 разів із заміром часу і очищенням оперативної пам'яті сервера між спробами.
Як тестові сервери були обрані DS2_V2 з 2 CPU, 7GB RAM і дисками на Premium Storage, щоб швидкість читання/запису на диск мала мінімальний вплив на швидкість копіювання файлів.
Нижче наведено результат замірів швидкості копіювання в Mbps. Для кожного з 6 варіантів організації мережі наведено найкращий, середній і найгірший результат для декількох великих і безлічі маленьких файлів.
Я наведу свої думки, але ви можете зробити власні висновки на основі цих даних.
Зрозуміло, що тест, жодним чином, не претендує на повноцінне дослідження. Про це говорить хоча б різниця між кращим і гіршим результатом замірів досягає 25%, що означає, що тест з 10 повторень не дасть хорошого наближення для середнього значення. З іншого боку, ці результати все ж дозволяють оцінити загальну картину:
- VNET Peering - відмінний функціонал, який дозволяє створити надійний високошвидкісний зв'язок між віртуальними мережами в Azure.
- Різниця між Basic/Standard і High Performance SKU для Virtual Gateway виявилася істотно меншою ніж я очікував. Особливо приємно те, що це досягається за рахунок того, що Basic/Standard варіанти показують пропускну здатність, яка вище заявленої, а не навпаки.
Скільки коштують ці варіанти? Зрозуміло, що для серверів в одній підмережі і в різних підмережах одного VNET ви не платите нічого. А ось для решти варіантів, вам доведеться заплатити.
Вартість VNET Peering після виходу його в GA становить 0.0084 за GB вхідного і вихідного трафіку. Наскільки я розумію, за кожен GB ви заплатите двічі (один раз, якщо приймаюча або вихідна сторона знаходяться не у вашій підписці, тут половину заплатить її власник).
Вартість Virtual Gateway залежить від регіону. Я наведу тут вартість для Північної Європи, оскільки саме там розгортав свою лабораторію.
- Basic SKU - 0.0304 за годину
- Standard SKU - 0.1602 за годину
- High Performance SKU - 0.4132 за годину
Додатково ви заплатите від €0.0295 до €0.1349 за кожен GB вхідного трафіку залежно від регіону, з якого виходить трафік (вважається тільки трафік між двома VNET в різних регіонах Azure).
В цілому, вибір оптимального варіанту залежить від ваших вимог і цілей. Особисто я віддам перевагу VNET Peering для зв'язку двох VNET, якщо:
- я планую щомісячні обсяги трафіку нижче 2TB за місяць (тут вибір очевидний, тому що VNET Peering буде і швидше і дешевше)
- мені важлива максимальна пропускна здатність каналу
VNET-to-VNET VPN буде краще якщо:
- я планую зв'язати VNET в різних Azure регіонах (тут у мене взагалі немає вибору, так як VNET Peering працює тільки в рамках одного регіону)
- я планую щомісячні обсяги трафіку вище 30TB за місяць
Для щомісячних обсяг обсягів трафіку між 2 і 30 TB будуть важливі вимоги щодо ціни та пропускної спроможності. Дуже важливо буде порахувати, який мінімально допустимий SKU Vitrual Gateway, щоб зрозуміти яке рішення буде оптимальне за ціною.
Мені дуже сподобався функціонал VNET Peering і додаткові можливості, які він дає при проектуванні рішень на базі Microsoft Azure. Для тестових лабораторій з невеликим трафіком, це взагалі ідеальне рішення. Для основного робочого середовища, VNET Peering з його швидкістю і можливістю зручно і прозоро налаштувати правила транзиту трафіку і взаємного використання Gateway в Peered мережах також є дуже і дуже цікавим варіантом.