4

Elastic Load Balancer와 함께 사용할 자동 크기 조정을 구성하려는 EC2 인스턴스에 레일스 애플리케이션을 배포하고 있습니다. 특정 임계 값에서 새 인스턴스를 생성하려고합니다. 자동 확장 그룹에 대한 트리거를 구성하는 동안 CPU 사용률, 네트워크 또는 디스크 IO에 대한 옵션이 있습니다. 그러나 레일 애플리케이션으로, 나는 CPU 또는 IO보다는 메모리에 대한 자원 위기에 직면하게 될 것이다.Amazon EC2에서 메모리 기반 자동 크기 조정을 구성하는 방법은 무엇입니까?

레일즈 애플리케이션의 EC2 자동 스케일링을 성공적으로 구성한 사람이 있습니까? 레일과 함께 AWS를 사용하는 가장 좋은 방법은 무엇입니까?

FYI : 나는 승객을 응용 프로그램 서버로 사용하고 있습니다.

감사합니다.

답변

1

나는 레일로 일을하지만, Tomcat.We에서 자바와 사용하지 않은 tomcat 밸브/스크립트를 사용하여 메모리 사용량을 감지하고 Amazon cloudWatch에 사용자 정의 클라우드보기 메트릭으로 게시합니다. 이 측정 기준을 모니터링하는 클라우드 감시 경보를 기반으로 한 스케일 아웃 트리거를 만들 수 있습니다.

위의 기술 중 일부 섹션은 레일을 위해 겹칠 수 있습니다.

1

실제로, 나는 당신이 사용하고있는 인스턴스 유형 (여기에 관한 기사는 http://blog.scoutapp.com/articles/2009/12/08/production-rails-tuning-with-passenger-passengermaxprocesses)에 기반하여 여객 구성을 조정해야한다고 생각합니다. 이렇게하면 전체 부하에서 사용 가능한 모든 RAM을 사용하고 있지만 사용 가능한 RAM보다 더 많은 승객 인스턴스를 생성하지 않도록해야합니다.

내 경험상 모든 리소스 (CPU & RAM)가 포화되어 CPU 사용량에 따라 자동 확장 정책이 트리거 될 수 있습니다. 또한 최고의 성능을 얻기 위해 인스턴스 유형을 조정해야합니다 (상당한 양의 성공으로 cc1.xlarge 인스턴스를 사용했습니다).

RAM을 기반으로 자동 크기 조절을 설정하면 RAM 사용을 모니터링하고 해당 측정 항목을 사용하여 자동 크기 조정을하는 CloudWatch에 대한 측정 항목을 만들 수 있습니다. 측정 항목을 만드는 것은 CloudWatch API (http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/CloudWatch/Metric.html)를 사용하여 일정한 간격으로 측정 항목 데이터를 게시하는 것입니다. 매분마다 실행되는 레일스 백그라운드 작업을 생성하고 메트릭 데이터를 게시 할 수 있습니다.

관련 문제