AWS RDS · 6 min read · Feb 04, 2026
Используйте Cloudformation для создания экземпляра RDS MySql на AWS

Служба реляционных баз данных AWS (RDS AWS) — это веб-сервис, который упрощает настройку и управление реляционной базой данных в облаке. Чтобы узнать больше о RDS, найдите статью “Как настроить экземпляр RDS MySql (реляционная база данных MySql) на AWS”.
AWS CloudFormation позволяет нам использовать языки программирования (yaml/json) или простой текстовый файл для моделирования и предоставления всех ресурсов, необходимых для наших приложений. Это дает нам единый источник правды для наших ресурсов AWS.
В этой статье мы рассмотрим шаги по созданию экземпляра RDS MySql с использованием Cloudformation Stack.
Предварительные требования
- Учетная запись AWS (создайте, если у вас ее нет).
- Базовое понимание Cloudformation Stack.
- Базовое понимание экземпляра RDS MySql (реляционная база данных MySql) на AWS.
Что мы будем делать?
- Войти в AWS.
- Создать экземпляр RDS MySql с использованием Cloudformation Stack
Вход в AWS
- Нажмите здесь, чтобы перейти на страницу входа в AWS.
Когда мы перейдем по вышеуказанной ссылке, мы увидим веб-страницу, на которой нам нужно будет войти, используя наши учетные данные.

После успешного входа в AWS мы увидим главную консоль со всеми перечисленными службами.

Создание экземпляра RDS MySql с использованием Cloudformation.
Перед тем как создать экземпляр с использованием Cloudformation Stack, скопируйте код из следующего блока или загрузите шаблон отсюда и сохраните его на своем локальном компьютере.
---
AWSTemplateFormatVersion: '2010-09-09'
Description: Этот стек создает экземпляр RDS MySql 5.7
Parameters:
Owner:
Description: Введите имя владельца для этого стека.
Type: String
Default: Name
VPC:
Description: Выберите VPC из доступных VPC в вашей учетной записи.
Type: AWS::EC2::VPC::Id
PrivateSubnet1:
Description: Выберите частную подсеть 1.
Type: AWS::EC2::Subnet::Id
PrivateSubnet2:
Description: Выберите частную подсеть 2.
Type: AWS::EC2::Subnet::Id
PrivateSubnet3:
Description: Выберите частную подсеть 3.
Type: AWS::EC2::Subnet::Id
MasterUsername:
Description: Имя администратора базы данных.
Type: String
Default: rdsroot
MasterUserPassword:
NoEcho: 'true'
Description: Пароль администратора базы данных.
Type: String
MinLength: '8'
AllowedPattern: "[a-zA-Z0-9!?]*"
ConstraintDescription: Должен содержать только строчные и прописные буквы и цифры
BackupRetentionPeriod:
Description: Введите период хранения резервных копий в днях.
Type: Number
Default: '5'
MultiAvailabilityZone:
Description: Хотите ли вы включить несколько зон доступности?
Type: String
Default: 'true'
AllowedValues:
- 'true'
- 'false'
TcpPort:
Description: Введите номер порта TCP для прослушивания RDS.
Type: Number
Default: '3306'
PreferredBackupWindow:
Description: Введите предпочитаемое время резервного копирования.
Type: String
Default: 15:00-17:00
PreferredMaintenanceWindow:
Description: Введите предпочитаемое время обслуживания.
Type: String
Default: Sun:18:00-Sun:22:00
AllocatedStorage:
Default: '15'
Description: Введите размер базы данных (Гб)
Type: Number
MinValue: '5'
MaxValue: '6144'
ConstraintDescription: Должен быть в диапазоне от 5 до 6144
SnapshotOnDelete:
Description: Хотите ли вы создать снимок при удалении экземпляра?
Type: String
Default: 'true'
AllowedValues:
- 'true'
- 'false'
AutoMinorVersionUpgrade:
Description: Хотите ли вы разрешить автоматическое обновление незначительной версии?
Type: String
Default: 'true'
AllowedValues:
- 'true'
- 'false'
InstanceType:
Description: Выберите тип экземпляра.
Type: String
Default: db.t2.micro
ConstraintDescription: Должен быть допустимый тип экземпляра EC2.
Mappings:
Settings:
MySQL:
Engine: MySQL
Version: '5.7'
Conditions:
ConfigureSnapshotOnDelete:
Fn::Equals:
- Ref: SnapshotOnDelete
- 'true'
Metadata:
AWS::CloudFormation::Interface:
ParameterGroups:
- Label:
default: Владение
Parameters:
- Owner
- Label:
default: Конфигурация сети
Parameters:
- VPC
- PrivateSubnet1
- PrivateSubnet2
- PrivateSubnet3
- Label:
default: Конфигурация RDS
Parameters:
- InstanceType
- MasterUsername
- MasterUserPassword
- BackupRetentionPeriod
- PreferredBackupWindow
- PreferredMaintenanceWindow
- SnapshotOnDelete
- AllocatedStorage
- AutoMinorVersionUpgrade
- TcpPort
- MultiAvailabilityZone
ParameterLabels:
Owner:
default: Команда или индивидуальный владелец
InstanceType:
default: Тип экземпляра
PrivateSubnet1:
default: Частная подсеть 1
PrivateSubnet2:
default: Частная подсеть 2
PrivateSubnet3:
default: Частная подсеть 3
MasterUsername:
default: Имя администратора
MasterUserPassword:
default: Пароль администратора
BackupRetentionPeriod:
default: Период хранения резервных копий
PreferredBackupWindow:
default: Предпочитаемое время резервного копирования
PreferredMaintenanceWindow:
default: Предпочитаемое время обслуживания
AllocatedStorage:
default: Выделенное хранилище
AutoMinorVersionUpgrade:
default: Автоматическое обновление незначительной версии
TcpPort:
default: Порт TCP
MultiAvailabilityZone:
default: Несколько зон доступности?
SnapshotOnDelete:
default: Снимок при удалении?
Resources:
RDSAccessSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Доступ к экземпляру RDS
VpcId:
Ref: VPC
Tags:
- Key: Name
Value:
Fn::Join:
- ''
- - Ref: AWS::StackName
- "-rds"
- Key: Owner
Value:
Ref: Owner
AccessSecurityGroupIngress:
Type: AWS::EC2::SecurityGroupIngress
DependsOn: RDSAccessSecurityGroup
Properties:
GroupId:
Ref: RDSAccessSecurityGroup
IpProtocol: tcp
FromPort:
Ref: TcpPort
ToPort:
Ref: TcpPort
SourceSecurityGroupId:
Ref: RDSAccessSecurityGroup
DbSubnetGroup:
Type: AWS::RDS::DBSubnetGroup
Properties:
DBSubnetGroupDescription:
Fn::Join:
- ''
- - 'Группа подсетей RDS для '
- Ref: AWS::StackName
SubnetIds:
- Ref: PrivateSubnet1
- Ref: PrivateSubnet2
- Ref: PrivateSubnet3
Tags:
- Key: Name
Value:
Ref: AWS::StackName
- Key: Owner
Value:
Ref: Owner
DbInstance:
Type: AWS::RDS::DBInstance
DeletionPolicy: Snapshot
DependsOn:
- DbSubnetGroup
- RDSAccessSecurityGroup
Properties:
AllocatedStorage:
Ref: AllocatedStorage
AllowMajorVersionUpgrade: 'false'
AutoMinorVersionUpgrade:
Ref: AutoMinorVersionUpgrade
BackupRetentionPeriod:
Ref: BackupRetentionPeriod
DBInstanceClass:
Ref: InstanceType
DBInstanceIdentifier:
Ref: AWS::StackName
DBSubnetGroupName:
Ref: DbSubnetGroup
Engine:
Fn::FindInMap:
- Settings
- MySQL
- Engine
EngineVersion:
Fn::FindInMap:
- Settings
- MySQL
- Version
MasterUsername:
Ref: MasterUsername
MasterUserPassword:
Ref: MasterUserPassword
MultiAZ:
Ref: MultiAvailabilityZone
Port:
Ref: TcpPort
PreferredBackupWindow:
Ref: PreferredBackupWindow
PreferredMaintenanceWindow:
Ref: PreferredMaintenanceWindow
PubliclyAccessible: 'false'
StorageEncrypted: 'false'
StorageType: gp2
VPCSecurityGroups:
- Ref: RDSAccessSecurityGroup
Tags:
- Key: Name
Value:
Ref: AWS::StackName
- Key: Owner
Value:
Ref: Owner
Outputs:
Owner:
Description: Команда или индивидуум, владеющий этой формацией.
Value:
Ref: Owner
VPC:
Description: Используемый VPC
Value:
Ref: VPC
RDSHostname:
Description: Имя хоста RDS
Value:
Fn::GetAtt:
- DbInstance
- Endpoint.Address
RDSPort:
Description: Порт RDS
Value:
Fn::GetAtt:
- DbInstance
- Endpoint.Port
DbSubnetGroup:
Description: Созданная группа подсетей БД.
Value:
Ref: DbSubnetGroup
RDSAccessSecurityGroup:
Description: Созданная группа безопасности доступа RDS.
Value:
Ref: RDSAccessSecurityGroup
PrivateSubnet1:
Description: Развертывание частной подсети 1
Value:
Ref: PrivateSubnet1
PrivateSubnet2:
Description: Развертывание частной подсети 2
Value:
Ref: PrivateSubnet2
PrivateSubnet3:
Description: Развертывание частной подсети 3
Value:
Ref: PrivateSubnet3
BackupRetentionPeriod:
Description: Период хранения резервных копий в днях
Value:
Ref: BackupRetentionPeriod
MultiAvailabilityZone:
Description: Включить несколько зон доступности?
Value:
Ref: MultiAvailabilityZone
SnapshotOnDelete:
Description: Создать снимок при удалении?
Value:
Ref: SnapshotOnDelete
PreferredBackupWindow:
Description: Предпочитаемое время резервного копирования
Value:
Ref: PreferredBackupWindow
PreferredMaintenanceWindow:
Description: Предпочитаемое время обслуживания
Value:
Ref: PreferredMaintenanceWindow
AllocatedStorage:
Description: Выделенное хранилище в ГБ
Value:
Ref: AllocatedStorage
После того как у вас есть шаблон на вашем локальном компьютере, перейдите в консоль AWS и нажмите на “Службы” в верхнем меню и найдите “Cloudformation”.

Вы увидите главную панель управления Cloudformation, как показано ниже. Нажмите кнопку “Создать стек”, чтобы создать стек для создания экземпляра RDS MySql.

Нажмите на радиокнопку “Загрузить файл шаблона” и выберите шаблон, который вы сохранили на своем локальном компьютере, и нажмите кнопку “Далее”.

Укажите имя по вашему выбору для стека и заполните необходимые данные, затем нажмите “Далее”, чтобы продолжить.


Вы можете предоставить теги для стека Cloudformation, которые могут быть применены к экземпляру RDS MySql, который будет создан стеком. Нажмите “Далее”, чтобы продолжить.

Прокрутите вниз и нажмите “Создать стек”, чтобы создать стек.

Создание займет некоторое время. Вы можете видеть выполняемые действия в разделе событий.

Чтобы увидеть статус создаваемого экземпляра RDS MySql, нажмите на “Службы” и найдите “RDS”.

На главной панели нажмите на “DB Instances”.

Здесь вы можете увидеть, что статус экземпляра “Изменение”. Это займет некоторое время, чтобы создать и подготовить к использованию.

В событиях стека Cloudformation вы можете увидеть, что через некоторое время, после создания экземпляра RDS MySql, статус будет “CREATE_COMPLETE”

В консоли RDS теперь вы можете увидеть, что статус “Доступен”.

Чтобы увидеть больше деталей о экземпляре RDS MySql, нажмите на экземпляр RDS MySql –> Подключение и безопасность.
Чтобы подключиться к экземпляру RDS MySql, вы можете использовать конечную точку, предоставленную экземпляром.

Когда экземпляр больше не нужен, удалите стек Cloudformation из главной панели Cloudformation, чтобы сэкономить на расходах.
Заключение
В этой статье мы рассмотрели шаги по созданию экземпляра RDS MySql с использованием Cloudformation Stack.
Get new posts in your inbox
No spam. Unsubscribe anytime.