Соединения с базой данных сохраняются после изменения группы безопасности
Мы настроили систему для отправки сообщения в очередь в SQS, когда происходит сбой в зависимости. Чтобы смоделировать сбой и протестировать систему, я заблокировал исходящий порт для базы данных в группе безопасности, но обнаружил, что экземпляру ec2 все же удалось получить данные через соединения JDBC из базы данных, даже после того, как порт был заблокирован в течение некоторого времени. время (более 10 минут, менее двух часов).
В чем дело? Предполагается, что изменения в группах безопасности вступят в силу немедленно, но я предполагаю, что это связано с тем, что не отключаются активные соединения?
Есть ли лучший способ смоделировать отключение, если мы не хотим на самом деле закрыть базу данных?
1 ответ
Изменения правил группы безопасности вступают в силу практически сразу.
Однако, что позволяют правила, так это установление связей. Когда соединение установлено, сеть запоминает кортеж соединения (протокол, адрес источника / адресата, порт источника / адресата), и соединение может продолжать существовать, поскольку оно уже создано.
Сетевые ACL, напротив, не имеют состояния. Блокирование соединений с сетевым списком ACL должно иметь тот эффект, который вы ищете, хотя, возможно, не совсем то же самое, потому что база данных может давать сбой несколькими способами, которые могут проявляться по-разному.
Когда сетевые списки ACL запрещают трафик (или группы безопасности запрещают новые подключения), это приводит к истечению времени ожидания - поскольку отклоненные пакеты просто отбрасываются, отбрасываются, и сообщение не отправляется в обратном направлении, что указывает на наличие черной дыры в сети.
Напротив, реальные сбои могут поочередно приводить к сетевым ошибкам, таким как "целевой хост недоступен" или "соединение отклонено" или "соединение сброшено узлом". Каждый из этих отказов должен быть более быстрым, чем тайм-ауты, и нет способа смоделировать их в инфраструктуре VPC.
Но имитация сбоя с таймаутами должна быть очень стоящим тестом, и сетевые ACL должны облегчить это.
Обратите внимание, конечно, что если вы все еще в состоянии установить новые соединения с группой безопасности, якобы блокирующей трафик, то поведение вашей группы безопасности будет не таким, как вы считаете.