Як налаштувати сайт WordPress із швидким завантаженням у Google Cloud?

Детальна інструкція зі створення високоефективного веб-сайту WordPress на Google Cloud Platform (GCP) за допомогою WordOps.

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

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

Існують преміум-провайдери хостингу для сайтів з інтенсивним трафіком, але їхні послуги можуть коштувати понад 100 доларів щомісяця.

Примітка: Kinsta нещодавно представила стартовий тарифний план від 30 доларів на місяць, який використовує інфраструктуру GCP.

Тим не менш, якщо ви готові приділити час навчанню та самостійно налаштувати інфраструктуру, варто розглянути варіант VPS/хмарних серверів. У цій статті ми покажемо, як розгорнути сайт WordPress на Google Cloud Platform менш ніж за 15 хвилин.

Вартість такого рішення складе близько 25 доларів на місяць і дозволить обробляти до 500 000 переглядів сторінок щомісяця. Після завершення налаштування, ми проведемо тест навантаження, щоб оцінити продуктивність.

Необхідні умови

  • Припускається, що у вас вже є доменне ім’я. Якщо ні, ви можете придбати його у Namecheap або Google.
  • Активний обліковий запис Google Cloud з налаштованим білінгом.
  • Будь-яка тема WordPress, але для прикладу ми будемо використовувати Newspaper від TagDiv.

Розгортання нового хмарного сервера Google

  • Увійдіть до Google Cloud Console і перейдіть до розділу Compute Engine >> VM Instances (пряме посилання).
  • Натисніть “Створити екземпляр” і введіть необхідні дані.
  • Оберіть зону (виберіть найближче розташування до вашої цільової аудиторії).
  • Виберіть тип машини.
  • Змініть завантажувальний диск на Ubuntu 18.04 LTS та тип завантажувального диска на постійний SSD розміром 10 ГБ.
  • Активуйте брандмауер HTTP та HTTPS і натисніть “Створити”.

Через кілька секунд ваш новий екземпляр буде готовий до використання.

Встановлення WordPress за допомогою WordOps

Існує кілька способів встановити WordPress, але одним з найпростіших є використання WordOps.

WordOps – це набір скриптів, що автоматизують встановлення необхідних компонентів, таких як база даних, PHP-FPM, Nginx, WordPress, Redis, phpMyAdmin та інше. Ручне встановлення може зайняти значно більше часу і підвищує ризик помилок.

  • Увійдіть до новоствореної Google Cloud VM і перейдіть до режиму root-користувача.

Примітка: Рекомендується налаштувати sudo-доступ до root звичайного користувача в виробничому середовищі, але для даного прикладу ми будемо використовувати root.

  • Встановіть WordOps, виконавши наступну команду:
wget -qO wo wops.cc && sudo bash wo
  • Процес займе одну-дві хвилини, після чого ви повернетеся до командного рядка.
Synchronizing wo database, please wait...
WordOps (wo) installed successfully

To enable bash-completion, just use the command:
bash -l

To install WordOps recommended stacks, you can use the command:
wo stack install

To create a first WordPress site, you can use the command:
wo site create site.tld --wp

WordOps Documentation : https://docs.wordops.net
WordOps Community Forum : https://community.wordops.net
WordOps Community Chat : https://chat.wordops.net

Give WordOps a GitHub star : https://github.com/WordOps/WordOps/

[email protected]:~#

Тепер час створити сайт WordPress. WordOps дає можливість встановити WordPress з плагінами кешування.

Наразі він підтримує WP Super, W3 Total, Nginx та Redis. Після тестування Redis показав найкращі результати.

  • Створимо сайт з кешуванням Redis.
wo site create geekflarelab.com --wpredis

Вищезазначена команда вказує WordOps створити сайт для geekflarelab.com (це тестовий домен) з кешуванням Redis. Процес займе близько хвилини або двох, після чого ви отримаєте підтвердження про успішне створення сайту.

[email protected]:~# wo site create geekflarelab.com --wpredis
Start : wo-kernel [OK]
Adding repository for MySQL, please wait...
Adding repository for NGINX, please wait...
Adding repository for PHP, please wait...
Adding repository for Redis, please wait...
Updating apt-cache              [OK]
Installing APT packages         [OK]
Applying Nginx configuration templates
Testing Nginx configuration     [OK]
Restarting Nginx                [OK]
Testing Nginx configuration     [OK]
Restarting Nginx                [OK]
Configuring php7.2-fpm
Restarting php7.2-fpm           [OK]
Tuning MariaDB configuration
Stop  : mysql     [OK]
Start : mysql     [OK]
Tuning Redis configuration      [OK]
Restarting redis-server         [OK]
Running pre-update checks       [OK]
Setting up NGINX configuration 	[Done]
Setting up webroot 		[Done]
Downloading WordPress 		[Done]
Setting up database		[Done]
Configuring WordPress           [OK]
Installing WordPress            [OK]
Installing plugin nginx-helper  [OK]
Setting plugin nginx-helper     [OK]
Installing plugin redis-cache   [OK]
Testing Nginx configuration     [OK]
Reloading Nginx                 [OK]
HTTP Auth User Name: WordOps
HTTP Auth Password : XXXXXX
WordOps backend is available on https://XX.XX.XX.XX:22222 or https://ubuntu-s-1vcpu-2gb-lon1-01:22222
WordPress admin user : Chandan Kumar
WordPress admin password : lyWwnfOhD8XXXXXXNTS3vXri
Configure redis-cache:	http://geekflarelab.com/wp-admin/options-general.php?page=redis-cache
Object Cache:		Enable
Successfully created site http://geekflarelab.com
[email protected]:~#
  • Обов’язково збережіть пароль у безпечному місці.

WordPress успішно встановлено, тепер необхідно прив’язати доменне ім’я до IP-адреси сервера. Все досить просто, чи не так?

Отримання статичної IP-адреси

За замовчуванням Google Cloud присвоює екземпляру тимчасову IP-адресу, яку не варто використовувати для прив’язки до домену, оскільки вона може змінитися після перезавантаження інсталяції.

Щоб уникнути цих незручностей, необхідно зарезервувати статичну IP-адресу.

  • Перейдіть до розділу VPC Network >> External IP addresses у меню зліва.
  • У випадаючому меню “Тип” (Type) виберіть “Статичний” (Static).

  • Введіть назву і натисніть “Зарезервувати” (RESERVE).
  • Тепер тип IP-адреси буде вказано як статичний.

GCP VM готова з виділеною статичною IP-адресою та встановленим WordPress. Залишилось зіставити доменне ім’я зі статичною IP-адресою.

Оновлення A-запису домену

  • Перейдіть до панелі управління вашого реєстратора доменів.
  • Оновіть A-запис для вашого домену, вказавши статичну IP-адресу, яку ви тільки що зарезервували.

Поширення змін може зайняти деякий час. Для перевірки можна скористатися інструментом пошуку DNS-записів.

Після оновлення A-запису ви зможете отримати доступ до сайту WordPress, використовуючи доменне ім’я, яке ви застосували за допомогою команди WordOps. У нашому прикладі це http://geekflarelab.com.

Проведення тесту навантаження

Перевіримо продуктивність щойно налаштованого сайту WordPress на Google Cloud Platform. Перед запуском тесту швидкості я встановлю тему TagDiv, як було зазначено раніше.

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

Як видно, сайт geekflarelab.com готовий до роботи на GCP.

Існує декілька способів бенчмаркінгу, одним з найпростіших є проведення тестування з хмари. Я скористався Loader.io для імітації навантаження від 100 до 500 користувачів протягом хвилини. Результати наступні:

Середній час відгуку = 695 мс

Звичайно, це базова установка WordPress, яка потребує додаткових плагінів, забезпечення безпеки, SSL-сертифіката тощо для використання у виробничому середовищі. Але це лише незначно вплине на час завантаження.

Висновок

Сподіваюсь, що ця інструкція допоможе вам зрозуміти, як налаштувати WordPress на Google Cloud Platform. Цей процес вимагає певного часу та навичок, але, якщо ви хочете заощадити кошти, я вважаю, що це варте зусиль.

Якщо у вас немає часу на самостійне налаштування або управління WordPress, але ви хочете використовувати переваги Google Cloud, ви можете спробувати керовану хостинг-платформу Cloudways.