2012-07-09 2 views
0

저는 Java 개발자이며 AWS, Rackspace 및 Heroku를 잠재적 인 클라우드 공급자로 고려하고 있습니다. 이전의 웹 호스트 (가상 전용 서버 계획) 와만 작업했기 때문에 나는 압도 당했다.클라우드에서 동적 클러스터 크기 조정

클라우드를 사용하면 가상 어플라이언스 (응용 프로그램 서버, 데이터베이스 서버 등의 미리 구성된 소프트웨어 스택이있는 가상 시스템)를 필요에 따라 생성/종료 할 수 있습니다. 따라서 한밤중이나 휴일과 아무도 내 앱을 사용하지 않는 경우 실행중인 인스턴스의 수를 줄이고 비용을 절약 할 수 있습니다. 그러나 토요일 오전에 피크로드가 위험 할 정도로 가까워지면 새로운 서버를 생성하고 앱이 다운되지 않을 것이라는 확신을 가질 수 있습니다.

내 이해가 잘못되었거나 결함이있는 경우 먼저 저를 시정하십시오!

구름에 대해 좀 더 정확하다고 가정하면 갑자기 증가/감소/앱 사용 패턴을 볼 수있는 자체 모니터를 만들어야합니다. (네트워크 트래픽과 대역폭을 기반으로합니다.)). 트래픽이 특정 지점까지 증가하면 트래픽이 줄어들면 더 많은 VM을 인스턴스화해야하며 반대의 경우도 마찬가지입니다.

JClouds에서이 작업을 수행 할 수 있으므로 내 모니터는 JClouds API를 사용하여 서버를 스폰/종료합니다.

내가 질식시키는 이유는 다음과 같습니다. 모니터를 알리기 위해 어떤 알고리즘/수식을 사용해야합니까? 나는 기본적으로 내가 필요로하는 "마력"(VM)을 두 배로 확보 할 수있는 임시 알고리즘을 작성했습니다. 모니터는 각 노드를 약 10 초마다 폴링합니다. 시스템의 현재로드가 특정 델타만큼 변경되면 이 실행되어 더 많거나 적은 노드가 필요한지 여부를 결정합니다.

동적 크기 조정 시스템의 개요/스켈레톤을 설계하는 데 몇 시간을 보냈지 만 불필요한 작업을 수행 할 때를 대비하여 나 자신보다 너무 앞서 가기 전에 중단하고 싶었습니다. 잘못되었거나 단순한 미친!

다른 클라우드 응용 프로그램은 어떻게 VM을 모니터링하고 크기를 조정합니까? 어떤 알고리즘이나 모범 사례를 알고 있어야합니까? 미리 감사드립니다!

답변

0

아마존 EC2에서는 직접 모니터링을 구현할 필요가 없습니다. 탄성 스케일링을 수행하는 cloudwatch이라는 기능이 있습니다. 부하가 증가하면 자동으로 스케일 업하고, 감소하면 자동으로 스케일을 조정합니다. 따라서 직접 모니터링 서비스를 구현할 필요가 없습니다. RackSpace에는 Scalr이라는 자동 스케일링을위한 타사 솔루션이 있습니다. Amazon의 CloudWatch와 동일한 기본 RackSpace 기능이있을 수 있으므로이 인프라를 처음부터 새로 구축하지 말고 조사해야합니다.