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