嗨,我想设置一些amazon实例(多个)来从任意站点抓取数据。我所设想的设置方式是一个amazon实例,它是一个主实例,它将以编程方式设置其他实例以进行刮除。现在我有php脚本,可以按我想要的方式刮,但是我如何设置我的主服务器.
1)制作其他ec2实例
2)主服务器和从服务器之间的通信。
发布于 2015-06-04 16:10:40
您可以自己构建它,方法是在需要时拥有主启动工作人员实例,发送刮取请求,在需要时终止它们,并通常自己编写所有编排代码,并尝试使其高度可用。但这不是个好办法。相反,您应该利用AWS特性。
您可以使用SQS和自动缩放组的组合。您的主实例将向SQS队列添加刮取请求,并且您将拥有一个自动缩放组在SQS队列深度上触发来启动新的工作人员实例--这有助于在工作负载高时自动启动工人(刮板),并在工作负载低时终止工作人员。这些工作实例将从SQS队列中提取一个刮取请求,执行刮取工作,然后重复。
另一种方法是使用AWS Lambda。您可以从SQS或SNS触发Lambda函数。让您的主人将刮取请求添加到SQS队列中,或者让主发布请求发布到SNS主题中,然后从SQS队列或SNS主题中驱动web刮刀Lambda函数(用JavaScript编写)。
就我个人而言,我会先调查Lambda路线。
发布于 2015-06-04 15:55:20
此页面向您展示了如何编写PHP脚本来启动EC2实例。
http://blogs.aws.amazon.com/php/post/TxMLFLE50WUAMR/Provision-an-Amazon-EC2-Instance-with-PHP
然后,您可以像本文所建议的那样使用SSH (但使用Bash),或者让新的实例在预先配置的静态地址上与主服务器进行通信。
https://stackoverflow.com/questions/30647844
复制相似问题