2012-07-17 5 views
3

AWS에서 실제로 사용됩니다. 그리고 나는 2 개의 EC2 인스턴스를 구성했다.AWS에서 MongoDB EC2 인스턴스 EC2 애플리케이션 인스턴스가있는 로컬 호스트로

하나는 내 MongoDB 데이터베이스 용이고 다른 하나는 내 응용 프로그램 용입니다.

나는 pymongo를 사용하여 연결합니다. 그러나 매번 인스턴스를 통해 데이터를 보내면 너무 많은 시간이 걸립니다. 그룹을 사용하거나 잘 모르는 어플리케이션을 사용하여 mongoDB 인스턴스를 localhost로 사용할 수 있는지 알고 싶습니다.

또는 데이터베이스를 내 응용 프로그램과 동일한 인스턴스에 배치하고 더 많은 EBS을 얻는 것이 더 나은 경우.

답변

3

성능 병목 현상이 어디 있는지 확인하십시오.

두 인스턴스가 같은 가용 영역에있는 경우 네트워크 대기 시간이 성능상의 최대 이슈가되어서는 안됩니다. 실제로 적어도 크기 인 인스턴스가있는 경우 더 나은 NIC로 인해 ... 네트워크 지연이 문제가되지 않아야합니다.

확실히 알기 위해서는 모니터링 도구를 사용하여 네트워크 사용률을 측정하십시오.

임의의 작업 세트 (임의의 빈도로 사용되는 MongoDB 문서)가 인스턴스의 RAM에 맞지 않으면 EBS을 건드린다는 의미입니다. EBS는 이며 매우 느립니다.은 MongoDB가 필요로하는 것과 비교됩니다. 최근 iozone을 사용하여 단일 EBS 볼륨을 측정 한 결과, EBS 볼륨이 랩톱의 회전식 하드 드라이브의 절반 정도 빠르다고합니다.

소프트웨어 RAID 구성으로 striping multiple EBS volumes까지 EBS 성능을 크게 향상시킬 수 있습니다.

AWS에서 MongoDB를 실행할 때 최종선은 모든 주파수로 만지는 MongoDB 문서를 저장할 수있는 충분한 RAM이 필요하다는 것입니다.

+0

여러 EBS를 스트라이프하고 차이점을 확인하려고합니다. 감사합니다. – kschaeffler

0

웹 서버와 동일한 컴퓨터에서 mongodb 인스턴스를 사용하는 프로덕션 환경의 응용 프로그램이 있습니다. 나를 위해 잘 작동하지만 지금은 확장 성이 필요하지 않습니다. 하나의 인스턴스이면 충분합니다.

질문에 대답하려면 localhost로 실행할 수 있는지 확인하십시오.

그러나 응용 프로그램을 선택하고 여러 인스턴스 또는 샤딩이 필요하면 다른 시스템에도 인스턴스를 배포해야합니다.

+0

인스턴스가 스왑을 시작하지 않는다면 정말로'localhost'를 실행하지 않을 것입니다. FourSquare는 MongoDB 작업 세트가 RAM에 들어 가지 않을 때가 지났고 MongoDB가 아닌 인스턴스를 실행하면 MongoDB에 사용할 수있는 메모리가 적어졌습니다. http://blog.foursquare.com/2010/10/05/so-that-was-a-bummer/ –

+0

인스턴스가 스왑을 시작할 수 있다는 것은 무엇을 의미합니까? MongoDB를 호스팅하고있는 독립 실행 형 EC2 인스턴스에도 이런 (스와핑)이 발생하지 않을까요? – Sid

+0

물론, 아파치와 다른 것을 하나의 상자에서 돌리고 있다면, 훨씬 이전에 스왑을 시작할 것입니다. MongoDB는 정말로 배가 고픈 RAM입니다. –