не удалось подключить aws elasticache redis из приложения .net

Я подключаю приложение .NET core к AWS ElastiCache Redis. введите здесь описание изображения

AWS Elasticache Redis работает, и порт 6329 открыт для группы безопасности. В клиентском коде используется StackExchange.Redis:

           var redis = ConnectionMultiplexer.Connect("redis-1.xxxx.0001.use1.cache.amazonaws.com:6379");
           //var redis = ConnectionMultiplexer.Connect("localhost"); //working
           IDatabase db = redis.GetDatabase();

            string value = "abcdefg";
            db.StringSet("mykey", value);        

            string value2 = db.StringGet("mykey");
            Console.WriteLine(value2); // writes: "abcdefg"

            Console.ReadLine();

Исключение составляет:

Не удалось подключиться к серверам Redis. UnableToConnect на redis-1.xxx.0001.use1.cache.amazonaws.com:6379/Interactive, Initializing / NotStarted, last: NONE, origin: BeginConnectAsync, выдающийся: 0, последнее чтение: 5 секунд назад, последняя запись: 5 секунд назад, keep-alive: 60s, состояние: Connecting, mgr: 10 из 10 доступных, last-heartbeat: never, global: 0s ago, v: 2.0.601.3402

Добавлен в ,abortConnect=false к конечной точке, я могу подключиться.

Теперь ошибка на StringSet

StackExchange.Redis.RedisConnectionException: 'Нет подключения для обслуживания этой операции: SET mykey; Невозможно подключиться ...

Код .NET отлично работает с моей локальной службой Redis, поэтому похоже, что что-то не так с моей настройкой AWS.

Успешно ssh в мой экземпляр EC2 и redis-cli в мою службу Redis AWS:  введите описание изображения здесь

Есть идеи, пожалуйста?

ПРИМЕЧАНИЕ. AWS Elasticache Redis по умолчанию НЕ доступен для общего доступа.


person beewest    schedule 14.03.2020    source источник
comment
Может, попробовать подключиться к серверу с помощью redis-cli со своей рабочей станции?   -  person Trinopoty    schedule 14.03.2020
comment
успешно подключите ssh к экземпляру ec2 и запустите redis-cli вместо моей службы redis aws. Но все равно не удалось выполнить запуск приложения .net (docs.aws. amazon.com/AmazonElastiCache/latest/red-ug/)   -  person beewest    schedule 14.03.2020
comment
Чтобы было ясно, вы получаете эту ошибку, когда развертываете свой код в том же экземпляре EC2? В этом случае проблем быть не должно, так как redis-cli может подключиться нормально.   -  person Trinopoty    schedule 14.03.2020
comment
Я запускаю код .net со своей машины. Думали, redis-1.xxxx.0001.use1.cache.amazonaws.com:6379 общедоступен через группу безопасности (TCP \ 6379 для всех IP-адресов)?   -  person beewest    schedule 14.03.2020
comment
Попробуйте подключиться к серверу Redis со своего компьютера, а затем с помощью redis-cli, а не из EC2.   -  person Trinopoty    schedule 14.03.2020
comment
Кроме того, если у вашего кластера Redis нет общедоступного IP-адреса, вы не сможете подключиться к нему удаленно, даже если у вас включены соответствующие правила. Так что проверьте это, возможно. Трудно сказать, не зная фактического имени хоста.   -  person Trinopoty    schedule 14.03.2020
comment
Не удалось запустить redis-cli для redis-1.xxxx.0001.use1.cache.amazonaws.com:6379 с моей машины.   -  person beewest    schedule 14.03.2020
comment
Позвольте нам продолжить это обсуждение в чате.   -  person Trinopoty    schedule 14.03.2020


Ответы (1)


Вопрос: «... порт 6329 открыт в группе безопасности ..» Вы не имеете в виду 6379?

Даже в этом случае, я думаю, у меня есть проблема с группами подсети "по умолчанию".

Имеется ли в VPC_Subnet (в этой группе), где находится AWS ElastiCache Redis, таблица маршрутизации с доступом к Интернет-шлюзу? Если нет, вам нужно присоединить InternetGteway к таблице маршрутов, а затем использовать эту таблицу маршрутов в нужной подсети.

Это должно быть похоже на выбор: Internet GW

person b4ld    schedule 15.03.2020