Ядра RDS и классы экземпляров
Сравните MySQL, PostgreSQL, MariaDB, Oracle, SQL Server и Aurora и выберите подходящий класс экземпляра для своей рабочей нагрузки.
«Ядра RDS и классы экземпляров» — бесплатный урок Cloud & IT Cert Prep на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cloud & IT Cert Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Введение в движки Amazon RDS
Amazon RDS поддерживает шесть движков баз данных: MySQL, PostgreSQL, MariaDB, Oracle, Microsoft SQL Server и Amazon Aurora. Каждый движок представляет собой полностью управляемую версию уже знакомой Вам базы данных с открытым исходным кодом или коммерческой базы данных. AWS выполняет установку исправлений, резервное копирование и переключение при отказе, поэтому Вы можете сосредоточиться на логике приложения.
Выбор подходящего движка зависит от требований существующего приложения, стоимости лицензий и возможностей каждого движка. Aurora — это облачный вариант AWS, созданный для высокой производительности и доступности.
MySQL и PostgreSQL в RDS
MySQL — самая популярная в мире реляционная база данных с открытым исходным кодом, хорошо подходящая для веб-приложений и систем управления содержимым. PostgreSQL обеспечивает расширенное соответствие стандарту SQL, мощную поддержку JSONB и развитую экосистему расширений, благодаря чему популярен для аналитических и геопространственных задач.
Оба движка в RDS поддерживают автоматическое резервное копирование, развертывания Multi-AZ и реплики для чтения. Реплики для чтения PostgreSQL могут размещаться в разных регионах, а MySQL с Aurora MySQL поддерживает до 15 реплик в разных регионах.
# Creating an RDS MySQL instance via CLI
aws rds create-db-instance \
--db-instance-identifier mydb \
--db-instance-class db.t3.micro \
--engine mysql \
--master-username admin \
--master-user-password MyPass123! \
--allocated-storage 20MariaDB и варианты её использования
MariaDB — разработанная сообществом ответвлённая версия MySQL, полностью совместимая на уровне сетевого протокола с клиентами MySQL. Она предоставляет дополнительные движки хранения, более высокую производительность в некоторых рабочих нагрузках и открытую модель разработки без проприетарных возможностей.
В RDS MariaDB может непосредственно заменить MySQL, если Вы хотите избежать лицензирования MySQL от Oracle или предпочитаете версию, развиваемую сообществом. Она поддерживает те же функции автоматического резервного копирования, Multi-AZ и реплик для чтения, что и MySQL.
Oracle и SQL Server в RDS
Oracle Database в RDS поддерживает модели License Included (LI) и Bring Your Own License (BYOL). В модели LI лицензия Oracle SE2 включена в почасовую стоимость, а BYOL позволяет использовать имеющуюся лицензию Enterprise Edition для таких возможностей, как секционирование и Advanced Security.
Microsoft SQL Server в RDS аналогично предлагает редакции LI (Express, Web, Standard, Enterprise) и BYOL. Оба движка поддерживают Multi-AZ с синхронным зеркалированием, но не поддерживают реплики для чтения так же, как движки с открытым исходным кодом.
Amazon Aurora: облачный движок
Amazon Aurora — облачная реляционная база данных, совместимая с MySQL и PostgreSQL. Aurora обеспечивает до 5-кратной пропускной способности MySQL и 3-кратной пропускной способности PostgreSQL на том же оборудовании благодаря распределённому уровню хранения, который автоматически реплицирует данные шестью копиями в трёх зонах доступности.
Хранилище Aurora автоматически увеличивается с шагом 10 GB до 128 ТиБ, устраняя необходимость вручную выделять хранилище. Разделение вычислительных ресурсов и хранилища также позволяет Aurora Serverless автоматически увеличивать и уменьшать доступную ёмкость.
Семейства классов экземпляров RDS
Классы экземпляров RDS используют то же соглашение об именовании, что и EC2, но начинаются с db., а не просто с буквы семейства. Основные семейства:
- db.t — производительность с возможностью кратковременного увеличения, экономичный вариант для разработки и тестирования (например, db.t3.micro, db.t4g.small)
- db.m — универсальное назначение, сбалансированное соотношение CPU и памяти (например, db.m6g.large)
- db.r — оптимизировано для памяти, подходит для больших кэшей и таблиц в памяти (например, db.r6g.xlarge)
- db.x — экстремально большой объём памяти для Oracle и SQL Server с рабочими нагрузками SAP
Выбирайте db.t для разработки, db.m для типичной рабочей среды, а db.r для баз данных с большими рабочими наборами.
Выбор подходящего класса экземпляра
Выбор класса экземпляра RDS требует анализа профиля рабочей нагрузки: использования CPU, потребления памяти, потребности в IOPS и пропускной способности сети. AWS Compute Optimizer и инструмент RDS Performance Insights помогают определить, выделено ли для текущего экземпляра слишком много или слишком мало ресурсов.
Распространённый подход — начать с db.t3 на этапе создания прототипа, перейти на db.m6g при стабилизации нагрузки, а затем выбрать db.r6g, когда запросам потребуется больший буферный пул. Экземпляры на базе Graviton2 (db.m6g, db.r6g) обычно обеспечивают до 35% лучшее соотношение цены и производительности по сравнению с эквивалентами на x86.
# List available DB instance classes for MySQL 8.0
aws rds describe-orderable-db-instance-options \
--engine mysql \
--engine-version 8.0 \
--query 'OrderableDBInstanceOptions[].DBInstanceClass' \
--output text | tr '\t' '\n' | sort -u | head -20Варианты хранилища для RDS
RDS предлагает три типа хранилища, которые работают поверх томов EBS:
- gp2 / gp3 — SSD общего назначения; gp3 позволяет независимо задавать IOPS и пропускную способность, не оплачивая дополнительный объём хранилища
- io1 / io2 — SSD с выделенными IOPS для чувствительных к задержке баз данных OLTP, которым требуется стабильное время отклика менее миллисекунды
- st1 — HDD, оптимизированный для пропускной способности; доступен только для определённых движков и рабочих нагрузок тестирования
Для большинства рабочих развертываний RDS рекомендуется использовать gp3 по умолчанию: он предоставляет 3 000 IOPS без дополнительной платы и позволяет независимо от объёма хранилища изменять их количество.
Масштабирование RDS: вертикальное и горизонтальное
RDS поддерживает два направления масштабирования. Вертикальное масштабирование (изменение класса экземпляра) требует короткого периода недоступности, если не включён Multi-AZ; при включённом Multi-AZ переключение при отказе позволяет почти полностью избежать простоя во время изменения размера. Изменение можно запланировать на ближайшее окно обслуживания или применить немедленно.
Горизонтальное масштабирование предназначено только для чтения: Вы добавляете реплики для чтения, чтобы распределить запросы SELECT и разгрузить основной экземпляр. Реплики для чтения используют асинхронную репликацию, поэтому возникает небольшая задержка репликации, которую приложение должно учитывать.
# Modify an RDS instance class (apply immediately)
aws rds modify-db-instance \
--db-instance-identifier mydb \
--db-instance-class db.m6g.large \
--apply-immediatelyAurora и движки сообщества: ключевые различия
При выборе между Aurora и MySQL/PostgreSQL, развиваемыми сообществом, учитывайте следующие компромиссы:
- Aurora: более высокая пропускная способность, автоматическая репликация с шестью копиями, быстрое переключение при отказе (примерно 30 с), отсутствие необходимости вручную управлять хранилищем, более высокая почасовая стоимость
- MySQL/PostgreSQL: меньшая стоимость, более широкий выбор расширений сообщества, возможность BYOL, привычные инструменты эксплуатации
В сценариях экзамена предпочтение отдаётся Aurora, если в вопросе подчёркиваются высокая доступность, автоматическое увеличение хранилища или производительность, близкая к коммерческим базам данных, по цене решения с открытым исходным кодом. Движки сообщества предпочтительнее, когда приоритетом являются минимизация стоимости или соответствие возможностей локальной инфраструктуре.
Обновление версий движка в RDS
RDS отделяет обновления минорных версий (например, MySQL 8.0.32 → 8.0.36) от обновлений основных версий (например, MySQL 5.7 → 8.0). Минорные обновления можно настроить на автоматическое применение во время окна обслуживания, включив --auto-minor-version-upgrade. Обновления основных версий выполняются вручную и могут потребовать проверки совместимости приложения.
Всегда сначала тестируйте обновления основных версий в промежуточной среде. Перед обновлением можно создать снимок базы данных, чтобы при возникновении проблем выполнить откат. Кластеры Aurora поддерживают обновление основных версий на месте с минимальными нарушениями работы.
# Enable auto minor version upgrade
aws rds modify-db-instance \
--db-instance-identifier mydb \
--auto-minor-version-upgrade \
--apply-immediatelyБыстрая проверка
Проверьте своё понимание концепций AWS Solutions Architect (SAA-C03) из этого урока.
Итоги урока
В этом уроке Вы узнали, что RDS поддерживает шесть движков (MySQL, PostgreSQL, MariaDB, Oracle, SQL Server, Aurora), классы экземпляров соответствуют профилям рабочих нагрузок (db.t для разработки и тестирования, db.m для универсальных задач, db.r для интенсивных нагрузок на память), а Aurora обеспечивает более высокую пропускную способность и автоматическое масштабирование хранилища по сравнению с движками сообщества. Далее мы рассмотрим развертывания Multi-AZ и автоматическое резервное копирование для обеспечения высокой доступности.
Часто задаваемые вопросы
Урок «Ядра RDS и классы экземпляров» бесплатный?
Да — полный текст урока «Ядра RDS и классы экземпляров» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cloud & IT Cert Prep, подпишись на CoddyKit PRO. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Чему я научусь в уроке «Ядра RDS и классы экземпляров»?
Сравните MySQL, PostgreSQL, MariaDB, Oracle, SQL Server и Aurora и выберите подходящий класс экземпляра для своей рабочей нагрузки. Ты практикуешь Cloud & IT Cert Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cloud & IT Cert Prep?
Предыдущий опыт не требуется. Cloud & IT Cert Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Ядра RDS и классы экземпляров»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cloud & IT Cert Prep?
Да. Каждый урок Cloud & IT Cert Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Ядра RDS и классы экземпляров
- Multi-AZ и автоматическое резервное копирование
- Read Replicas для масштабирования чтения
- Безопасность RDS: шифрование и группы параметров