나는 하나의 마스터 - 여러 슬레이브 방식으로 로 조직 된 EC2의 클러스터에서 실행해야하는 오픈 소스 툴에서 작업하고 있습니다. 나는 사물을 올바로 조직하고 가장 간단하면서도 신뢰할 수있는 방법으로 조언하는 방법이 필요합니다.EC2에서 클러스터를 설계하는 올바른 방법
은 내가 기본적으로 필요한 것은 (사용자가 수동으로 실행되는) 마스터 인스턴스에서 실행되는 코드이며 다음을 수행하십시오
가) 실행 N 슬레이브 인스턴스 (N은 사용자로부터 온)
B) 각 인스턴스가 실행되고 실행 된 후 SSH로 연결하고 무언가를 시작하십시오. 슬레이브 인스턴스가 실패 할 경우
C))) 단순히 핑 예에 의해 (살아 있다는 슬레이브 인스턴스에
D를 계속 추적 -이 종료되어 있는지 확인, 실행 또 다른 하나의 단계를 반복 B)를
전자) 사용자 종료 슬레이브 인스턴스의 신호.
모든이 매우 단순하고 간단 보인다 아직 나는 몇 가지 질문이 있습니다
1) 준비 솔루션을. 먼저 Zookeeper을 살펴 보았습니다. 그러나 나는 그 복잡성에 겁 먹었습니다. 그것은 내가 필요로하는 그런 간단한 일을 위해 과도한 것 같다. 내가 발견 한 또 다른 것은 StarCluster이다. 파이썬에서도 훌륭하다. (내 도구는 파이썬이기도하다.)하지만, 내가 필요한 것 (추적, 재방송 인스턴스 유지)을하지는 못한다. 내 질문은 : 내가 알지 못하는 간단한 도구, 라이브러리, 프레임 워크가 있습니까?
2) 또 다른 방법은 직접 구현하는 것입니다. 여기에있는 질문은 : 내가 모르는 내 문제의 함정이 있습니까? 모든 것이 간단 해 보입니다. 몇 가지 API 호출과 일부 일반 핑이 있지만 여기에 표시되지 않을 수도 있으므로 이미 작성된 도구를 사용하는 것이 정말 옳은가요?
3) 혼자서 코딩하는 경우, 문제는 CloudWatch를 사용하는지 아닌지입니다. 내부 계산 클러스터를 관리하는 데 실제로 차이가 있습니까? 아니면로드가 많은 사이트 등을 돕는 것이 더 낫습니다.
4) 간단한 아키텍처는 마스터 노드 오류로부터 보호되지 않습니다. 사용자가이를 실행 한 다음 웹 인터페이스를 통해 연결하고 클러스터를 실행하지만 마스터 노드에 장애가 발생하면 모든 것이 손상됩니다. 슬레이브는 마스터 노드의 존재를 확인하고 마스터 노드가 실패 할 경우 자신을 종료 할 수 있습니다. 이것은 헤드리스 실행 돈을 소비 클러스터에서 일부 보호를 추가하지만, 그것은 우아한 재시동의 문제를 해결하지 않습니다. 어떻게 해결할 수 있을까요?
5)이 프로젝트를 코딩하기 전에 알아야 할 중요한 내용이나 중요한 내용이 있습니까?
미리 감사드립니다.