EC2에서 호스팅되는 LAMP 웹 사이트 확장

EC2에서 호스팅되는 LAMP 웹 사이트 확장

저는 이 모든 것을 처음 접했습니다. 최근 EC2에서 웹 사이트를 개설했습니다. 다음 단계로는 웹사이트를 확장하는 방법을 배우고 싶습니다. 일반적인 아이디어는 있지만 이를 해결하는 방법에 대해 전문가의 의견이 필요했습니다.

내 웹사이트는 LAMP를 기반으로 하지만 사용자가 메시지를 녹음하고 재생하는 데 사용할 수 있는 Red5 서버도 있습니다.

현재 이것이 초기 확장을 위해 설정하려는 아키텍처입니다. 다음 목적으로 4개의 작은 EC2 인스턴스를 배포합니다.

Instance-1: 이 인스턴스에서는 MySql 데이터베이스를 실행하겠습니다.

인스턴스-2: 이 인스턴스에서는 red5 서버를 실행하겠습니다.

인스턴스-3 및 인스턴스-4 이 2개의 인스턴스는 웹 사이트를 배포하는 데 사용되며 Apache가 실행됩니다. 내부 IP 주소를 사용하여 Instance-1의 mysql 서버 및 Instance-2의 red5 서버와 통신합니다. 필요할 때 동일한 인스턴스를 또 시작하겠습니다.

EBS - 모든 mysql 데이터가 저장될 50 GIG의 EBS를 갖게 됩니다. 또한 red5는 이 EBS를 사용하여 비디오 메시지를 저장합니다.

로드 밸런서 - Amazon에서 제공하는 로드 밸런서를 사용하여 인스턴스-3과 인스턴스-4의 로드 밸런싱을 수행합니다.

이것이 내가 생각하는 것입니다. 제가 멀리 있을 수도 있으니 양해해 주시기 바랍니다. 또한 현재로서는 MySql 서버 확장이 어떻게 수행될지, 처음에 필요한지 여부에 대해 전혀 모르기 때문에 고려하지 않았습니다.

Amazon이 자동 스케일링과 mysql 스케일링도 제공한다는 것을 알고 있지만 지금은 이에 대해 설명하고 싶지 않습니다.

귀하의 의견에 감사드립니다. 감사합니다

답변1

이 주제에 관한 전체 기사 시리즈가 있습니다 @http://highscalability.com

AWS를 사용해 본 적은 없지만 데이터 센터에서 가상 인스턴스를 실행하고 랙스페이스 가상 인스턴스와 앱 엔진을 사용해 본 경험이 있습니다.

확장 방법(확대 또는 축소)은 수행하려는 작업에 따라 크게 결정됩니다. 일부 앱은 I/O를 많이 사용하고 일부 앱은 CPU를 많이 사용합니다. 병목 현상은 인바운드 I/O, 처리 능력, 백엔드 I/O 또는 앱 수명 주기의 현재 위치에 따라 다양한 양으로 이 세 가지의 조합으로 인해 발생할 수 있습니다. 모두 약간 다른 전략이 필요합니다.

AWS와 같은 것을 사용하면 일반적으로 확장을 원하며 끝을 염두에 두고 시작하고 앱을 느슨하게 결합해야 합니다. 이를 통해 수요에 맞춰 다른 인스턴스를 확장할 수 있습니다. 시작할 때 db 인스턴스를 기본 앱과 동일한 인스턴스에 유지하는 것은 좋지만 일반적으로 자체 서버로 분리되는 것이 가장 먼저입니다.

따라서 하나의 인스턴스에서 모든 것이 실행되는 것으로 시작할 수 있습니다. 그런 다음 트래픽이 발생하기 시작하고 데이터베이스가 CPU를 소모하고 있음을 알 수 있습니다. 따라서 데이터베이스를 다른 인스턴스로 옮기면 모든 것이 훌륭해집니다. 더 많은 트래픽이 발생하기 전까지는... 프런트 엔드가 트래픽을 따라잡을 수 없다는 것을 알게 됩니다. 그런 다음 인스턴스를 몇 개 더 실행하고 로드 밸런싱을 수행하면 잠시 동안 만족하며 웹 서버를 12개까지 확장할 수 있습니다. 하지만 트래픽이 더 많이 발생하고 프런트 엔드는 유지됩니다. 이제 데이터베이스 시스템이 흔들리기 시작했습니다. 그런 다음 데이터베이스를 마스터와 두 개의 슬레이브에 복제하면 모든 것이 정상입니다... 등등.

답변2

저는 Amazone EC2/EBS 등이 출시되었을 때 작업한 적이 있으며 대규모 사이트 중 하나를 물리적 호스트에서 해당 환경으로 성공적으로 옮겼습니다.

나는 내 블로그에 내 경험을 다음과 같이 기록했습니다. http://linuxadminzone.com/how-to-install-setup-and-config-haproxy-loadbalancer-for-content-switching/더 많은 게시물이 있지만 여기에 링크를 붙여넣을 수 없습니다. 나는 그것이 당신을 도울 수 있기를 바랍니다.

관련 정보