Amazon RDS — MySQL для разработчиков .NET

Это первая часть серии статей о том, как использовать преимущества баз данных Amazon RDS в качестве разработчика .NET. Начнем с одной из старейших реляционных баз данных с открытым исходным кодом — MySQL. Первоначально выпущенная в 1995 году, MySQL с тех пор сменила несколько «владельцев», и в настоящее время ее разрабатывает в основном Oracle. Как уже упоминалось, MySQL является бесплатной и открытой по условиям GNU General Public License (GPL). То, что AWS не нужно платить лицензионные отчисления, является одной из основных причин того, что стоимость MySQL на Amazon RDS является самой низкой в таблице; вы платите только за оборудование и управление, а не за оборудование, лицензирование и управление.

MySQL может быть не такой полнофункциональной и мощной, как некоторые коммерческие системы, такие как SQL Server и Oracle, однако это не означает, что она не может быть полезной для разработчиков .NET. Одной из причин популярности MySQL стала ее относительная простота и легкость в использовании, поэтому если все, что вы ищете, это возможность легко сохранять данные в реляционной базе данных, то, скорее всего, MySQL удовлетворит ваши потребности за меньшую стоимость, чем SQL Server.

MySQL и .NET

Прежде чем перейти к рассмотрению поддержки RDS для MySQL, давайте вкратце остановимся на использовании MySQL при разработке .NET. Основным примером использования при размышлении о .NET и продуктах баз данных является поддержка Entity Framework, системы объектно-реляционного отображения (ORM), используемой в .NET по умолчанию. Если есть поддержка этой базы данных, то использование этой базы данных в приложении .NET будет сводиться к возможностям базы данных, а не к ее взаимодействию с .NET. Учитывая это, давайте рассмотрим, что вам нужно сделать, чтобы использовать MySQL в вашем приложении.

Первое, что вам нужно сделать, это включить необходимый пакет NuGet, MySql.EntityFrameworkCore. После того, как у вас есть пакет, необходимо настроить ваше приложение на использование MySQL. Для этого нужно вызвать метод UseMySQL при переопределении метода OnConfiguring в классе контекста, как показано ниже:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    optionsBuilder.UseMySQL("connection string here");
}
Вход в полноэкранный режим Выйти из полноэкранного режима

Строка соединения для MySQL состоит из четырех обязательных полей:

  • server — сервер, с которым необходимо установить соединение
  • uid — имя пользователя
  • pwd — пароль
  • database — база данных, с которой необходимо установить соединение

Дальше все точно так же, как при работе с Entity Framework и SQL Server. Немного антиклиматично, не так ли? Давайте теперь создадим базу данных MySQL.

Настройка базы данных MySQL на Amazon RDS

Теперь, когда мы знаем, как настроить наше .NET-приложение для доступа к MySQL, давайте посмотрим, как настроить MySQL. Войдите в консоль, перейдите к RDS, выберите Создать базу данных. На экране «Создание базы данных» выберите Стандартное создание, а затем MySQL. Это покажет вам, что есть только один выпуск, который вы можете выбрать — MySQL Community. Затем у вас есть множество различных версий, которые вы можете выбрать, однако пакеты NuGet, которые мы использовали в нашем предыдущем примере, требуют достаточно современной версии MySQL, поэтому, если у вас нет особых причин для использования более старой версии, вы всегда должны использовать наиболее обновленную версию по умолчанию.

После того, как вы определили версию MySQL, которую будете использовать, следующей опцией будет выбор шаблона, который вы хотите использовать. У вас есть три различных шаблона на выбор:

  • Production — по умолчанию установлен для поддержки высокой доступности и быстрой, стабильной производительности.
  • Dev/Test — по умолчанию устанавливается в середине диапазона.
  • Бесплатный уровень — по умолчанию установлена минимальная бесплатная версия.

Мы выберем версию Free tier, чтобы ограничить наши расходы в этом обзоре! Это создаст многие системные значения по умолчанию, которые вы увидите во время настройки сервера, подробнее об этом позже.

Следующий раздел — Settings (Настройки). Здесь вы создадите идентификатор экземпляра БД, а также имя пользователя и пароль мастера, учетные данные для входа, как показано на рисунке 1. Обратите внимание, что идентификатор экземпляра БД должен быть уникальным для всех экземпляров БД учетной записи в этом регионе, а не только для экземпляров БД MySQL. Мы использовали «prodotnetonaws» в качестве идентификатора экземпляра и имени пользователя Master. Если вы выберете автоматическую генерацию пароля, вы получите возможность получить доступ к этому паролю сразу после создания базы данных.


Рисунок 1. Именование экземпляра DM и создание главного пользователя

Прокрутка вниз до следующего раздела, DB instance class, покажет, что используемый класс экземпляра — db.t2.micro (или сопоставимый, в зависимости от того, когда вы это читаете), который является типом экземпляра, совместимым с бесплатным уровнем. Следующий раздел страницы, Storage, также заполнен бесплатной версией хранилища, по умолчанию это 20 GiB Allocated storage. Не изменяйте ни одно из этих значений, чтобы остаться в пределах «бесплатного» уровня.

Есть четыре дополнительных раздела. Первый из них — Availability & durability, где можно создать реплику в другой зоне доступности. Amazon RDS будет автоматически переходить на резервную копию в случае запланированного или незапланированного отключения основной. Если вы выбрали шаблон «Free», то весь этот раздел будет выделен серым цветом, и вы не сможете создать развертывание Multi-AZ. Второй раздел — Connectivity (Подключение). Здесь вы назначаете виртуальное частное облако (VPC) и группу подсетей, определяете, имеет ли ваш экземпляр RDS публичный доступ, и назначаете группу безопасности VPC. При желании можно выбрать зону доступности. Мы оставили все эти значения по умолчанию.

Третий раздел — аутентификация базы данных. В этом разделе у вас есть три опции, первая из которых — Password authentication (значение по умолчанию), где вы управляете учетными данными пользователей базы данных с помощью встроенных в MySQL функций аутентификации по паролю. Второй вариант в этом разделе — Password and IAM database authentication, где вы используете как функции аутентификации паролем MySQL, так и пользователей и роли IAM, и последний — Password and Kerberos authentication, где вы используете как функции аутентификации паролем MySQL, так и управляемую AWS Microsoft Active Directory (AD), созданную с помощью AWS Directory Service.

Последним разделом при создании базы данных RDS является Дополнительная конфигурация. Здесь вы можете добавить любые опции базы данных, настроить резервное копирование, добавить мониторинг, настроить ведение журнала, обслуживание и включить защиту от удаления. Когда защита от удаления включена, вы не сможете удалить базу данных без предварительного редактирования базы данных для отключения этой настройки. По завершении выберите кнопку Создать базу данных. Это вернет вас на экран Databases, где вы, скорее всего, увидите уведомление о том, что база данных создается, как показано на рисунке 2.


Рисунок 2. Уведомление о том, что создается база данных RDS

Если вы выбрали автоматическую генерацию пароля, кнопка, показанная на рисунке 2, также показывает кнопку View credential details, которую нужно нажать, чтобы увидеть сгенерированное значение. Когда база данных доступна, вы можете взаимодействовать с ней, как с любой другой базой данных, используя значения конечной точки и порта, которые показаны в закладке Connectivity & security в деталях базы данных, как показано на рисунке 3, для строки подключения в вашем .NET приложении.


Рисунок 3. Экран деталей базы данных MySQL с указанием конечной точки и порта

MySQL является наиболее используемой реляционной базой данных с открытым исходным кодом в мире. Однако, как упоминалось ранее, в 2010 году Oracle взяла проект под свой контроль, что вызвало некоторое недовольство среди пользователей MySQL. Это привело к форкингу исходного кода некоторыми из первоначальных разработчиков MySQL и созданию новой реляционной базы данных с открытым исходным кодом, основанной на коде MySQL, — MariaDB. Мы рассмотрим ее далее.

Оцените статью
Procodings.ru
Добавить комментарий