Как настроить базу данных HA/DR в AWS? [3 — Простая база данных].

В этом посте мы рассмотрим, как создать простую базу данных в AWS с помощью Terraform и как ее настроить.


Как создать базу данных?

Минимальная конфигурация выглядит следующим образом:

resource "aws_db_instance" "default" {
  allocated_storage    = 10
  engine               = "mysql"
  engine_version       = "5.7"
  instance_class       = "db.t3.micro"
  name                 = "mydb"
  username             = "random_user"
  password             = "random_pwd"
  parameter_group_name = "default.mysql5.7"
  skip_final_snapshot  = true
}
Войти в полноэкранный режим Выход из полноэкранного режима
параметр определение
выделенное_хранилище Размер вашей базы данных в Go
движок Какой тип базы данных вы хотите. AWS допускает как минимум «aurora», «MySql», «PostgreSQL», «MariaDB» и «Oracle».
версия_движка Версия движка для установки на базу данных
класс_экземпляра Тип машины, которую вы хотите использовать для вашей базы данных. В зависимости от производительности, которая вам нужна, может быть очень важно выбрать правильный экземпляр. Проверьте документацию AWS о доступных типах экземпляров: https://aws.amazon.com/rds/instance-types/.
имя Имя базы данных
имя пользователя Имя пользователя учетной записи root
пароль Пароль учетной записи root
имя_группы_параметров Группа параметров для использования при настройке базы данных. Вы можете использовать группу со значениями по умолчанию, определенными AWS.
skip_final_snapshot Установите значение false, если вы хотите генерировать моментальный снимок базы данных при удалении. В противном случае установите значение true.

Как создать пользовательскую группу параметров?

Мы видели, что можно определить группу параметров для переопределения некоторых конфигураций базы данных.

Для этого создайте aws_db_parameter_group, и, как в следующем примере, вы можете изменить кодировку.

resource "aws_db_parameter_group" "default" {
  name   = "rds-group-perso"
  family = "mysql5.6"

  parameter {
    name  = "character_set_server"
    value = "utf8"
  }

  parameter {
    name  = "character_set_client"
    value = "utf8"
  }
}
Войти в полноэкранный режим Выйти из полноэкранного режима

Все доступные параметры перечислены в документации AWS :

  • MySQL : https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Reference.html
  • PostgreSQL : https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Reference.ParameterGroups.html
  • Maria DB : https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MariaDB.Parameters.html
  • PostgreSQL : https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.html#Appendix.PostgreSQL.CommonDBATasks.Parameters

Затем вы можете правильно обновить значение в aws_db_instance, чтобы использовать эту вновь созданную группу параметров.

resource "aws_db_instance" "default" {
  ...
  parameter_group_name = aws_db_parameter_group.aws_db_parameter_group.id
  ...
}
Вход в полноэкранный режим Выход из полноэкранного режима

ПРИМЕЧАНИЕ: Вы можете установить имя параметра_group_name = «rds-group-perso» в aws_db_instance, и это также будет работать. Но использование параметра из созданного ресурса является более чистым.


Другие интересные настраиваемые параметры

  • port — Если вы хотите изменить порт по умолчанию для доступа к базе данных
  • storage_encrypted — Если вы хотите зашифровать хранимые данные
  • kms_key_id — Идентификатор ключа KMS, который будет использоваться для шифрования.
  • enabled_cloudwatch_logs_exports — Чтобы установить все типы журналов, которые вы хотите экспортировать в CloudWatch.
  • backup_window — Период дня, когда создаются ежедневные резервные копии
  • backup_retention_period — Количество дней, в течение которых необходимо сохранять резервные копии.
  • security_group_names — Список групп безопасности для добавления в базу данных. Это очень важный параметр, позволяющий правильно контролировать, кто может получить доступ к вашей базе данных.
  • maintenance_window — Окно, в котором будет выполняться обслуживание.

Есть и другие параметры, ознакомьтесь с ними в документации Terraform.


Ссылки

Terraform

  • aws_db_instance : https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_instance
  • aws_db_parameter_group : https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_parameter_group

Надеюсь, это поможет вам! ?

И до скорой встречи в следующей части этой серии. ?


Ссылка на серию

  • 1 — Начало : https://dev.to/adaendra/how-to-setup-a-hadr-database-in-aws-1-1ko7
  • 2 — Определения : https://dev.to/adaendra/how-to-setup-a-hadr-database-in-aws-2-definitions-93p
  • 3 — Простая база данных : https://dev.to/adaendra/how-to-setup-a-hadr-database-in-aws-3-simple-database-a9o
  • 4 — База данных HA : https://dev.to/adaendra/how-to-setup-a-hadr-database-in-aws-4-ha-database-4kek
  • 5 — База данных DR : https://dev.to/adaendra/how-to-setup-a-hadr-database-in-aws-5-dr-database-278b
  • 6 — Создание из моментального снимка : https://dev.to/adaendra/how-to-setup-a-hadr-database-in-aws-6-create-from-snapshot-2mbf
  • 7 — Определение бэкенда Dynamic Terraform : https://dev.to/adaendra/how-to-setup-a-hadr-database-in-aws-7-dynamic-terraform-backend-definition-3aga
  • 8 — Несколько экземпляров в нескольких регионах : https://dev.to/adaendra/how-to-setup-a-hadr-database-in-aws-8-multiple-instances-in-multiple-regions-210d
  • 9 — Генерирование случайного значения : https://dev.to/adaendra/how-to-setup-a-hadr-database-in-aws-9-generate-a-random-value-5g8a

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *