웹 사이트에 고 가용성을 도입 할시기는 언제입니까?


16

웹 사이트에 고 가용성을 도입 할시기는 언제입니까?

고 가용성 옵션에 대한 기사가 많이 있습니다. 그러나 WHEN이 단일 서버에서 고 가용성 구성으로 전환하기에 적합한시기는 분명하지 않습니다.

내 상황을 고려하십시오 :
http://www.postjobfree.com 은 트래픽이 많은 24/7 웹 사이트입니다 :
http://www.similarweb.com/website/postjobfree.com

현재 단일 서버에서 실행합니다. IIS 7.0 웹 서버와 SQL Server 2008은 모두 동일한 하드웨어 상자에서 실행됩니다.

일반적으로 일부 Windows Server 업데이트에 필요한 재부팅으로 인해 ~ 5 분의 다운 타임이 발생하는 경우가 있습니다 (한 달에 ~ 1 회). 일반적으로 다운 타임은 예정되어 있으며 밤에 발생합니다. Google Bot과 일부 사용자는 여전히 밤에 활동하기 때문에 여전히 불쾌합니다.

현재 웹 사이트 수익은 ~ $ 8K / 월입니다.

두 개의 서버 구성 (두 개의 웹 서버의 웹 팜과 두 개의 하드웨어 서버에서 호스팅되는 두 개의 SQL Server 클러스터)로 전환하는 것을 고려합니다.

장점 :
1) 고 가용성 (이론적으로 다운 타임 없음). 서버 중 하나가 다운 되더라도 다른 서버가 대신합니다.
2) 데이터 손실 없음 : SQL 클러스터가 없으면 하드웨어 고장 (일일 백업)시 최대 하루의 데이터가 손실 될 수 있습니다.

단점 :
1) 그러한 구성을 설정하고 유지하기위한 더 많은 노력.
2) 더 높은 호스팅 비용. ~ 600 달러 / 월 대신 약 1200 달러 / 월입니다.

당신의 추천은 무엇입니까?


내 질문에 대한 답변은 개발에 영향을 줄 수 있습니다. 예를 들어, 데이터베이스를 부분으로 분할하고 고성능 (계산)이 필요한 데이터와 별도로 높은 안정성 (사용자 입력)이 필요한 데이터를 유지하는 것을 고려할 수 있습니다.

2
안녕하세요 데니스, 이것은 실제로 권장 사항이 아니므로 의견으로 붙어 있지만 단일 Windows 서버의 호스팅 비용이 꽤 높은 것 같습니까? 나는 그것이 VM이 아닌 완전 전용 서버라고 가정하지만, 8GB의 RAM, 충분한 디스크 공간 등을 갖춘 괜찮은 사양 서버의 경우 절반의 비용을보아야 할 것입니다. 더 나은 가격을 얻는 것에 대한 호스팅 회사.
Ewan Leith

6
프로젝트 개념의 첫 순간부터 고 가용성을 계획해야한다고 생각합니다.
Tom O'Connor

이완, 내 웹 사이트가 빠르게 작동하기를 원하므로 8GB 메모리와 SDD 드라이브를 갖춘 쿼드 프로세서가 있습니다. 소프트웨어 라이센스 비용 (Windows, SQL Server), SSL 및 기술 지원 비용을 고려하십시오. 저렴한 가격의 좋은 솔루션이 있습니까? 현재 호스팅에 서버 인텔리전스 (SoftLayer 지원)를 사용하고 있습니다. 더 나은 것을 추천 하시겠습니까?
Dennis Gorelik

2
Windows 업데이트는 보안 업데이트와 함께 제공됩니다. 서버를 패치하지 않으면 공격에 취약 할 수 있습니다. Windows 프로덕션 서버에 어떤 업데이트 빈도를 권장 하시겠습니까?
Dennis Gorelik

답변:


15

짧은 대답 : 가동 중지 시간이나 그 위험으로 인해 고 가용성을 유지하는 데 드는 비용보다 더 많은 비용이 소요됩니다.

근본적으로 경제적 인 결정입니다. 예로서. 월 $ 8k는 2 시간의 정전으로 인해 $ 22가 소요됨을 의미합니다. 2 시간 내에 처음부터 완전한 기능을 갖춘 사이트로 이동할 수 있도록 시스템을 구성 할 수 있으면 고 가용성은 그보다 22 달러의 기능 만 제공합니다.

달리 말하면, 주어진 달에 예방할 수없는 다운 타임이 54 시간이 될 때까지는 비용을 절약 할 수 있습니다.


16
당신은 명성에 위험을 고려해야합니다
gbn

7
다운 타임 시간당 비용은 서버가 다운되는 시점에 따라 달라집니다. 24 시간 동안 거래가 고르게 분산되지는 않습니다. 최대 피크 시간 동안 발생하는 것이 더 일반적이며,이 때 손실이 훨씬 더 큽니다.
John Gardeniers

Slartibartfast, 나는 당신의 대답을 그런 식으로 이해합니다 : 치명적인 실패 후 복구 시간이 합리적인지 (몇 시간), 데이터 손실이 합리적인지 (몇 시간) 확인하고, 예약 된 다운 타임을 때때로 (최소한 지금) 가질 수 있도록하십시오. . 즉, 매일 백업, 증분 부분 백업 및 서버를 사용하여 해당 구성을 모두 복원 할 수 있습니다. 소리가나요?
Dennis Gorelik

응답 : gbn : 동의 함; 나는 간단한 설명을하려고했지만 평판은 쉽게 중요한 요소가 될 수 있습니다. John Gardeniers : 물론, 사이트가 일요일 오전 11시에서 오후 1시 사이에만 사용된다면 예정된 다운 타임은 실제로 문제가되지 않지만, 계획되지 않은 2 시간의 정전에 대한 $ 2k 가격표 는 오른쪽 에 있습니다. 이 시점에서 addnl 서버에 대한 월 $ 600의 특정 요금에 대해 비정기적인 정전이 발생하는 경우 (수익 비용 $ 2k) 가능성을 파악해야합니다. 힌트 : 중요 기간 동안 임의의 오류가 4 / 년 이상 발생하지 않는 한 가치가 없습니다.
Slartibartfast

Dennis Gorelik : 유지 관리 중 비즈니스 손실, 서버 손실, 데이터 센터 손실, 계정 / 보안 / 데이터베이스 유출 등의 보호해야 할 위험을 결정하고이를 방지하기위한 조치를 취하십시오. 이 경우 유지 보수 및 예측할 수없는 고장 (내가 알 수있는 한)으로 인한 가동 중지 시간을 방지합니다. 설명하는 내용은 트릭을 수행해야하지만, 서버를 확보하고 복원 기간 내에 설정할 수 있다고 확신 할 수있는 한 서버를 소유 할 필요는 없습니다.
Slartibartfast

11

이해 당사자 / 사업자 (당신이 될 수 있음)가 결정해야합니다.

수익 손실은 정량화하기 쉽습니다. 나머지는 여기에 대답 할 수 없습니다. 죄송합니다 ...


2

대부분의 사용자는 약간의 예정된 다운 타임을 처리 할 수 ​​있다고 생각합니다. ebay는 금요일 밤에 매주 업데이트되며 입찰가가 작동하지 않는 것을 고려하십시오. 저의 (주요 호주) 은행의 온라인 뱅킹은 매주 몇 시간 동안 중단 될 예정입니다. 트위터는 항상 오프라인 상태가됩니다. Heroku / EC2는 최근 며칠 동안 다운되었습니다.

한 달에 5 분만 이야기한다면 sysadmin으로 일을 잘하고 있습니다.


1

인덱싱 측면에서 Google을 이미 언급했지만 대기 시간 / 사이트 응답 성이 SEO에 미치는 영향을 고려할 가치가 있습니다. 그것은 블랙 박스이며 수량화하기가 어렵습니다.하지만 가치가 있지만 Matt Cutts는 하나의 중심이라고 생각 합니다. 다른 사람들이 말했듯이 평판에 대해 더 걱정하고 싶습니다.


1

보안과 마찬가지로 HA는 제품이 아니라 프로세스라는 점을 명심하십시오.

예를 들어, 데이터베이스 복제는 데이터베이스의 각 미러가 자체적으로 계속 작동 할 수있는 지점까지만 제공하지만 장애가 발생한 구성 요소를 교체 한 후 재 동기화 전략도 필요합니다.

예를 들어 주문 시스템을 고려하십시오. 고객이 주문을 제출하고 처리하는 동안 주문 정보를 로컬 데이터베이스 사본에 저장 한 후 대화하려는 실제 시스템이 실패합니다. 초조 한 고객이 "제출"을 다시 누르면 다른 서버로 연결되어 주문을 수락합니다. 다른 쪽에서 누락 된 INSERT 문을 재생하여 데이터베이스를 다시 동기화하면 순서가 복제되므로 원하는 순서가 아닐 수 있습니다.

@Slartibartfast가 제안한 것처럼, 그것은 모두 경제적 인 결정으로 귀결되지만, 앞으로 몇 년 동안 계획을 세우는 것이 좋습니다. 적절한 HA 설정이 필요할 것으로 예상되면 이제 준비 작업을위한 리소스를 따로 보관 해 두어야합니다.


1

당신이 이것에 대해 생각하는 동안 나는 당신이 "고래 고래"페이지를 설정하는 것을 고려한다고 생각합니다.

이 작업을 수행하는 방법은 많이 있지만 route53과 s3의 aws 콤보는 내 작은 사이트에서 잘 작동합니다.

장애가 발생했을 때 DNS가 사용자를 사용자에게 s3에있는 정적 html 페이지로 보내도록 상태 확인으로 도메인을 설정했습니다. 아무것도 아닌 비용.

귀하의 사이트에서 "죄송합니다.하지만 문제가 발생했습니다."라고 말하면서 사용자에게 차이가 생깁니다. 사용자와 커뮤니케이션 할 수있는 Twitter 계정이 더 좋습니다.

이는 중단으로 인한 가장 큰 영향을 줄 수있는 "평판 손실"을 완화하는 데 오랜 시간이 걸렸습니다.

https://aws.amazon.com/blogs/aws/create-a-backup-website-using-route-53-dns-failover-and-s3-website-hosting/ 을 참조하십시오 .

DynDns의 소셜 페일 오버 http://dyn.com/managed-dns/social-failover/ 는 비슷한 종류의 것입니다.

DNS 레코드의 TTL이 낮고 프로그래밍 방식으로 조작 할 수있는 방법이 있다면 스스로 롤업하고 상태 점검을 수행 한 다음 DNS 변경 사항을 스크립팅 할 수 있습니다.


DNS를 호스팅하는 동일한 서버에서 이러한 상태 확인을 실행해야합니까? 조건부 DNS 업데이트 방법을 알 수 없습니다.
데니스 고 렐릭

@DennisGorelik은 꼭 필요한 것은 아니지만 DNS 레코드에는 짧은 TTL이 필요하며 상태 점검을 수행하는 모든 작업은 레코드를 빠르게 변경할 수 있어야합니다. 이를 달성하는 방법에 대한 자세한 정보로 답변을 업데이트했습니다.
Nath

상태 확인에 대한 종속성과 함께 DNS에 대한 짧은 TTL은 전체 시스템의 안정성을 떨어 뜨릴 수 있습니다 (주 서버가 제대로 작동하더라도 전환 될 수 있음). 실제로는 최종 사용자의 상황이 나빠질 수 있습니다.
데니스 고 렐릭

짧은 TTL 자체는 괜찮은 DNS 공급자에게는 문제가되지 않으며 상태 확인에 꽤 낮은 수준 (예 : 10 분 동안 http 200이 없으면 장애 조치)을 설정하면 안정성이 문제가되지 않습니다. 또는 상태 확인 부분을 건너 뛰고 수동 컷 오버를 수행 할 수 있습니다. 이는 사용자가 "연결 시간이 초과되었습니다"및 기타 못생긴 오류가 발생하지만 오 탐지가 발생하지 않는 기간이 길다는 것을 의미합니다.
Nath

0

융통성있게 확장하고 단점을 무효화 할 수있는 EC2와 같은 것을 사용하는 것을 고려 했습니까? EC2를 사용하는 것이 가치가 있는지 아닌지는 궁극적으로 경제적 인 결정이지만, 적어도 고려해야 할 옵션입니다.


-2

데이터 손실을 방지하려면 클러스터 전에 Raid 구성을 조사해야합니다. 또한 DNS 전파를 기다릴 필요없이 재해 발생시 한 서버에서 다른 서버로 전환 할 수있는 장애 조치 IP를 구성해야합니다.


어디에서 왔습니까? 포스터가 이미 RAID를 사용하고 있지 않다고 생각하는 이유는 무엇입니까?
Chopper3

헬기 3. 내가 말한 것은 Raid가 데이터 손실 문제를 해결할 것이라는 것입니다.
yqt

2
어떻게? 하나의 디스크가 확실하게 죽었다면 컨트롤러가 불량한 경우는
어떻습니까
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.