EC2에서 장애 조치를 어떻게 자동화합니까?


13

자체 클러스터를 관리하는 사람들 (즉, Amazon Autoscale, Rightscale, Scalr 등을 사용 / 결제하지 않음) 중에서 EC2에서 인스턴스를 어떻게 관리하고 페일 오버를 처리하고 있습니까? 내가 생각하는 것처럼 대부분의 사람들이 EC2 API에 대해 자체 스크립트로드를 작성하는지 궁금합니다.

이것이 바로 우리의 접근 방식입니다. 오프 사이트에서 실행되고 인스턴스에서 UDP 연결 유지를 수신하는 자체 Python Boto 기반 모니터링 / 재시작 데몬을 채 웁니다. 실패시 볼륨 스냅 샷, 이미지 등록, 새 인스턴스 시작, 이전 볼륨 삭제 등이 수행됩니다.

종종 스크립트를 해킹 할 때 이러한 문제를 해결하고 Scalr의 제약이없는 오픈 소스 도구가 있어야한다고 생각하지만 항상 Google에서 돌아옵니다. 빈손. Scalr과 같은 기능은 지원되는 소프트웨어 세트 / 버전 / 구성에있어 상당히 제한적이며 이러한 설정을 조작하는 특수하고 IMO가 번거로운 방법이 있습니다.

또한 Linux-HA / Pacemaker 에코 시스템 (Heartbeat, ldirectord 등) 은 실제로 EC2에 적합하지 않은 것처럼 들립니다 . (그러나 나는 발견 - 아니에요하지만 확인이 정말 높은 품질의 솔루션입니다).

답변:


5

글쎄, 나는 명백한 것을 말하려는 것이 아니라 일반적인 아이디어는이 복잡성을 아마존이 관리하는 서비스로 밀어 넣는 것입니다.

따라서 프론트 엔드에서는 Amazon Elastic Load Balancing (ELB)을 사용하여 고 가용성로드 밸런싱을 제공합니다. 후면에는 스토리지에 Amazon Relational Database Service (호스트 MySQL), SimpleDB 및 S3을 사용합니다. 이 모든 것은 Amazon에서 관리하며 일종의 고 가용성 / 페일 오버 처리를 포함합니다.

이로 인해 일반적으로 웹 응용 프로그램 서버와 사용중인 일반적인 서버 유형 (렌더링 서버, 자체 설치된 NoSQL 데이터 저장소 등)이 남습니다.

Webapp 서버는 일반적으로 ELB에 내장 된 상태 확인을 통해 충분히 처리됩니다. 하나의 webapp 서버가 다운 될 때 약간의 성능 저하를 수용하거나 필요 이상으로 +1 서버를 지속적으로 프로비저닝 할 수 있습니다. 또는 구성이 간단하면 웹앱 서버에 장애가 발생하면 Cloudwatch와 함께 ELB가 자동으로 새 웹앱 서버를 생성 할 수 있습니다.

자신의 사용자 정의 서버는 또 다른 문제입니다. 이를 위해, 당신은 스스로하고 있으며, 응용 프로그램 내장 메소드를 사용하거나 사용자 정의 스크립트 / 오픈 소스 HA 도구로 테이프를 덕트해야합니다.

Rightscale의 솔루션을 구매하면 비용이 너무 많이들 수 있습니다. 그러나 고 가용성이 필요한 경우 ELB, 기본 CloudWatch 경고 (현재 5 분 동안 무료) 또는 AutoScale과 같은 저렴한 Amazon 도구는 그만한 가치가 있습니다.


3
우리는 AWS 기능 세트와 그 한계에 대해 잘 알고 있습니다. 첫 번째 예를 들기 위해 ELB는 CNAME RR을 통해 액세스되며, 이는 SOA RR과 공존 할 수 없으므로 TLD를 제공 할 수 없으며 정적 IP를 통해 액세스 할 수 없습니다. 두 번째 예를 들어 보면 RDS는 MySQL이며 이는 큰 한계입니다. 그렇습니다. 우리는 자체 머신 유형의 장애 조치를 자동화하는 데 관심이 있습니다. 예, 프라이빗 클라우드 배포는 우리와 관련이 있습니다. 네, 궁금합니다. 기타
Yang

2
@ 양 : 질문을 더 신중하게 말하고 답을 입력하는 데 따르는 어려움을 덜어주었습니다. HA에 대한 모든 규모의 솔루션은 없습니다. 문제의 서비스, 상태 유지 방법, 프로토콜 장애 조치 속성 등에 따라 다릅니다. EC2에서 일반적인 IP 레벨 HA 도구를 사용할 때의 한계 / 어려움에 대해 맞습니다. 그러나 "HA on AWS"에 보편적으로 적용되는 단일 답변은 없습니다.
Jesper M

0

RightScale에는 EC2에서 장애 조치를 자동화하는 방법에 대한 훌륭한 기사 가 있습니다. 대부분은 RightScale 자체를 사용하여 수행하는 방법을 보여 주지만 원칙은 일반적이며 EC2에서 장애 조치 아키텍처를 설정하는 방법을 생각하는 모든 사람에게 도움이 될 것입니다.


0

설명하는 문제 (HA, 사용자 지정 서버 모니터링, '덕트 테이핑'서비스)는 일반적으로 PaaS 공급자가 처리합니다. Rightscale과 Scalr은 이전 답변에서 이미 언급되었으며 추가 좋은 옵션이 있습니다 (일부 PaaS 옵션은 여기 참조).

/programming/9542784/looking-for-paas-providers-recommendations )

어떤 제공자가 필요한 것에 가장 잘 맞는지 고려해야합니다.

고지 : 공개 소스 PaaS 제공 업체 인 cloudify에서 일하고 있습니다.


0

필자는 최근 엔지니어링 블로그 에서 Auto Scaling과 함께 ELB를 사용하여 모든 종류의 앱에서 자동 장애 조치를 수행하는 방법에 대한 게시물을 작성 했습니다 . ELB 상태 확인을 사용하여 앱 상태를 핑하고 자동 조정 작업을 트리거하는 방법에 대해 설명합니다.


0

두 서버 모두에 하트 비트 설치 '활성'서버에 탄력적 IP 연결 탄력적 IP를 얻기 위해 API 요청을 시작하여 장애 조치를 수행하도록 스크립트를 구성합니다. '대기'서버가 탄력적 IP ( 마스터 / 액티브가 될 수 있습니다.

여기에 제공 할 세부 사항이 없습니다.


-1

아마존은 이미 Elastic Load Balancing을 제공하고 있습니다 . 왜 휠을 재발 명해야합니까?


3
ELB의 다양한 한계 때문에? CNAME이 필요하고 foo.com과 www.foo.com을 모두 제공 할 수 없기 때문에? 사용자 지정 일정 논리를 구현하고 싶습니까? 신뢰할 수없는 VM 클러스터에서 ELB를 어떻게 구현했는지 궁금하기 때문입니다. 선택해라.
Yang

@ 양, 데이터 센터의 서버 인 경우와 동일한 방식으로 수행합니다. 근본적인 차이가 없으며 클라우드 환경을 만드는 마술 소스도 없습니다.
Chris S
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.