2011-08-24 3 views
5

EC2에서 사이트를 다시 방문하고 (~ 5mm + 하루 방문), 다른 데이터 센터에 노드를 배치하는 방법에 대해 혼란스러워합니다. 가장 기본적인 설정은 Varnish 서버 뒤에있는 두 개의 노드입니다.EC2 가용 영역을 사용하는 가장 좋은 방법은 무엇입니까?

공유 RDS 데이터베이스와 통신하는 WWW 노드가있는 서로 다른 가용 영역에 두 개의 Varnish 인스턴스가 있어야합니까? 각 Varnish 인스턴스는 Amazon의로드 밸런서를 사용하여로드 균형을 조정할 수 있습니다. 같은

뭔가 :

1로드 밸런서는 이야기 : 회담 버지니아

  • 니스, 자신의 노드 자체 회담 캘리포니아
  • 니스-X 미국 동부 us-west-x 노드

여러 데이터 센터에 배치하는 것이 새로운 개념이므로 모든 도움을 주시면 감사하겠습니다! 감사!

답변

7

로드 균형 조정과 내결함성을 위해 amazon EC2를 광범위하게 사용합니다. Amazon에서 제공하는 LoadBalancers를 광범위하게 사용하지는 않지만 Amazon 외부에서 실행되는 자체로드 밸런서를 보유하고 있습니다. 아마존은 LoadBalancers가 절대로 쓰러지지 않을 것이라고 약속하지만, 내부적으로는 내결함성이 있지만, 충분히 잘 테스트하지는 않습니다.

일반적으로 가용성 영역 당 두 개의 인스턴스를 호스팅합니다. 하나는 실제 서버에 미러링 서버 역할을합니다. 서버 중 하나가 다운 된 경우 고객을 다른 고객에게 보냅니다. 그러나 최근에 아마존은 단일 가용성 영역이 상당히 자주 무너지는 패턴을 보여주었습니다.

제가 생각하는 현명한 기술은 앞에서 언급 한 것처럼 가용성 영역 전체에 서버를 설치하는 것입니다. 우리는 포스트그레스를 사용하므로 인스턴스에서 데이터베이스의 내용을 복제 할 수 있습니다. 9.0에는 양방향 복제를위한 훌륭한 바이너리 복제가 있습니다. 이렇게하면 두 서버 모두 가동시 부하를 사용할 수 있지만 가용성 영역이 다운되면 모든 사용자가 하나의 서버로 전송됩니다. 공통 데이터베이스가 사용 가능하기 때문에 사용자가 어디로 갈지는 중요하지 않습니다. 잘못된 서버로 이동하면 약간의 속도 저하가 발생합니다.

이 방법을 사용하면 웹 사이트를 직렬 업데이트 할 수 있습니다. 하나를 업데이트하여 제대로 실행되고 있는지 확인한 후 다음을 업데이트하십시오. 따라서 서버가 업그레이드에 실패하더라도 전체 웹 사이트는 항상 작동합니다.

+0

하나의 가용성 영역이 다운 될 때 고객을 다른 서버로 어떻게 보냅니 까? – Carson

+0

사용자 정의로드 밸런서는 매분로드 체크를 서버에서 수행합니다. 우리는 하위 도메인 URL을 사용하여 고객을 안내합니다. 따라서 클러스터가 다운 된 경우 다른 하위 도메인 URL을 보내 게됩니다. 아마존로드 밸런서는 추상화 계층 역할을하며 HTTP 요청을 서버에 내부적으로 라우팅합니다. 서버에서 웹 페이지를 요청하여 매 10 초마다 사용 가능 여부를 확인합니다. blank.html을 넣을 수 있습니다. 인스턴스가 다운되면 amazon은이 서버에 요청을 보내지 않습니다. – arunmur

관련 문제