
저는 3개 서버(웹 노드용 2개, MySQL용 1개)로 구성된 로드 밸런싱된 클러스터를 EC2의 LAMP 스택으로 설정하기 위해 모든 조각을 함께 모으려고 노력해 왔습니다. 이는 단지 애플리케이션에 대한 성능 테스트를 실행하기 위한 것이며 소요 시간을 예측할 수 있도록 적절한 정보를 수집해야 합니다. 누군가가 다음 사항에 대해 빈칸을 채워줄 수 있는지 궁금합니다.
컴퓨팅 단위란 정확히 무엇입니까? 저는 RightScale의 AWS CentOS 미러 인스턴스 3개(웹 노드용 2개, 데이터베이스용 인스턴스 1개)가 필요하다고 생각합니다. 그러면 세 개의 작은 인스턴스가 필요합니까?
Apache를 웹 서버로 사용하는 경우 mod_proxy가 Amazon EC2에서 로드 밸런싱을 수행하는 가장 좋은 방법입니까? Amazon에는 Amazon CloudWatch와 함께 작동하여 지표를 제공하도록 구성할 수 있는 로드 밸런서가 있습니다. 그게 더 좋은 방법인가요?
애플리케이션 캐싱을 위해 memcache를 사용하고 싶습니다. Amazon EC2에서 이와 관련된 문제가 있습니까? Siege를 사용할 생각입니다(http://www.joedog.org/index/siege-faq) 스트레스 테스트를 하려고요. Amazon은 스트레스 테스트를 수행할 수 있는 기능을 이미 제공하고 있습니까, 아니면 이것이 적절한 도구입니까?
나처럼 이 서비스를 사용해 본 경험이 없는 사람을 위해 두 웹 노드 모두에 애플리케이션을 설치하는 것 외에 여기서는 어떤 종류의 시간을 보고 있습니까? 저는 주로 서버 인스턴스에 애플리케이션을 배포하는 데 익숙하고 서버 구성 및 성능 조정에 대한 경험이 있지만 직업상 프로그래머입니다. 설정하는 데 30시간이 걸리고 테스트하는 데 15~20시간이 더 걸릴 것으로 예상됩니다. 야구장에서 그런 소리가 들리나요?
답변1
언급한 대로 컴퓨팅 장치는 대략 오래된 1.0~1.2GHz 서버급 프로세서이므로 Amazon의 Elastic Load Balancing을 고려해 보는 것이 좋습니다.
간단한 로드 밸런싱된 LAMP 스택의 경우 작은 인스턴스 유형으로 시작하여 테스트 및 벤치마킹을 기반으로 작업을 진행해야 합니다.
memcached는 EC2에서 잘 작동하지만 EC2의 휘발성 특성을 고려해야 합니다(인스턴스는 때때로 경고 없이 다운될 수 있음).
구성 관리 없이 처음부터 시작하면(아무것도 언급하지 않으셨기 때문에 아무 것도 없다고 가정하겠습니다. 하지만 저는 Chef를 좋아합니다) 대략 2주 정도 소요될 것으로 예상됩니다. EC2는 작업하기 까다로울 수 있으므로 항상 과대평가합니다.
또한 인스턴스를 프로그래밍 방식으로 제어할 수 있도록 EC2 API 도구(선호하는 프로그래밍 언어를 위한 라이브러리가 더 좋습니다)를 사용하는 것이 좋습니다.
답변2
나머지 부분에 대해서는 언급할 수 없지만 다음과 같이 말씀드릴 수 있습니다.
답변3
잠시 동안만 기계를 실행할 계획이라면 많은 작업을 단순화하고 Amazon의 탄성 블록 저장소를 사용하지 않을 수 있습니다. 이것이 의미하는 바는 종료 또는 충돌 시 파일이 유지되지 않는다는 것입니다. 인스턴스를 종료하지 않으면 충돌이 발생하거나 데이터가 손실될 가능성이 없습니다. 프로덕션 환경에서는 이 작업을 수행하고 싶지 않지만 테스트용으로는 괜찮을 것입니다.
로드 밸런서의 경우 Amazon의탄력적 로드 밸런싱. 프로덕션 설정에서 하드웨어 로드 밸런서를 사용하여 실행하려는 경우 Amazon을 사용하십시오. 프로덕션 환경에서 소프트웨어 로드 밸런서를 사용할 계획이라면 EC2에서도 동일한 로드 밸런서를 사용하세요.
테스트를 위해 나는 낮은 수준의 http 테스트를 좋아합니다.httperf. 애플리케이션 수준 테스트에는 JMeter를 사용하는 것을 좋아합니다. 일반적으로 저는 반대 방향으로 테스트를 수행하고 있습니다. 저는 EC2에서 JMeter를 실행하고 해당 테스트 로드를 EC2가 아닌 데이터 센터에 두고 있습니다. 그런 식으로 완전한 엔드 투 엔드 테스트를 수행하고 있습니다. 그러나 모의 제작 설정을 실행하기 위한 추가 하드웨어가 로컬에 없기 때문에 테스트를 수행하고 있는 것 같습니다.