2014-11-03 2 views
2

Opsworks에서 실행중인 Rails 애플리케이션을 Elasticache Redis 레이어에 연결하려고합니다. 방금 ​​작동하지 않습니다.Opsworks : Rails 레이어를 Elasticache에 연결 : Redis

내 현재의 구성 :

1 스택 (이 개 경우)
레이어
- 레일 응용 프로그램 서버 - MySQL의

레일의 앱이 AWS-OpsWorks-Rails-App-Server 보안 그룹에 있습니다.

1 ElasticCache 클러스터 ES 클러스터가 default security sg-ff58559a (VPC)(active) 보안 그룹에 있습니다.

연결을 시도하려면 '주 엔드 포인트'을 사용하고 있습니다.

이 값은
ElastiCache> 복제 그룹
대시 보드에서 볼 수있다.

그것은이 유사하게 나타납니다 내 레일 콘솔에서
<name>.oveuui.ng.0001.use1.cache.amazonaws.com:6379

(레일 층에 SSH 후) 나는 시도 :

>r = Redis.new(:url => 'redis://<name>.oveuui.ng.0001.use1.cache.amazonaws.com:6379') 
>r.connected 

결과입니다 :

Redis::CannotConnectError: Timed out connecting to Redis on... 

답변

3

Amazon에서는 Elasticache 서버와 동일한 보안 그룹의 서버 만 대화 할 수 있습니다.

이 블로그 게시물은 오른쪽 보안 그룹에 레일 서버 레이어를 추가하는 과정을 안내합니다 : http://aws.amazon.com/blogs/aws/using-aws-elasticache-for-redis-with-aws-opsworks/. Elasticache 클러스터를 만들었을 때 "기본"보안 그룹을 선택했다고 가정합니다. 그렇다면 OpsWorks -> (오른쪽 스택 선택) -> Layers로 이동하여 Rails App Server 레이어의 보안을 클릭하십시오. 이 표시되어야합니다 : 당신은 당신이 "기본"보안 그룹을 추가 한 다음 인스턴스를 다시 시작했는지 확인하려면

. 내가 이것을했을 때, 그것은 여전히 ​​효과가 없었던 것에 유의해라. EC2 콘솔 (OpsWorks 콘솔 대신)에서 내 인스턴스의 세부 사항을 살펴보기로 결정 했으므로 레이어에 추가 한 새 "기본"보안 그룹이 실제로 인스턴스에 전파되지 않았 음을 알았습니다. 이유가 무엇인지 모르겠으므로 인스턴스를 삭제하고 완전히 새로운 인스턴스를 만들었습니다.이 새 인스턴스에는 "AWS-OpsWorks-Rails-App-Server"및 "기본"보안 그룹이 성공적으로 적용되었습니다 . 상황이 즉시 작동하지 않고 인스턴스를 클릭하여 설정을 확인하고 두 보안 그룹이 모두 표시되는지 확인하십시오.

이 기능이 작동하는지 알려주세요.

5

Amazon VPC (Amazon Virtual Private Cloud)에 클러스터를 시작한 경우 동일한 Amazon VPC에서 실행중인 Amazon EC2 인스턴스에서만 ElastiCache 클러스터에 연결할 수 있습니다. 이 경우 클러스터에 네트워크 진입을 허용해야합니다. Amazon VPC 보안 그룹의 네트워크 진입을 클러스터에 허용하려면 다음을 수행하십시오.

1. AWS 관리 콘솔에 로그인하고 https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니 다.

2. 왼쪽 탐색 창의 네트워크 & 보안 아래에서 보안 그룹을 클릭합니다.

3. 보안 그룹 목록에서 Amazon VPC의 보안 그룹을 클릭하십시오. 새로운 ElastiCache 사용자 인 경우이 보안 그룹의 이름은 default로 지정됩니다.

4. 인바운드 탭을 클릭하고 다음을 수행하십시오.

a. 편집을 클릭하십시오.

b. 규칙 추가를 클릭하십시오.

c. 유형 열에서 사용자 정의 TCP 규칙을 선택하십시오.

d. 포트 범위 상자에 캐시 클러스터 노드의 포트 번호를 입력합니다. 이 x 호는 클러스터를 시작할 때 지정한 x 호와 같아야합니다. 기본 포트는 다음과 같습니다.

Memcached: port 11211 

Redis: port 6379 

e. 소스 상자에서 Amazon VPC에서 실행하는 Amazon EC2 인스턴스가 ElastiCache 노드에 연결할 수 있도록 포트 범위 (0.0.0.0/0)가있는 모든 위치를 선택하십시오.

f. 저장을 클릭하십시오.

http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/GettingStarted.AuthorizeAccess.html

+0

이것은 정확하게 내 문제입니다. 감사합니다! –