2016-05-31 2 views
3

AWS에서 다른 시간에 실행하도록 예약하려는 3 개의 python 스크립트가 있습니다. 현재 EC2 인스턴스에있는 3 개의 스크립트가 있으며 실행하려면 cron을 사용합니다. 첫 번째 및 두 번째 스크립트는 EC2 상자의 특정 디렉토리 (예 : /home/ec2-user/data)에 일부 데이터를 다운로드합니다. 세 번째 버전은 다운로드 한 데이터를 사용하여 실행됩니다.AWS에서 실행할 python 스크립트를

가끔 첫 번째 두 스크립트 중 하나가 실패하여 세 번째 스크립트도 실패합니다. 그러나 스크립트에 장애 복구 논리를 작성하지 않는 한 cron을 통해 실패한 스크립트를 다시 시도 할 방법이 없습니다. 또한 EC2 인스턴스 사용에 만족하지 않습니다. 그것은 좋은 해결책이 아닙니다. 이를 위해 AWS 서비스를 사용하는 것이 좋습니다.

여기서 AWS Lambda이 좋은 서비스인지 알고 싶습니다. 그렇다면 어떻게 데이터를 다운로드 할 위치를 지정하고 세 번째 스크립트에서 데이터를 읽을 위치를 지정합니까?

AWS에이 시나리오에 가장 적합한 다른 서비스가 있습니까?

답변

-1

확인 AWS 탄성 콩 줄기에서 근무 환경. AWS EB-Docs에 의해 자동으로 관리되는 EC2 및 SQS 대기열이 시작되고 간단한 tutorial이 시작됩니다. 현재 상황에서 스크립트는 어떻게 든 통신해야합니다. 세 번째 스크립트는 두 번째 스크립트에 의해 조건 지워지기 때문입니다. 스크립트를 실행하는 데 시간이 얼마나 걸립니까? 스크립트를 병합 할 수 있습니까? 자세한 내용을 알려주십시오.

+0

첫 번째 스크립트는 완료까지 3 분이 걸리고 다음 스크립트는 10 분이 소요됩니다. – Nik

+1

람다는 최대 실행 시간이 300 초입니다. Elastic Beanstalk은 최대 1800 초까지 올라갈 수 있으며 응답 및/또는 시간 초과를 기반으로 실행을 다시 시도 할 수있는 옵션이 있습니다. - [Worker Details] (https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features -managing-env-tiers.html # worker-periodictasks). 다른 스크립트를 관리 할 기본 스크립트를 만드는 것이 좋습니다. 실패한 경우 주 스크립트에서 오류를 반환하고 EB가 SQS 대기열에 작업을 다시 추가합니다. – Catalin

+0

[샘플 앱] (https://github.com/altcatalin/stackoverflow/tree/master/aws/elastic-beanstalk-worker-app) – Catalin

관련 문제