재앙을위한 계획


18

웹 디자인 및 개발을 수행하는 소규모 마케팅 회사에서 일합니다. 우리는 모든 웹 디자인 및 개발 고객을 Hostgator의 전용 서버에서 호스팅합니다. RAID 1 구성 하드 드라이브가있는 전용 서버가 있습니다. 또한 cPanel을 통해 자동화되고 자동 FTP 소프트웨어를 통해 로컬로 다운로드되는 주간 백업도 수행합니다.

오늘 Hostgator에 심각한 장애가 발생했을 경우 어떻게해야하는지 논의했습니다. 서버가 폭발하고 Hostgator에 심각한 네트워크 문제가 있거나 FBI가 유명한 "우리가 보는 모든 서버를 가져가는"공격 중 하나를 수행했습니다. 기본적으로 확장 된 중단이 예상되는 모든 시나리오. 그런 다음 다음 단계로 진행하여 Hostgator에 중단이 발생하여 로컬 백업에 액세스 할 수없는 경우 어떻게해야하는지 궁금해했습니다. 이것은 내가 오랜 peiod 위해 아래로있는 우리 서버의 가능성을 알고 등으로 인해 화재, 홍수로 수 우리의 로컬 파일에 동시에 액세스 할 수있는 원격하지만 걸리는 모두가 그냥 나쁜 일이 일어나고 우리가 서있는 곳입니다. 타이어 타이어를 구입하여 여분의 타이어가 닳았거나없는 것을 발견 한 경우 두 가지 나쁜 일이 동시에 발생하는 것이 얼마나 쉬운 지 알 수 있습니다.

말할 필요도없이 "가장 최악의 시나리오"유형의 이벤트에 대비하고 싶을 것입니다. 그래서 두 가지 질문은 다음과 같습니다.

  1. Hostgator에 의한 확장 된 중단에 대비하기 위해 무엇을 할 수 있습니까? 이상적인 시나리오는 고객의 웹 사이트와 전자 메일로 전자 메일을 신속하게 준비하고 다시 실행하는 것입니다.

  2. 강력한 백업 계획에 중요한 데이터가 손실되지 않는 것은 무엇입니까? 이상적인 솔루션이 자동화됩니다.

비용이 귀하의 답변에 문제가 아니라고 생각할 수 있지만 솔루션이 저렴할수록 좋습니다.


여기의 답변은 이미 많은 좋은 근거를 다루고있는 것 같습니다. 지금까지 Amazon 클라우드는 백업 솔루션으로 매우 경제적 이었다는 것을 보증 할 수 있습니다. 미래가 무엇인지 알지 못하지만 다른 것이 없다면 클라우드의 작동 방식을 배우는 좋은 방법입니다.
JMC

아직 AWS를 실행하지 않은 경우 AWS의 예상 비용 계산기는 다음과 같습니다. calculator.s3.amazonaws.com/calc5.html
JMC

@ 존 콘데 (John Conde) : HostGator 사용 경험이 무엇입니까? 그렇다면 주요 다운 타임을 얼마나 오래 기억 했습니까?
Marco Demaio

@Marco Demaio, Hostgator로 다운 타임이 전혀 없었습니다. 그들은 매우 신뢰할 수 있었고 그들의 지원은 환상적입니다.
John Conde

답변:


15

나는 당신에게 제안합니다 :

  1. 주 서버의 전체 내용과 구성을 다른 데이터 센터에서 완전히 분리 된 네트워크의 보조 백업 서버로 자동 미러링합니다 . RSync, FXP, cPanel voodoo 또는 동기화를 자동화하려는 방법을 사용하십시오.

  2. Hostgator 서버가 응답하지 않으면 DNS 장애 조치 전환사용 하여 트래픽을 백업 서버로 자동 라우팅하십시오.

즉, 수동 개입이 필요하고 혼란스럽고 당황스러워하는 '콜드'백업이 아니라 최악의 상황이 발생할 경우 대기중인 '핫'백업이 지속적으로 존재합니다. 또한 고객이 사이트를 방문하기 전에 사이트가 다운되었음을 알 수 없으므로 모든 사람이 고민 할 수 있습니다.

DNS Made Easy 와 같은 공급자를 사용하여 장애 조치 DNS를 설정할 수 있습니다 . 호스팅하는 각 도메인에 대해 각 백업 서버마다 하나씩 최대 5 개의 백업 IP 주소를 설정합니다. 완료되면 ...

  1. DNS Made Easy는 기본 서버를 2-4 분 동안 확인하고 응답을 감지하지 못하면 트래픽을 보조 IP 주소로 라우팅합니다.

  2. DNS Made Easy는 기본 서버를 계속 확인합니다. 문제가 발생하면 트래픽을 첫 번째 서버로 다시 라우팅하거나 원하는 경우 문제를 진단하고 기본 서버를 수정하는 동안 백업을 유지합니다.

물론이 솔루션은 운영 비용을 증가시켜 고객에게 전달해야하지만 다운 타임으로 인해 업무가 중단되는 산업 인 경우 중복 서버를 지불하는 것이 좋습니다 한 번만 회사를 구합니다.

그 외에도 :

복제, 복제, 복제

독립적 인 백업이 많을수록 좋습니다. 외부 백업을 외부 하드 드라이브, Dropbox, git 리포지토리 및 원격 FTP 계정에 미러링 된 로컬 하드 드라이브에 저장합니다. 기회가 없습니다. 가능한 한 많이 복제하십시오. 수동 백업에서 복원해야하는 경우 하나를 선택하는 것보다 5를 선택하는 것이 좋습니다. 편집증이 과소 평가되었습니다.

수동으로 백업 복원 연습

백업 중 하나에서 복구를 시도한 적이 없다면 백업이 작동한다는 것을 어떻게 알 수 있습니까? 자동화 된 절차가 실패 할 경우 어떤 상황이 발생하는지 확인하기 위해 비상 훈련을 실시하는 것이 좋습니다.


업데이트 : 최근에 사이트 백업, 재해 복구 및 가동 시간 유지 관리와 관련하여 언급 할만한 몇 가지 다른 서비스가 있습니다.

  • 서버가 다운 될 때 사이트를 유지하기위한 보안 및 캐싱 기능을 제공하는 Cloudflare (사이트를 미러링하여 서버가 아닌 글로벌 분산 캐시에서 직접 제공합니다.)
  • 웹 사이트 코드의 자동 백업 및 롤백을 제공하는 Codeguard (FTP 만 해당).
  • cPanel 백업을 통해 웹 사이트 코드, 이메일 데이터 및 MySQL 정보의 자동 백업 및 롤백을 제공하는 Site Auto Backup . 이것은 Hostgator에 의해 실행되므로 사이트를 호스팅하는 경우 반드시 적합하지는 않지만 다른 사용자에게 도움이 될 수 있습니다.

특히 Cloudflare는 다운 타임을 피하고 일반적으로 사이트 응답 성을 개선하는 것이 유용한 것처럼 보입니다.


DNS와 같은 것이 존재한다는 것을 몰랐습니다. 기본 서버가 다운 될 경우 사이트를 신속하게 다시 라우팅 할 수있는 좋은 방법입니다.
John Conde

일반 DNS 호스팅에도 좋습니다. 내가 좋아하는 레지스트라에서 도메인을 구입하지만 DNS Made Easy를 사용하여 DNS 레코드를 호스팅합니다. 전 세계에 여러 개의 네임 서버가 있으므로 사이트가 빠르게 해결되고 처음으로 빠르게로드되며 등록 기관의 네임 서버가 질식 할 때 다운되지 않습니다. 비싸지도 않습니다.
Nick

@Nick : 여기에 DNS 장애 조치 (DNS 제작에서 가장 쉬운 서비스라고 생각합니다)는 권장되지 않습니다 : serverfault.com/questions/60553/… 어떻게 생각하십니까?
Marco Demaio

@Marco 그들은 그것이 완벽하지 않다는 것을 지적하는 것이 옳지 만, 내가 관리하는 몇 가지 작은 웹 응용 프로그램에서 나에게 효과적이었습니다.
Nick

1
그런데 Stack Exchange는 DNS 장애 조치도 사용합니다. 1 차 데이터 센터는 New Yourk에 있고 2 차는 오리건에 있습니다. meta.stackexchange.com/a/231138/238706의 meta.stackexchange.com/q/207653/238706
Palec

6

재해 복구는 특히 여러 서버, 사이트 및 데이터베이스를 처리 할 때 큰 작업이 될 수 있습니다. 선택한 솔루션과 관련하여 고려해야 할 두 가지 주요 항목은 RTO (복구 시간 목표)와 RPO (복구 시점 목표)입니다.

RTO 는 본질적으로 사이트가 백업 될 때까지 걸리는 시간을 예상합니다. RTO가 1-2 분 (또는 그 이하) 인 경우 Nick은 파일 및 데이터를 2 차 데이터 센터로 실시간 복제하고 DNS의 자동 장애 조치와 관련된 Nick이 제안한 솔루션을 고려해야합니다. 유료 서비스 또는 두 데이터 센터 (예 : BIG-IP Global Traffic Manager)의 하드웨어로 수행F5 네트워크에서. 비용이 많이들 수 있지만 "다운 타임 비용은 얼마입니까?" RTO가 몇 시간 또는 며칠 인 경우 서버를 온라인 상태로 전환하거나 DNS를 전환하는 등 수동 작업이 더 필요할 수있는 재해 복구 절차를 고려할 수 있습니다. 그러나 RTO가 허용하는 경우 확실히 비용 효율적입니다.

RPO 는 기본적으로 백업 빈도와 재해 발생시 손실 될 데이터 양입니다. 콘텐츠 및 / 또는 데이터 변경이 자주 발생하면 RPO가 몇 분 또는 몇 시간이되어 실시간 복제 또는 고주파 백업을 처리 할 수 ​​있습니다. 컨텐츠가 자주 변경되지 않거나 며칠 동안 데이터를 잃어 버릴 염려가없는 고객이있는 경우 백업 빈도가 줄어 듭니다.

내가 언급했듯이, 나는 Nick이 말한 많은 것에 동의합니다. 고려해야 할 또 다른 대안은 Rackspace 또는 Amazon과 같은 더 큰 클라우드 기반 공급자 중 하나의 클라우드 기반 서비스를 이용하는 것입니다. 이 두 공급 업체는 모두 대규모 인프라를 갖추고있어 거의 모든 재해를 처리 할 수 ​​있습니다. 클라우드 사이트 또는 클라우드 서버 (Rackspace에서 사용하는 용어)와 같은 기능을 사용하면 확장 할 수 있다는 이점이 있으며 물리적 하드웨어 측면에 대해 걱정할 필요가 없습니다.

Rackspace에는 또한 솔루션의 일부로 클라우드 서버, 물리적 서버 및 클라우드 파일을 조합하여 인프라를 혼합 할 수있는 사용자 정의 옵션이 있습니다. 모든 접근 방식에 맞는 단일 크기를 원하지 않으면 고객의 요구에 따라 하이브리드 방식을 고려해야합니다.

도움이되는 경우 Rackspace 사이트의 재해 복구 전용 페이지가 있으며 여기에서 확인할 수 있습니다 . (또한 기록적으로, 나는 Rackspace와 제휴하지 않았지만 과거에 그들의 서비스를 사용했습니다).

이것이 도움이 되었기를 바랍니다.

편집 : 클라우드 솔루션을 평가하는 경우 도움이 될 수 있다고 생각했습니다. 인프라 및 서비스와 웹 호스팅으로 가트너 매직 쿼드런트 (Magic Quadrant) 보고서 당신에게 다른 솔루션 제공 업체에 대한 통찰력을 제공 할 수 있습니다.


클라우드 호스팅을 백업 "서버"로 사용하는 것도 고려하지 않았습니다. 이는 백업을 빠르게 진행할 수있는 매우 경제적 인 방법입니다.
John Conde

2

다른 호스팅 회사의 다른 시설에서 서버를 완전히 복제하는 것이 가장 확실한 해결책 인 것 같습니다.

rsync 및 unison과 같은 도구와 파일을 동기화 상태로 유지할 수 있습니다. SQL 백업도 재 동기화 한 다음 스크립트를 통해 슬레이브 DB에 업로드 할 수 있습니다.


1

소스 코드 저장소 (SVN 또는 GIT)를 사용하여 모든 코드의 버전 제어를 실행 중인지 확인하십시오. SVN 또는 GIT를 사용하고 있습니까?

Project Locker 와 같은 타사 저장소에서 계정 (무료 또는 유료)을 얻을 수 있으며 작업하는 동안 모든 코드의 버전을 관리하는 경우 기본적으로 모든 위치를 저장소에 백업해야합니다 (세 번째 위치) . 따라서 모든 작업을 한 번에 잃을 가능성이 거의 줄어 듭니다.

명령 행 또는 버전 (Mac의 경우) 또는 TortoiseSVN (Windows의 경우)과 같은 클라이언트를 통해 SVN 커밋 / 체크 아웃을 수행 할 수 있습니다.


소스 코드 리포지토리에만 문제가있어 데이터베이스 나 사용자가 업로드 한 파일 등을 백업하지 않습니다.
Daveo

진실. 그러나 데이터베이스의 덤프 파일을 작성하여 저장소에 추가 할 수 있습니다. 자동 프로세스를 작성하는 스크립트를 작성할 수도 있습니다. 데이터베이스가 있든 없든, 코드와 자산을 백업 할 수있는 장소가 하나 이상 있으며, 어쨌든 버전 제어의 주요 이점이 있습니다.
Joel Glovier

불행히도 우리는 버전 관리를 사용하지 않습니다. 사실 여기에서 시작하기 전에 모든 작업이 라이브 사이트 에서 이루어졌습니다 ! 로컬에서 개발 환경을 설정하여 적어도 그 관행은 공식적으로 죽었습니다.
John Conde
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.