tms-dos21-onl / ales-litvinovich

MIT License
0 stars 0 forks source link

[HW32] GCP (Storage & VM autoscaling) #36

Closed AlexPykavy closed 3 months ago

AlexPykavy commented 4 months ago

Дедлайн: 06/24/2024

1. Работа с Google Cloud Storage (GCS):
- Создать GCE, открыть SSH сессию в созданную VM.
- Cклонировать репозиторий и ознакомиться с проектом и инструкцией к нему.
- Создать необходимые ресурсы для работы приложения:
- Создать GCS Bucket <LASTNAME>-gcs-demo.
- Создать Service Account <LASTNAME>-gcs-demo и назначьте ему роль Storage Object Admin (IAM & Admin -> IAM -> GRANT ACCESS)
- Сгенерировать и скачать Service Account Key в формате JSON.
- Установить Node.js 18.
- Установить зависимости приложения через NPM.
- Поправить имя GCS Bucket и имя файла с Service Account Key в каком-то из .js файлов приложения.
- Запустить приложение и проверить его работоспособность путем выполнение нескольких HTTP запросов через Postman как описано в Node.js upload File to Google Cloud Storage example параграфе.
2. Настройка автомасштабирования:
- Создать шаблон виртуальной машины apache-php-template:
- Активировать Allow HTTP traffic.
- В качестве startup скрипта написать команды для установки Apache веб-сервера с поддержкой PHP и создания phpinfo страницы (<?php phpinfo(); ?>).
- Создать группу виртуальных машин apache-php-group с помощью шаблона apache-php-template:
- Использовать мультизональную локацию.
- Настроить автомасштабирование от 2 до 4 экземпляров.
- Понизить порог для автомасштабирования до 30% CPU.
- Создать Application Load Balancer:
- В качестве Backend использовать ранее созданную группу VM apache-php-group:
- Выключить Cloud CDN.
- В качестве, Health Check использовать просто проверку доступности домашней страницы Apache.
- Проверить распределение трафика путем выполнения HTTP запроса GET /index.php через Load Balancer и сравнения свойства SERVER_ADDR в phpinfo таблице.
- Сгенерировать нагрузку на Load Balancer и убедиться, что работает автомасштабирование.

Ales0110 commented 3 months ago

@AlexPykavy , #56 done!