python - 在 AWS 中运行 Python 脚本的最佳位置在哪里?

标签 python mysql amazon-web-services amazon-ec2 amazon-elastic-beanstalk

我是 AWS 的新手,我需要运行批处理(每天)并将数据存储在 MySQL 数据库中。提取和转化大约需要 30 分钟。作为旁注,我需要运行 Pandas 。

我读到 lambda 函数被限制为 5 分钟。 http://docs.aws.amazon.com/lambda/latest/dg/limits.html

我正在考虑将 EC2 微型实例与 Ubuntu 或 Elastic Beanstalk 实例结合使用。以及用于 MySQL 数据库的 Amazon RDS。

我走的路对吗?在 AWS 中运行 Python 代码的最佳位置在哪里?

最佳答案

如果您需要每天运行一次或两次这些操作,您可能需要研究新的 AWS Batch 服务,它可以让您运行批处理作业而不必担心 DevOps。

如果你有足够多的工作让计算机忙上一天的大部分时间,我相信最好的解决方案是运行基于 Docker 的解决方案,这将使你更容易管理你的图像并能够在你的上进行测试本地主机(如果需要的话,更容易移动到另一个云)。 AWS ECS 让这一切变得像 Elastic beanstalk 一样简单。

我的前端在 Elastic beanstalk 上运行,后端工作人员在 ECS 上运行。在我的例子中,我的 python 工作人员正在无限循环中运行以检查 SQS 消息,以便服务器可以通过 SQS 消息与他们通信。但我也有 CloudWatch 规则(作为 cron 作业)唤醒并调用 Lambda 函数,然后发布 SQS 消息供工作人员处理。然后我可以让三个工作容器在同一个 t2.small ECS 实例上运行。如果其中一个 worker 出现故障,ECS 将重新创建一个。

总而言之,在 AWS ECS 上的 Docker 上使用 python。

关于python - 在 AWS 中运行 Python 脚本的最佳位置在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46802777/

相关文章:

python - "ValueError: Unrecognized marker style -d"在标记上循环时

mysql - select_full_join数量不断增加

mysql - 根据左连接数重复行 X 次

amazon-web-services - AWS CLI 获取 VPC 的私有(private)子网

python - 使用NLTK摆脱停用词和文档标记化

python - 具有双重授权的 gunicorn 的 Nginx

Python:如何根据特定分布创建整数列表

mysql - WHERE 子句的行为也不符合我的预期?

amazon-web-services - AWS 云形成 : Find Lambda Alias using partial text and delete those alias

java - 登录集成问题,找不到类 CognitoUserPoolsSignInProvider