AWS에서의 구현
AWS에서 Amazon Elastic Compute Cloud(Amazon EC2), Amazon EC2 API, 탄력적 IP 주소의 핵심 기능과 Amazon EC2의 보조 프라이빗 IP 주소 지원을 사용하여 이 패턴을 구현할 수 있습니다.
-
프라이머리 노드와 세컨더리 노드의 역할을 맡을 두 개의 EC2 인스턴스를 시작합니다. 프라이머리 노드는 기본적으로 활성 상태로 간주됩니다.
-
추가 보조 프라이빗 IP 주소를 기본 EC2 인스턴스에 할당합니다.
-
가상 IP(VIP)와 유사한 탄력적 IP 주소는 보조 프라이빗 주소와 연결됩니다. 이 보조 프라이빗 주소는 외부 엔드포인트가 애플리케이션에 액세스하는 데 사용하는 주소입니다.
-
보조 IP 주소를 기본 네트워크 인터페이스에 별칭으로 추가하려면 약간의 OS 구성이 필요합니다.
-
애플리케이션을 이 탄력적 IP 주소에 바인딩해야 합니다. Asterisk 소프트웨어의 경우 고급 Asterisk SIP 설정을 통해 바인딩을 구성할 수 있습니다.
-
각 노드에서 모니터링 스크립트(사용자 지정, Linux 기반 KeepAlive, Corosync 등)를 실행하여 피어 노드의 상태를 모니터링합니다. 현재 활성 노드에 장애가 발생하면 피어는 이 장애를 감지하고 Amazon EC2 API를 호출하여 보조 프라이빗 IP 주소를 자신에게 재할당합니다.
-
따라서 보조 프라이빗 IP 주소와 연결된 VIP에서 수신 대기하던 애플리케이션은 엔드포인트에서 대기 노드를 통해 사용할 수 있게 됩니다.
그림 4: 탄력적 IP 주소를 사용한 상태 유지 EC2 인스턴스 간 장애 조치