Skip to content

Инфраструктура Yandex Cloud

Инфраструктура Yandex Cloud

Стратегия: budget-вариант (MVP)

Для небольшой нагрузки (десятки пользователей) рекомендуется одна VM с Docker Compose. PostgreSQL и Redis работают в контейнерах на той же машине.

Преимущества:

  • Стоимость ~3 000–4 000 ₽/мес (в 2× дешевле Managed-сервисов)
  • Аналогично текущему stage-окружению (hstgr.cloud)
  • Простое управление

Ограничения:

  • Нет автоматических managed-бэкапов и failover
  • При росте нагрузки — мигрировать PostgreSQL/Redis на Managed-сервисы

Managed-вариант (Managed PostgreSQL + Managed Redis) описан в разделе Оценка стоимости.


Конфигурация VM

ПараметрЗначение
СервисCompute Cloud
PlatformIntel Ice Lake (standard-v3)
CPU2 vCPU (100%, non-preemptible)
RAM8 GB
Диск50 GB SSD (network-ssd)
ОСUbuntu 22.04 LTS
Регионru-central1-a (или -b)
Публичный IP1 статический

Важно: регион ru-central1 обязателен для соответствия 152-ФЗ — данные остаются на территории РФ.


Сетевые настройки

VPC

Сеть: terma-grand-net (10.0.0.0/16)
Подсеть: terma-grand-subnet (10.0.1.0/24, зона ru-central1-a)

Security Group: terma-grand-sg

НаправлениеПротоколПортыИсточникНазначение
IngressTCP800.0.0.0/0HTTP
IngressTCP4430.0.0.0/0HTTPS
IngressTCP22<whitelist IP>SSH (только ваши IP)
EgressAnyAny0.0.0.0/0Telegram API, Let’s Encrypt

Важно: PostgreSQL (5432) и Redis (6379) не открываются в Ingress — только внутренняя Docker-сеть.

DNS

Тип: A-запись
Имя: termagrand.ru + *.termagrand.ru
TTL: 300
Значение: <публичный IP VM>

Используйте Yandex Cloud DNS или любой DNS-провайдер.


Хранилища

СервисНазначениеКонфигурация
VM SSDDocker volumes (PostgreSQL, Redis)50 GB
Yandex Object StorageБэкапы (pg_dump + шифрование)bucket terma-grand-backups

Создание ресурсов (YC CLI)

Окно терминала
# Установить yc CLI: https://cloud.yandex.ru/docs/cli/
# Создать сеть
yc vpc network create --name terma-grand-net
# Создать подсеть
yc vpc subnet create \
--name terma-grand-subnet \
--network-name terma-grand-net \
--zone ru-central1-a \
--range 10.0.1.0/24
# Создать Security Group
yc vpc security-group create \
--name terma-grand-sg \
--network-name terma-grand-net \
--rule "direction=ingress,port=80,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
--rule "direction=ingress,port=443,protocol=tcp,v4-cidrs=[0.0.0.0/0]" \
--rule "direction=ingress,port=22,protocol=tcp,v4-cidrs=[<ВАШ IP>/32]" \
--rule "direction=egress,port=any,protocol=any,v4-cidrs=[0.0.0.0/0]"
# Создать VM
yc compute instance create \
--name terma-grand-prod \
--zone ru-central1-a \
--platform standard-v3 \
--cores 2 \
--core-fraction 100 \
--memory 8GB \
--create-boot-disk image-family=ubuntu-2204-lts,size=50GB,type=network-ssd \
--network-interface subnet-name=terma-grand-subnet,nat-ip-version=ipv4,security-group-ids=<sg_id> \
--ssh-key ~/.ssh/id_rsa.pub
# Создать Object Storage bucket
yc storage bucket create --name terma-grand-backups

Следующий шаг

02 — Подготовка сервера