2017-12-07 7 views
1

EC2 인스턴스에 설치된 Laravel 응용 프로그램의 ElastiCache Redis 또는 EC2 인스턴스의 redis-cli에 연결하는 데 문제가 있습니다.AWS ElastiCache Redis가 redis-cli의 Laravel nad에서 연결할 수 없습니다.

Laravel

나는

'redis' => [ 
    'client' => 'predis', 
    'default' => [ 
     'host' => env('REDIS_HOST', '127.0.0.1'), 
     'password' => env('REDIS_PASSWORD', null), 
     'port' => env('REDIS_PORT', 6379), 
     'database' => 0, 
     'read_write_timeout' => -1, 
     'timeout' => 0 
    ], 
], 

처럼 database.php에서 구성으로 predis를 사용하려고 만 'client' => 'phpredis'을 변경 내가 같은 구성으로 phpRedis 확장에 노력

'Error while reading line from the server. [tcp:server here]'을 가지고 오류가 발생했습니다. read error on connection {"exception":"[object] (RedisException(code: 0): read error on connection at vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php:69)

레디 스 CLI를

사용 레디 스는 redis-cli -h host_here -p 6379 -a password_here 내가 host:6379> 같은 프롬프트가 있지만 명령을 입력하면 발생 오류 Error: Connection reset by peer

ElastiCache 레디 스 구성 내 EC2 탄성 캐시에

enter image description here

를 CLI를 참조 동일한 VPC와 telnet을 사용하여 redis 인스턴스에 연결할 수 있습니다.

~$ telnet host 6379 
Trying 172.31.23.113... 
Connected to host. 
Escape character is '^]'. 

어떤 도움을 주셔서 감사합니다!

+0

흠, 내가 AUTH없이 새로운 redis 인스턴스를 만들 때 작업을 시작했습니다. 하지만 여전히 문제가 있습니다. 이유는 AUTH에서 작동하지 않습니다. –

+0

이 문서를 한 번 확인해 주시겠습니까 --https : //docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/auth.html? –

답변

1

나는 이것이 꽤 오래되었다는 것을 알고 있지만 나는 똑같은 문제를 직접 가지고 있었다. 누구든지이 문제가 발생하면 herehere 해결책을 참조하십시오.

AWS Elasticache에서 Encryption in-transit을 사용하면 TLS 연결을 지원하지 않으므로 redis-cli를 사용할 수 없게되는 것 같습니다. 다른 클라이언트로 전환하면 효과가 있습니다. 이 answer에는 TLS 사용 클라이언트 목록이 있습니다.

편집

:

좀 더 파고를하고 stunnel를 사용하여 당신의 연결을 포장 수 있다는 것을 발견 레디 스-cli를 SSL을. 그것을 수행하기위한 지침은 Here입니다.