2012-10-04 2 views
0

그래서 레일 애플리케이션이 있습니다. 현재 프론트 엔드 및 백엔드 + 데이터베이스로 분리되어 실행됩니다.EC2에서 Rails 애플리케이션 크기 조정. 이것이 올바른 방법일까요?

여러 백엔드 서버로 확장하려면 규모를 조정해야합니다.

백 엔드 서버에는 백그라운드 프런트 엔드 작업이 실행 중이며 (사용자 프런트 엔드 요청에 의해 생성 됨) 또한 콜백에 크게 의존합니다.

난 다음 설치를 계획하고 :

|front-end| --- |load-balancer (haproxy or AWS ELB)| --- Server 1 ---- Postgresql Database (+++ other DBs added via replication later if needed) 
                \___ Server 2 ---/ 
                    ++ (other servers added in the same fashion later) 

나는이 경우 별도의 시스템에 데이터베이스를 넣어를 해결하는 방법에 대해 우려를 가지고있다.

1) 초기 백엔드와 동일한 스키마로 새로운 빈 Rails 앱을 만들려고합니다. 실행하고 HTTP를 통해 업데이트/게시물을 수락하고 원격 SSH를 통해 연결 유지 (백엔드에서 after_commit 콜백 트리거). 더 좋은 생각인가요?

2) 필자는 PostgreSQL을 사용하여 필요할 때마다 엔터프라이즈 DB로 전환하려고합니다. 현재 데이터베이스를 처리하지 않는 백엔드 부분을 확장하는 것이 필요합니다.

3)이 방법이 확장 가능한 것처럼 보입니까?

+0

추가 백엔드 서버를 설치하고로드 밸런서에 추가해야하는 이유가 무엇이라고 생각하십니까? –

답변

1

귀하의 질문에 대한 답변을 잘 모르겠습니다. 일반적으로 프로덕션 응용 프로그램에서는 데이터베이스 계층이 응용 프로그램 계층과 별개입니다. 나는 이것이 당신과 관련이 있는지 확실히 말할 수는 없지만 확실히 흥미로운 시계입니다. http://vimeo.com/33263672. 레일과 db 레이어 사이에 redis 레이어를 사용하여 큐잉을 촉진하고 가동 중단 시간을 최소화하는 방법에 대해 설명합니다. 두 번째 레일 스택을 사용하는 것보다 더 나은 솔루션이 될 것 같습니다. 나는 이것이 다음과 같이 보일 것이라고 생각한다;

| ELB | 웹 서버 | ELB | 응용 프로그램 서버 | RRDNS | Redis 서버 | PostGreSQL 서버 |

귀하의 의미를 이해하는 경우. 그렇지 않은 경우 해당 비디오 링크는 여전히 가치가 있습니다.

관련 문제