Облачные технологии перестали быть чем-то экзотическим. Сегодня даже небольшие проекты разворачивают инфраструктуру в облаках, потому что это удобно, масштабируемо и часто дешевле, чем держать собственное железо. Но многообразие провайдеров и сервисов может сбить с толку: чем AWS отличается от DigitalOcean? Что такое Yandex Cloud и Vultr? Когда облако лучше обычного VPS, а когда — нет?
В этой статье мы разберём:
- Что такое облачные вычисления и чем они отличаются от VPS.
- Обзор популярных облачных провайдеров: AWS, Yandex Cloud, DigitalOcean, Vultr.
- Создание виртуальных машин в каждом из облаков.
- Управление через CLI и веб-интерфейс.
- Облачные сервисы: S3-хранилища, Managed Databases, Load Balancers.
- Практические примеры и сравнение.
- Частые ошибки и рекомендации.
1. Что такое облачные вычисления
Облачные вычисления — это модель предоставления вычислительных ресурсов (серверы, хранилища, базы данных, сети) через интернет по требованию. Вы платите только за то, что используете, и можете масштабироваться вверх или вниз за минуты.
Ключевые характеристики облака:
- Самообслуживание по требованию — вы сами создаёте ресурсы через панель или API.
- Широкий сетевой доступ — ресурсы доступны из любой точки.
- Объединение ресурсов — провайдер обслуживает множество клиентов на общей инфраструктуре.
- Эластичность — быстрое масштабирование.
- Измеримость — оплата по факту потребления.
1.1 Облако vs VPS
Многие путают облако с обычным VPS. Разница есть, и она существенна.
| Критерий | VPS (Virtual Private Server) | Облако |
|---|---|---|
| Масштабирование | Ограничено ресурсами одного физического сервера | Горизонтальное и вертикальное, практически без ограничений |
| Оплата | Фиксированная (месяц/год) | По факту потребления (час/секунда) |
| Управление | Часто через панель (ISPmanager, cPanel) | Через API, CLI, Terraform |
| Отказоустойчивость | Зависит от хостера | Встроенные механизмы (зоны доступности, репликация) |
| Дополнительные сервисы | Обычно нет | S3, Managed DB, Load Balancer, CDN и т.д. |
Когда выбирать VPS:
- Небольшой проект с предсказуемой нагрузкой.
- Нужен полный контроль над сервером.
- Ограниченный бюджет, но достаточно ресурсов.
Когда выбирать облако:
- Нагрузка непредсказуема или быстро растёт.
- Нужны управляемые сервисы (БД, хранилища, очереди).
- Требуется отказоустойчивость и геораспределение.
- Проект использует микросервисную архитектуру.
2. Обзор популярных облачных провайдеров
2.1 AWS (Amazon Web Services)
AWS — крупнейший облачный провайдер в мире. Предлагает более 200 сервисов: от виртуальных машин (EC2) до машинного обучения (SageMaker).
Плюсы:
- Огромный выбор сервисов.
- Глобальная инфраструктура (множество регионов и зон доступности).
- Зрелость и надёжность.
- Обширная документация и сообщество.
Минусы:
- Сложный интерфейс, легко запутаться.
- Непрозрачная система скидок и биллинга.
- Дороже, чем DigitalOcean или Vultr для простых задач.
- Требует внимания к безопасности: по умолчанию все порты закрыты, нужно вручную настраивать Security Groups под каждый сервис.
Когда выбирать: крупные проекты, enterprise, необходимость в широком наборе сервисов.
2.2 Yandex Cloud
Yandex Cloud — российский облачный провайдер от Яндекса. Активно развивается, предлагает конкурентоспособные цены и хорошую интеграцию с российскими сервисами.
Плюсы:
- Русскоязычная поддержка и документация.
- Цены в рублях, оплата российскими картами.
- Соответствие требованиям законодательства (152-ФЗ).
- Широкий набор сервисов: Compute, Object Storage, Managed Databases, Kubernetes.
Минусы:
- Меньше глобальных регионов, чем у AWS.
- Экосистема пока уступает AWS.
- Некоторые сервисы находятся в стадии развития.
Когда выбирать: проекты, ориентированные на Россию и СНГ, необходимость соблюдения законодательства.
2.3 DigitalOcean
DigitalOcean — облачный провайдер, ориентированный на разработчиков и малый бизнес. Славится простотой и понятными ценами.
Плюсы:
- Простой и интуитивный интерфейс.
- Прозрачные цены (всё включено).
- Быстрый старт: дроплет (виртуальная машина) создаётся за секунды.
- Отличная документация и сообщество.
- Управляемые базы данных (Managed Databases).
Минусы:
- Меньше сервисов, чем в AWS.
- Нет некоторых advanced-возможностей (например, сложные IAM-политики).
- Ограниченное количество регионов.
Когда выбирать: малый и средний бизнес, стартапы, разработчики, которым нужна простота.
2.4 Vultr
Vultr — ещё один провайдер, ориентированный на разработчиков. Конкурирует с DigitalOcean по цене и простоте.
Плюсы:
- Низкие цены (особенно для высоких конфигураций).
- Много локаций по всему миру.
- Поддержка Bare Metal серверов.
- Простое API и CLI.
Минусы:
- Меньше управляемых сервисов, чем у DigitalOcean.
- Интерфейс менее отполирован.
- Сообщество меньше.
Когда выбирать: если нужен дешёвый VPS с хорошей производительностью или Bare Metal.
2.5 Сравнение провайдеров
| Критерий | AWS | Yandex Cloud | DigitalOcean | Vultr |
|---|---|---|---|---|
| Простота | Низкая | Средняя | Высокая | Высокая |
| Цена (мин. VPS) | ~$5/мес | ~200 руб/мес | $4/мес | $2.5/мес |
| Кол-во сервисов | Очень много | Много | Средне | Мало |
| Русскоязычная поддержка | Нет | Да | Нет | Нет |
| Оплата в рублях | Нет | Да | Нет | Нет |
| Бесплатный тариф | Есть (ограничен) | стартовый грант (обычно 4000 рублей на 60 дней) | Нет | Нет |
3. Создание виртуальных машин
Рассмотрим создание виртуальной машины (VM) в каждом облаке.
3.1 AWS EC2
- Войдите в консоль AWS.
- Перейдите в EC2 → Instances → Launch Instance.
- Выберите AMI (образ): Amazon Linux, Ubuntu, Windows и т.д.
- Выберите тип инстанса (t3.micro — бесплатный в рамках Free Tier).
- Настройте сеть (VPC, подсеть, публичный IP).
- Добавьте хранилище (EBS-том).
- Настройте Security Group (правила фаервола).
- Создайте или выберите SSH-ключ.
- Запустите инстанс.
Через AWS CLI:
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--count 1 \
--instance-type t3.micro \
--key-name MyKeyPair \
--security-group-ids sg-903004f8 \
--subnet-id subnet-6e7f829e3.2 Yandex Cloud
- Войдите в консоль Yandex Cloud.
- Перейдите в Compute → Виртуальные машины → Создать ВМ.
- Укажите имя, зону доступности.
- Выберите образ (Ubuntu, CentOS, и т.д.).
- Настройте ресурсы (vCPU, RAM, диск).
- Настройте сеть и публичный IP.
- Добавьте SSH-ключ.
- Создайте ВМ.
Через YC CLI:
yc compute instance create \
--name my-vm \
--zone ru-central1-a \
--network-interface subnet-name=default-ru-central1-a,nat-ip-version=ipv4 \
--create-boot-disk image-folder-id=standard-images,image-family=ubuntu-2404-lts \
--ssh-key ~/.ssh/id_rsa.pub3.3 DigitalOcean
- Войдите в панель DigitalOcean.
- Нажмите Create → Droplets.
- Выберите образ (Ubuntu, Fedora, приложения в один клик).
- Выберите размер (от $4/мес).
- Выберите регион (ближайший к пользователям).
- Добавьте SSH-ключ.
- Нажмите Create Droplet.
Через doctl CLI:
doctl compute droplet create my-droplet \
--size s-1vcpu-1gb \
--image ubuntu-22-04-x64 \
--region nyc1 \
--ssh-keys your-ssh-key-id3.4 Vultr
- Войдите в панель Vultr.
- Нажмите Deploy New Server.
- Выберите тип (Cloud Compute, High Frequency, Bare Metal).
- Выберите локацию.
- Выберите образ (Ubuntu, CentOS, приложения).
- Выберите размер (от $2.5/мес).
- Добавьте SSH-ключ.
- Нажмите Deploy Now.
Через Vultr CLI:
vultr-cli instance create \
--region ewr \
--plan vc2-1c-1gb \
--os 174 \
--ssh-keys your-ssh-key-id4. Управление через CLI
Все крупные облака имеют CLI-инструменты, которые позволяют автоматизировать работу.
4.1 AWS CLI
Установка:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
sudo apt install unzip -y # если ещё не установлен
unzip awscliv2.zip
sudo ./aws/installНастройка:
aws configure
# Введите Access Key, Secret Key, регион, формат выводаПримеры команд:
# Список инстансов
aws ec2 describe-instances
# Создание S3-бакета
aws s3 mb s3://my-bucket
# Загрузка файла в S3
aws s3 cp file.txt s3://my-bucket/
# Список баз данных RDS
aws rds describe-db-instances4.2 Yandex Cloud CLI
Установка:
curl https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bashНастройка:
yc init
# Следуйте инструкциям, выберите облако, каталог, зонуПримеры команд:
# Список ВМ
yc compute instance list
# Создание бакета Object Storage
yc storage bucket create --name my-bucket
# Загрузка файла
yc storage object put --bucket my-bucket --file file.txt4.3 DigitalOcean doctl
Установка:
# Ubuntu/Debian
sudo snap install doctl
# Или скачать с GitHubВАЖНО! Doctl через snap — не везде работает. Snap install doctl требует установленный snapd, которого нет на многих серверных дистрибутивах по умолчанию. Устанавливайте напрямую с бинарника с GitHub.
Настройка:
doctl auth init
# Введите токен APIПримеры:
# Список дроплетов
doctl compute droplet list
# Создание дроплета
doctl compute droplet create my-droplet --size s-1vcpu-1gb --image ubuntu-22-04-x64 --region nyc1
# Управление базами данных
doctl databases list4.4 Vultr CLI
Установка:
# Скачать бинарник с GitHub
wget https://github.com/vultr/vultr-cli/releases/latest/download/vultr-cli_linux_amd64.tar.gz
tar -xzf vultr-cli_linux_amd64.tar.gz
sudo mv vultr-cli /usr/local/bin/Настройка:
vultr-cli api-key set YOUR_API_KEYПримеры:
# Список инстансов
vultr-cli instance list
# Создание инстанса
vultr-cli instance create --region ewr --plan vc2-1c-1gb --os 174ВАЖНО! Команды vultr-cli instance create --region ewr --plan vc2-1c-1gb --os 174 — это синтаксис старой версии. Vultr CLI v3 (актуальная) использует другой формат флагов: vultr-cli instance create —help.
5. Облачные сервисы
Помимо виртуальных машин, облака предлагают управляемые сервисы, которые экономят время и силы.
5.1 S3-хранилища (Object Storage)
S3 (Simple Storage Service) — это хранилище объектов (файлов) с доступом по HTTP. Идеально для статики, бэкапов, медиафайлов.
AWS S3:
- Создание бакета:
aws s3 mb s3://my-bucket - Загрузка:
aws s3 cp file.jpg s3://my-bucket/ - Публичный доступ настраивается через Bucket Policy.
Yandex Object Storage:
- Аналогичен S3, совместим с API S3.
- Создание:
yc storage bucket create --name my-bucket
DigitalOcean Spaces:
- Совместим с S3 API.
- Простая настройка через панель.
Vultr Object Storage:
- Также совместим с S3.
Использование в приложениях:
// Пример с AWS SDK для PHP
$s3 = new Aws\S3\S3Client([
'version' => 'latest',
'region' => 'us-east-1',
'credentials' => [
'key' => 'YOUR_KEY',
'secret' => 'YOUR_SECRET',
],
]);
$s3->putObject([
'Bucket' => 'my-bucket',
'Key' => 'file.jpg',
'SourceFile' => '/path/to/file.jpg',
]);5.2 Managed Databases
Управляемые базы данных — это когда провайдер берёт на себя установку, настройку, резервное копирование и обновление СУБД.
AWS RDS: поддерживает MySQL, PostgreSQL, MariaDB, Oracle, SQL Server.
Yandex Managed Databases: MySQL, PostgreSQL, MongoDB, Redis, ClickHouse.
DigitalOcean Managed Databases: MySQL, PostgreSQL, Redis, MongoDB.
Vultr Managed Databases: MySQL, PostgreSQL, Redis.
Преимущества:
- Автоматические бэкапы.
- Репликация и отказоустойчивость.
- Мониторинг и алерты.
- Лёгкое масштабирование.
Недостатки:
- Дороже, чем самостоятельно развёрнутая БД на VPS.
- Меньше контроля над настройками.
5.3 Load Balancers
Балансировщики распределяют трафик между несколькими серверами, повышая отказоустойчивость и производительность.
AWS ELB (Elastic Load Balancing): Application Load Balancer (ALB) для HTTP/HTTPS, Network Load Balancer (NLB) для TCP/UDP.
Yandex Cloud Load Balancer: сетевой и прикладной балансировщики.
DigitalOcean Load Balancer: простой балансировщик для HTTP/TCP.
Vultr Load Balancer: аналогично.
Пример настройки (DigitalOcean):
- Создайте Load Balancer в панели.
- Укажите правила (HTTP/HTTPS).
- Добавьте дроплеты в пул.
- Настройте health check.
5.4 Другие сервисы
- CDN — ускорение доставки статики.
- Kubernetes — управляемые кластеры (AWS EKS, Yandex Managed Kubernetes, DigitalOcean Kubernetes).
- Serverless — AWS Lambda, Yandex Cloud Functions.
- Очереди — AWS SQS, Yandex Message Queue.
- Мониторинг — AWS CloudWatch, Yandex Monitoring.
6. Практические примеры
6.1 Развёртывание веб-приложения в DigitalOcean
- Создайте дроплет (Ubuntu 22.04, 2 ГБ RAM).
- Подключитесь по SSH.
- Установите Nginx, PHP-FPM, MySQL.
- Настройте сайт.
- Создайте Managed Database для MySQL (чтобы не администрировать самому).
- Настройте Load Balancer для распределения трафика.
- Настройте домен и SSL (Let’s Encrypt).
6.2 Использование S3 для хранения файлов
Задача: хранить загруженные пользователями изображения в облаке, а не на сервере.
Решение:
- Создайте бакет в S3 (или совместимом сервисе).
- Настройте права доступа (публичное чтение для изображений).
- В приложении используйте SDK для загрузки файлов.
- Отдавайте файлы через CDN.
Пример на PHP:
$s3->putObject([
'Bucket' => 'user-uploads',
'Key' => 'avatars/' . $userId . '.jpg',
'SourceFile' => $tmpFile,
'ACL' => 'public-read',
]);ВАЖНО! AWS деактивировала ACL для новых бакетов с апреля 2023 года (Object Ownership = BucketOwnerEnforced). Использование ACL => 'public-read' вызовет ошибку на новых бакетах. Современный подход — Bucket Policy с публичным чтением, а в коде ACL не указывать.
6.3 Автоматическое масштабирование в AWS
- Создайте Launch Template с настройками инстанса.
- Создайте Auto Scaling Group.
- Настройте политики масштабирования (по CPU, по количеству запросов).
- Подключите Load Balancer.
Теперь при росте нагрузки AWS будет автоматически добавлять инстансы, а при спаде — удалять их.
7. Частые ошибки и рекомендации
| Ошибка | Последствия | Решение |
|---|---|---|
| Забыли про лимиты бесплатного тарифа | Неожиданный счёт | Внимательно читайте условия Free Tier, ставьте биллинг-алерты. |
| Открытые Security Group | Взлом сервера | Закрывайте все порты, кроме необходимых. Используйте SSH-ключи. |
| Нет резервных копий | Потеря данных | Настройте автоматические бэкапы (Managed DB или snapshots). |
| Использование root-аккаунта AWS | Риск компрометации | Создайте IAM-пользователей с ограниченными правами. |
| Игнорирование мониторинга | Проблемы остаются незамеченными | Настройте CloudWatch, Yandex Monitoring или Prometheus. |
| Выбор самого дешёвого региона | Высокая задержка | Выбирайте регион, ближайший к вашим пользователям. |
| Нет плана на случай сбоя | Простой | Используйте несколько зон доступности, репликацию, бэкапы. |
| Игнорирование egress-трафика | Счет за исходящий трафик | Учитывайте стоимость egress при планировании. Yandex Cloud и DigitalOcean дешевле по egress, чем AWS |
Рекомендации:
- Начните с малого. Не пытайтесь сразу строить сложную инфраструктуру.
- Используйте Infrastructure as Code. Terraform, Ansible — ваши друзья.
- Следите за расходами. Настройте биллинг-алерты.
- Читайте документацию. У каждого провайдера есть гайды и best practices.
Мы рассмотрели создание виртуальных машин, управление через CLI, использование S3, Managed Databases и Load Balancers. Эти знания помогут вам построить надёжную, масштабируемую и безопасную инфраструктуру в облаке.
