Вы заметили, что у RDS появилась новая функция? Да! 3 дня назад AWS объявила, что теперь RDS поддерживает настройку соединения между RDS и EC2 всего в 1 клик. Нам не нужно подготавливать VPC, подсети, группы безопасности и т.д. Ого! Звучит здорово, правда? Но для того, чтобы эта функция работала должным образом, необходимо соблюдать некоторые «T&C». Как это работает?
Если вы хотите получить больше информации о новых возможностях, вы можете посетить эту ссылку.
В любом случае, я проделал все эти действия через консоль, потому что я все еще не могу найти CLI для этой функции, возможно, потому что она только что запущена (CMIIW и сообщите мне в комментариях, если вы знаете какую-либо информацию об этом). Извините, если вы увидите кучу изображений ниже 🙂
Ключ
Минимальный сетевой префикс (CIDR) для подсети — /24 для создания экземпляра RDS DB в том же VPC, что и экземпляр EC2.
Например, в данном случае я буду создавать RDS в регионе Джакарта (ap-southeast-3), который имеет 3 AZ.
Основываясь на своем опыте «опробования» этой функции 2 дня назад, я обнаружил некоторые вещи, которые вам могут понадобиться. Здесь мы разыграем несколько сценариев, чтобы мы могли лучше понять эту функцию.
1. Использование пользовательского VPC с CIDR /22
Здесь я использую /22
, потому что этого достаточно для создания подсети с /24
для каждого AZ (всего 3). /22
можно разделить на 4 части /24
.
Ниже приведена диаграмма, когда я создал только 1 публичную подсеть в 1 AZ для экземпляра EC2 перед созданием RDS, а еще 2 AZ не имеют подсети. Исходя из этого условия, 3 незанятых /24
доступны и достаточны для использования RDS для создания одной подсети с /24
в каждом AZ.
Примечание: В данном случае я использовал шаблон Free Tier, в котором Multi-AZ отключен, поскольку он предназначен только для личного тестирования. Поэтому автоматическое резервное копирование создается в том же AZ, а резервный экземпляр не создается. Вы можете использовать Dev/Test или Production, чтобы включить эти опции.
Что создал RDS?
- 1 подсеть в каждом AZ (всего 3 подсети для 3 AZ)
- 2 группы безопасности (разрешить 3306 с EC2 на RDS) и обе связаны друг с другом
- 1 экземпляр RDS и его автоматическое резервное копирование успешно созданы.
Тестирование
2. Использование VPC по умолчанию
В этом случае соединение должно быть успешно установлено, поскольку он имеет CIDR, достаточно большой для создания новой подсети /24
в каждом AZ для RDS, которая является /16
.
3. Использование пользовательского VPC с CIDR меньше, чем /22
Результат неудачен. Почему? Потому что /23
можно разделить только на 2 /24
. Смотрите следующую диаграмму!
В этом случае экземпляр RDS DB все еще создан, но он использует VPC по умолчанию, который находится в другой подсети, чем EC2.
2 новые группы безопасности также созданы RDS для нового VPC, но только группа безопасности для EC2 подключена должным образом, потому что RDS использует группу подсети по умолчанию в VPC по умолчанию, которая не настроена на разрешение входящего трафика с порта 3306 EC2 на RDS.
В: Тогда, как заставить это работать?
A: Мы не можем этого сделать, потому что мы не можем изменить VPC как RDS, так и EC2.
но
Если вы следовали моему сценарию номер 2, он создал экземпляр EC2 и RDS в одном VPC, который является VPC по умолчанию, и у него уже есть 2 группы безопасности, созданные RDS. Поэтому в этом случае все, что мы можем сделать:
- «Переместить» экземпляр EC2 в VPC по умолчанию, где размещен RDS. Вы можете создать новый AMI из существующего экземпляра EC2 или создать новый экземпляр. В данный момент я буду использовать экземпляр EC2, созданный в сценарии номер 2, который размещен в VPC по умолчанию, и группа безопасности, созданная RDS, уже прикреплена к экземпляру EC2.
- Измените текущую группу подсети RDS DB на другую группу подсети в том же VPC. В данном случае это VPC по умолчанию, созданный в сценарии номер 2.
Итак, мы закончили со всеми сценариями!
Очистка
Сценарий 1 (пользовательский VPC)
- Удалите экземпляр RDS DB
- Удалите группу подсетей RDS DB
- Завершить работу экземпляра EC2
- Удалить VPC
Сценарий 2 (VPC по умолчанию)
- Удалить экземпляр RDS DB
- Удалить группу подсетей RDS DB
- Завершить работу экземпляра EC2
- Удалите группы безопасности, созданные RDS (пожалуйста, удалите правила, связанные друг с другом, прежде чем удалять их)
- Удалить таблицу маршрутизации для подсетей, созданных RDS
- Удалить подсети, созданные RDS
Сценарий 3 (такой же, как и сценарий 1)
На этом пока все! Спасибо, что пришли, и я с нетерпением жду ваших отзывов. Следите за мной, чтобы получать уведомления о публикации новых статей!