Облачные технологии: AWS, Yandex Cloud, DigitalOcean и Vultr

Облачные технологии перестали быть чем-то экзотическим. Сегодня даже небольшие проекты разворачивают инфраструктуру в облаках, потому что это удобно, масштабируемо и часто дешевле, чем держать собственное железо. Но многообразие провайдеров и сервисов может сбить с толку: чем 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 Сравнение провайдеров

КритерийAWSYandex CloudDigitalOceanVultr
ПростотаНизкаяСредняяВысокаяВысокая
Цена (мин. VPS)~$5/мес~200 руб/мес$4/мес$2.5/мес
Кол-во сервисовОчень многоМногоСреднеМало
Русскоязычная поддержкаНетДаНетНет
Оплата в рубляхНетДаНетНет
Бесплатный тарифЕсть (ограничен)стартовый грант (обычно 4000 рублей на 60 дней)НетНет

3. Создание виртуальных машин

Рассмотрим создание виртуальной машины (VM) в каждом облаке.

3.1 AWS EC2

  1. Войдите в консоль AWS.
  2. Перейдите в EC2 → Instances → Launch Instance.
  3. Выберите AMI (образ): Amazon Linux, Ubuntu, Windows и т.д.
  4. Выберите тип инстанса (t3.micro — бесплатный в рамках Free Tier).
  5. Настройте сеть (VPC, подсеть, публичный IP).
  6. Добавьте хранилище (EBS-том).
  7. Настройте Security Group (правила фаервола).
  8. Создайте или выберите SSH-ключ.
  9. Запустите инстанс.

Через AWS CLI:

Bash
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-6e7f829e

3.2 Yandex Cloud

  1. Войдите в консоль Yandex Cloud.
  2. Перейдите в Compute → Виртуальные машины → Создать ВМ.
  3. Укажите имя, зону доступности.
  4. Выберите образ (Ubuntu, CentOS, и т.д.).
  5. Настройте ресурсы (vCPU, RAM, диск).
  6. Настройте сеть и публичный IP.
  7. Добавьте SSH-ключ.
  8. Создайте ВМ.

Через YC CLI:

Bash
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.pub

3.3 DigitalOcean

  1. Войдите в панель DigitalOcean.
  2. Нажмите Create → Droplets.
  3. Выберите образ (Ubuntu, Fedora, приложения в один клик).
  4. Выберите размер (от $4/мес).
  5. Выберите регион (ближайший к пользователям).
  6. Добавьте SSH-ключ.
  7. Нажмите Create Droplet.

Через doctl CLI:

Bash
doctl compute droplet create my-droplet \
    --size s-1vcpu-1gb \
    --image ubuntu-22-04-x64 \
    --region nyc1 \
    --ssh-keys your-ssh-key-id

3.4 Vultr

  1. Войдите в панель Vultr.
  2. Нажмите Deploy New Server.
  3. Выберите тип (Cloud Compute, High Frequency, Bare Metal).
  4. Выберите локацию.
  5. Выберите образ (Ubuntu, CentOS, приложения).
  6. Выберите размер (от $2.5/мес).
  7. Добавьте SSH-ключ.
  8. Нажмите Deploy Now.

Через Vultr CLI:

Bash
vultr-cli instance create \
    --region ewr \
    --plan vc2-1c-1gb \
    --os 174 \
    --ssh-keys your-ssh-key-id

4. Управление через CLI

Все крупные облака имеют CLI-инструменты, которые позволяют автоматизировать работу.

4.1 AWS CLI

Установка:

Bash
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

Настройка:

Bash
aws configure
# Введите Access Key, Secret Key, регион, формат вывода

Примеры команд:

Bash
# Список инстансов
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-instances

4.2 Yandex Cloud CLI

Установка:

Bash
curl https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash

Настройка:

Bash
yc init
# Следуйте инструкциям, выберите облако, каталог, зону

Примеры команд:

Bash
# Список ВМ
yc compute instance list

# Создание бакета Object Storage
yc storage bucket create --name my-bucket

# Загрузка файла
yc storage object put --bucket my-bucket --file file.txt

4.3 DigitalOcean doctl

Установка:

Bash
# Ubuntu/Debian
sudo snap install doctl

# Или скачать с GitHub

ВАЖНО! Doctl через snap — не везде работает. Snap install doctl требует установленный snapd, которого нет на многих серверных дистрибутивах по умолчанию. Устанавливайте напрямую с бинарника с GitHub.

Настройка:

Bash
doctl auth init
# Введите токен API

Примеры:

Bash
# Список дроплетов
doctl compute droplet list

# Создание дроплета
doctl compute droplet create my-droplet --size s-1vcpu-1gb --image ubuntu-22-04-x64 --region nyc1

# Управление базами данных
doctl databases list

4.4 Vultr CLI

Установка:

Bash
# Скачать бинарник с 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/

Настройка:

Bash
vultr-cli api-key set YOUR_API_KEY

Примеры:

Bash
# Список инстансов
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.

Использование в приложениях:

PHP
// Пример с 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):

  1. Создайте Load Balancer в панели.
  2. Укажите правила (HTTP/HTTPS).
  3. Добавьте дроплеты в пул.
  4. Настройте 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

  1. Создайте дроплет (Ubuntu 22.04, 2 ГБ RAM).
  2. Подключитесь по SSH.
  3. Установите Nginx, PHP-FPM, MySQL.
  4. Настройте сайт.
  5. Создайте Managed Database для MySQL (чтобы не администрировать самому).
  6. Настройте Load Balancer для распределения трафика.
  7. Настройте домен и SSL (Let’s Encrypt).

6.2 Использование S3 для хранения файлов

Задача: хранить загруженные пользователями изображения в облаке, а не на сервере.

Решение:

  • Создайте бакет в S3 (или совместимом сервисе).
  • Настройте права доступа (публичное чтение для изображений).
  • В приложении используйте SDK для загрузки файлов.
  • Отдавайте файлы через CDN.

Пример на PHP:

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

  1. Создайте Launch Template с настройками инстанса.
  2. Создайте Auto Scaling Group.
  3. Настройте политики масштабирования (по CPU, по количеству запросов).
  4. Подключите 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. Эти знания помогут вам построить надёжную, масштабируемую и безопасную инфраструктуру в облаке.

Нашли ошибку? Напишите нам!