Для доступа к AWS ресурсам мы должны использовать пользовательскую конечную точку, указывающую на NLB, и использовать IP / порт ресурса в качестве целевой группы NLB. Например, возьмем Redis:
Redis -> Target Group -> NLB -> Endpoint -> DC(internal)
Для простого Redis, т.е. режим кластера отключен, у нас нет проблем, так как мы можем поместить IP / порт Primary endpoint
в целевую группу, но при включенном режиме кластера мы получим конечную точку конфигурации и обработаем * 1005. * перенаправляет нам Redis для рекламы нашей конечной точки, к которой клиенты могут получить доступ из нашей внутренней сети, с этого момента Redis будет объявлять внутренний IP / порт, к которому у нас нет внутреннего доступа.
Чтобы изменить это поведение, мы наткнулся на следующие параметры:
cluster-announce-ip
cluster-announce-port
cluster-announce-bus-port
replica-announce-ip
replica-announce-port
Поскольку мы не можем изменить параметры AWS управляемого ElastiCache, мы рассматриваем возможность развертывания Redis Cluster на экземплярах EC2. Будет полезно, если кто-то сможет нам помочь с вопросами ниже:
1 . Мы смогли установить IP / порт конечной точки, используя параметры объявления кластера, но как как только мы добавляем их, узел отключается от кластера, поскольку этот адрес не разрешается внутренне. Разве мы не можем объявить несколько адресов, один для внутренних, а другой для внешних клиентов?
2 . Каким должно быть значение cluster-announce-bus-port
?
3 . Как будет работать репликация, если наша конечная точка недоступна во внутренней сети AWS?
4 . Где мы должны использовать replica-announce-ip
и replica-announce-port
, только на репликах? Поскольку после отработки отказа или какой-либо другой проблемы мастер также может быть репликой. Какое значение должно быть у них?
Итак, для подведения итогов нам понадобится кластер Redis, развернутый в экземплярах EC2, для объявления IP / порта, предоставленного нами. и Репликация должна работать должным образом, учитывая, что IP (нашей конечной точки) не разрешается внутренне для экземпляров EC2. Дайте мне знать, если вам нужна дополнительная информация.