Як збалансувати навантаження сайту між GCP і AWS за допомогою Cloudflare?

Дізнайтеся, як можна використовувати балансувальник навантаження Cloudflare (LB) для розподілу трафіку між AWS (веб-службами Amazon) і GCP (хмарною платформою Google).

Більшість веб-програм потребують або вимагають балансування навантаження між серверами/службами в одному центрі обробки даних.

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

Це не лише час безвідмовної роботи, але й багато інших факторів.

Наприклад:

  • Вимоги до активного-пасивного або активного-активного центру обробки даних
  • План аварійного відновлення
  • Використання переваг кількох центрів обробки даних для обслуговування запитів із найближчого місця
  • Відповідність

Cloudflare пропонує параметри локального та глобального балансування навантаження, які допомагають направляти трафік до кількох центрів обробки даних.

Деякі з функцій Cloudflare LB:

  • Перевірки працездатності вбудовані, тому ви можете швидко вимкнути несправний сервер.
  • Запустити відмову, коли перевірка працездатності не вдається
  • Зменште затримку, спрямувавши трафік на найближчий сервер
  • Рівень DNS і підтримка HTTP(S), TCP і UDP
  • Закріпленість сеансу, щоб гарантувати, що запит надходить на той самий сервер

Ви можете налаштувати всі речі через інформаційну панель Cloudflare або API.

Технічно наведені нижче інструкції стосуються балансування навантаження на будь-якій хмарній платформі, як-от Azure, DigitalOceanAlibaba тощо. Але для демонстрації я вибрав GCP та AWS.

Деталі налаштування AWS і GCP

Я підготував один сервер на платформі GCP і AWS з наступним.

  • Встановив Nginx
  • Додано index.html із спеціальним текстом, щоб показати, що сторінка обслуговується з відповідного сервера
  • Запустив Nginx, і сторінка доступна з обох серверів
  Як скинути пароль для iPhone

Давайте перейдемо до Cloudflare, щоб реалізувати LB.

Активація Cloudflare Load Balancer

У мене є один доступний домен (bloggerflare.com), який я використовуватиму для цієї лабораторії.

Примітка. Балансувальник навантаження від Cloudflare не є БЕЗКОШТОВНИМ ціноутворення починається від 5 доларів на місяць.

Я припускаю, що у вас уже є обліковий запис у Cloudflare; якщо ні, ви можете створити та додати домен, як я пояснював у своїй попередній публікації.

  • Увійдіть у Cloudflare та виберіть домен, у якому потрібно ввімкнути балансування
  • Перейдіть на вкладку трафік і ввімкніть балансування навантаження.

  • Налаштуйте функції відповідно до вимог. Я продовжую роботу з мінімальною конфігурацією.

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

  • Підтвердьте підписку та ввімкніть її.
  Як змінити свій профіль Netflix, субтитри та мову аудіо

Як бачите, ви можете почати з 5 доларів США на місяць із двома вихідними серверами та однохвилинним інтервалом перевірки справності.

Інфраструктура зараз така доступна. 5 років тому, чи можете ви уявити хмарний балансувальник навантаження за 5 доларів?

Це означає, що Cloudflare LB активований і готовий до налаштування.

Створення Cloudflare LB

Підтвердження підписки займе кілька секунд і ви повернетеся на сторінку трафіку.

  • Натисніть Створити балансувальник навантаження

  • Введіть домен, де ви хочете налаштувати балансування.
  • Розгорніть Session Affinity та виберіть By Cloudflare Cookie, якщо вам потрібно ввімкнути постійність сеансу

  • Введіть назву пулу та джерело (сервер, на який слід перенаправляти трафік)

  • Далі ви можете налаштувати перевірку працездатності.

Обстеження стану здоров’я є обов’язковим. Cloudflare припинить надсилати трафік до несправного джерела, якщо перевірка працездатності не вдасться.

  • Якщо ваш джерело прослуховує порт 80, ви можете вибрати HTTP або https для порту 443.

Cloudflare також дозволяє налаштувати розширені параметри перевірки працездатності, такі як:

  • Метод GET або HEAD
  • Очікуваний код статусу HTTP
  • Перевірка вмісту в тілі відповіді
  • Кількість спроб, перш ніж вони вважають здоровими чи нездоровими
  • Перевірка імені заголовка
  Як показати панель інструментів у Chrome

І, нарешті, збережіть конфігурацію та розгорніть

  • LB виконає перевірку працездатності, і через кілька секунд ви побачите, що стан здоровий.

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

Тестування Load Balancer

Давайте виконаємо базовий тест, щоб перевірити, чи він працює.

  • Спочатку спробуйте отримати доступ до домену.

Чудово!

LB переслав запит до Google Cloud VM і отримав відповідь. Я бачу запит у Nginx.

162.158.167.174 - - [19/Dec/2017:10:25:41 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  • Дозвольте мені вимкнути Nginx на GCP і знову отримати доступ до сторінки.

  • І ось ви. Запитана сторінка обслуговується з AWS.

Я бачу, що LB видалив члена пулу GCP.

За замовчуванням IP-адреса Cloudflare відображатиметься в журналах доступу Nginx, і якщо вам потрібно відновити IP-адресу клієнта, ви можете переглянути цей посібник.

Висновок

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

Вам сподобалося читати статтю? Як щодо того, щоб поділитися зі світом?