여러 서버에 걸친 단일 웹사이트

여러 서버에 걸친 단일 웹사이트

잘못된 용어를 사용한 경우에도 양해해 주시기 바랍니다. 내 질문을 검색해 보았지만 검색할 수 있을 만큼 간단한 용어로 이 질문을 어떻게 표현해야 할지 잘 모르겠습니다. 나는 찾았다이 게시물그리고이 게시물관련이 있지만 내 정확한 질문에 대답하지 않습니다.

실행을 위해 많은 수의 서버가 필요한 웹사이트의 경우, 애플리케이션 코드 자체는 어떻게 저장 및 관리되나요(데이터베이스는 제외)? 단순화를 위해 serverfault.com에 전원을 공급하는 서버가 10개 있다고 가정해 보겠습니다. 이 서버 10개 모두에 정확히 동일한 코드가 있습니까? 아니면 코드의 특정 부분이 여러 서버에 분산되어 있습니까? 모두 동일한 코드가 있는 경우 관리자는 서버에 동일한 코드가 포함되어 있는지 확인하기 위해 어떤 도구를 사용합니까? 한 서버에 다른 코드가 포함되어 있으면 나쁜 일이 발생할 수 있다고 상상할 수 있습니다.

이제 데이터베이스에 대해 말씀드리겠습니다. SQL 기반 스토리지 시스템에 엄청난 양의 데이터가 있는 경우 이를 어떻게 관리합니까? 테이블 자체가 여러 서버에 걸쳐 분할되어 있습니까? 아니면 일반적으로 테이블 사용자가 이 서버를 가져오고, 테이블 게시물이 이 서버를 가져오는 것과 같은 것입니까? 페이스북이나 트위터만큼 큰 기업은 이 문제를 어떻게 처리할까요?

AWS 마이크로 인스턴스의 Ubuntu에서 Apache를 실행하는 첫 번째 서버를 설정했습니다. 이 작업을 수행하기 위해 확인할 수 있는 무료 도구가 있습니까? AWS에서 로드 밸런서를 찾았지만 설명은 데이터 자체가 저장 및/또는 검색되는 방법이 아니라 로드 밸런서를 실행하는 방법에 관한 것입니다.

감사합니다

답변1

이를 로드 밸런싱이라고 합니다. 로드 밸런서는 요청을 정확히 동일한 코드가 로드된 여러 서버로 리디렉션합니다.

데이터베이스의 경우 일반적으로 여러 서버에 데이터베이스를 복제하고 데이터를 여러 데이터베이스로 분할하여 수행됩니다. (예: 사용자 A의 "Facebook 항목"은 DB 서버 A에 저장되고, 사용자 B는 서버 B에 저장된 데이터를 가져옵니다.)

더 자세히 알고 싶다면 Facebook과 해당 아키텍처에 대한 정보 모음을 참조하세요. https://stackoverflow.com/questions/3533948/facebook-architecture

따라서 귀하의 시나리오에서는 다음과 같습니다.

  • 여러 서버에 동일한 코드 로드
  • 로드 밸런서 설정

관련 정보