AWS에서 다른 시간에 실행하도록 예약하려는 3 개의 python 스크립트가 있습니다. 현재 EC2 인스턴스에있는 3 개의 스크립트가 있으며 실행하려면 cron
을 사용합니다. 첫 번째 및 두 번째 스크립트는 EC2 상자의 특정 디렉토리 (예 : /home/ec2-user/data
)에 일부 데이터를 다운로드합니다. 세 번째 버전은 다운로드 한 데이터를 사용하여 실행됩니다.AWS에서 실행할 python 스크립트를
가끔 첫 번째 두 스크립트 중 하나가 실패하여 세 번째 스크립트도 실패합니다. 그러나 스크립트에 장애 복구 논리를 작성하지 않는 한 cron
을 통해 실패한 스크립트를 다시 시도 할 방법이 없습니다. 또한 EC2 인스턴스 사용에 만족하지 않습니다. 그것은 좋은 해결책이 아닙니다. 이를 위해 AWS 서비스를 사용하는 것이 좋습니다.
여기서 AWS Lambda
이 좋은 서비스인지 알고 싶습니다. 그렇다면 어떻게 데이터를 다운로드 할 위치를 지정하고 세 번째 스크립트에서 데이터를 읽을 위치를 지정합니까?
AWS에이 시나리오에 가장 적합한 다른 서비스가 있습니까?
첫 번째 스크립트는 완료까지 3 분이 걸리고 다음 스크립트는 10 분이 소요됩니다. – Nik
람다는 최대 실행 시간이 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
[샘플 앱] (https://github.com/altcatalin/stackoverflow/tree/master/aws/elastic-beanstalk-worker-app) – Catalin