Как развернуть базу данных MSSQL с помощью Amazon Web Services (AWS) RDS и PowerShell — CloudSavvy IT

Реляционные базы данных управляются в облаке.

Решение Amazon Web Services (AWS) для реляционной базы данных называется Amazon Relational Database (RDS). RDS — это сервис AWS, который позволяет управлять реляционными базами данных в облаке. RDS предоставляет различные типы баз данных, но сегодня вы узнаете, как развернуть его, это MSSQL.

Как и многие другие сервисы AWS, вы можете управлять базами данных RDS несколькими различными способами, например, с помощью Консоли управления AWS, инструмента AWS CLI, любого количества SDK или с помощью PowerShell. Выбор лучшего метода остается за вами. (Если вы работаете в команде с гуру PowerShell или у вас уже есть сценарии автоматизации AWS, написанные на PowerShell, сценарий PowerShell может хорошо справиться с этой задачей.)

В этой статье вы узнаете, как использовать PowerShell и модуль AWS PowerShell для мгновенного развертывания экземпляра AWS RDS!

Предпосылки

Чтобы выполнить действия, описанные в этой статье, вы должны сначала убедиться, что вы выполнили несколько предполагаемых предварительных условий. Я ожидаю, что вы уже выполнили эти требования:

  1. Создал аккаунт AWS
  2. Используют PowerShell Core (я использую PowerShell 6.2.0.)
  3. Скачали и установили модуль AWS.Tools.RDS PowerShell (я использую v3.3.590.)
  4. Аутентифицировано в вашей учетной записи AWS пользователь root или пользователь IAM с правами на создание экземпляра RDS

Как только вы подтвердите, что соответствуете всем этим требованиям, приступим!

Выбор типа экземпляра RDS для развертывания

Прежде чем приступить к программированию, вы должны выяснить, какой экземпляр RDS нужно создать. Чтобы развернуть экземпляр RDS с помощью PowerShell, вам необходимо знать несколько атрибутов ключей:

  • Название экземпляра
  • Движок (SQL Server, MariaDB, MySql и т. Д.)
  • Класс экземпляра, который определяет, на каких ресурсах будет выполняться база данных SQL Server.
  • Главный логин и пароль
  • Насколько большой должна быть база данных в гигабайтах

В этой статье объясняется, как найти каждый из этих атрибутов для создания экземпляра RDS с помощью PowerShell.

Поиск доступных версий движка

При создании экземпляра MSSQL RDS с помощью этой статьи важно знать, что у вас есть другие варианты. Запустить Get-RDSDBEngineVersion и сгруппируйте по имени движка, чтобы увидеть список доступных типов баз данных.

PS> Get-RDSDBEngineVersion | Group-Object -Property Engine

Count Name                      Group
----- ----                      -----
   11 aurora                    {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
   11 aurora-mysql              {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
   11 aurora-postgresql         {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
    1 docdb                     {Amazon.RDS.Model.DBEngineVersion}
   19 mariadb                   {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
   27 mysql                     {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
    1 neptune                   {Amazon.RDS.Model.DBEngineVersion}
   42 oracle-ee                 {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
   20 oracle-se                 {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
   20 oracle-se1                {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
   21 oracle-se2                {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
   55 postgres                  {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
   18 sqlserver-ee              {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
   19 sqlserver-ex              {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
   19 sqlserver-se              {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion, Amaz…
   19 sqlserver-web             {Amazon.RDS.Model.DBEngineVersion, Amazon.RDS.Model.DBEngineVersion

Поскольку вы развернули экземпляр MSSQL RDS, изучите эту версию еще немного, чтобы увидеть все доступные версии.

Get-RDSDBEngineVersion -Engine 'sqlserver-ex' | Format-Table -Property EngineVersion

Поиск класса экземпляра

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

Создание экземпляра RDS

К настоящему времени у вас должно быть имя экземпляра RDS, который вы хотите создать, движок, класс экземпляра и имя пользователя / пароль, которые нужно ему назначить. Пришло время создать его.

Чтобы создать новый экземпляр RDS с помощью PowerShell, используйте New-RDSDBInstance Командлет. Этот единственный командлет позволяет передать все параметры, необходимые для создания экземпляра.

Ниже вы можете увидеть пример использования New-RDSDBInstance командлет для создания экземпляра:

  • Имя CloudSavvy
  • Ядро базы данных MSSQL (последняя версия SQL Express)
  • db.t2.micro класс экземпляра
  • са пользователь с паролем пароль
  • Размер 20 ГБ
  • Интерфейс, позволяющий подключаться через Интернет

В этом примере выходные данные команды назначаются переменной с именем $instance,

$parameters = @{
    DBInstanceIdentifier="ClouddSavvy"
    Engine="sqlserver-ex"
    DBInstanceClass="db.t2.micro"
    MasterUsername="sa"
    MasterUserPassword = 'password' ## Do not to include a forward slash, @ symbol, double quotes or spaces
    AllocatedStorage = 20 ## Gigabytes
    PubliclyAccessible = $true ## to connect over the Internet
}
$instance = New-RDSDBInstance @parameters

Когда New-RDSDBInstance команда запускается, она возвращает управление консоли PowerShell до создания экземпляра. Чтобы отслеживать процесс создания, вы можете отслеживать DBInstanceStatus собственность, возвращенная Get-RDSDBInstance,

PS62> (Get-RDSDBInstance -DBInstanceIdentifier $instance.DBInstanceIdentifier).DBInstanceStatus
creating

Используя небольшую магию PowerShell с while цикл, вы можете создать код, который будет ждать, пока экземпляр войдет в available статус перед снятием контроля.

В следующем примере PowerShell проверяет статус available каждые 30 секунд. Как только экземпляр переходит в это состояние, он освобождает управление.

while ((Get-RDSDBInstance -DBInstanceIdentifier $instance.DBInstanceIdentifier).DBInstanceStatus -ne 'available') {
    Write-Host 'Waiting for instance to be created...'
    Start-Sleep -Seconds 30
}

После того, как PowerShell освободит управление, вы сможете проверить Консоль управления AWS и подтвердить, что экземпляр RDS был создан. Для этого вы можете перейти в раздел службы RDS или перейти по этой ссылке, но обязательно замените ее названием региона, с которым вы работаете:

https://console.aws.amazon.com/rds/home?region=#dbinstances:

Резюме

Следуя пошаговому процессу, вы теперь знаете, как развернуть экземпляр AWS RDS с помощью PowerShell. И, используя код, обсуждаемый в этой статье, вы можете использовать его в более крупных сценариях автоматизации или создать экземпляр через консоль PowerShell по своему желанию.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.