如何自动化亚马逊aws EC2进行抓取

时间:2015-06-04 15:19:04

标签: amazon-web-services amazon-ec2

您好我想设置一些亚马逊EC2实例(多个)来从任意站点抓取数据。我想象它的设置方式是一个亚马逊实例,它是一个以编程方式设置其他实例来抓取的主人。现在我有PHP脚本可以刮我想要的方式,但我怎样才能设置我的主服务器...

1)制作其他ec2实例

2)主服务器和从服务器之间的通信

2 个答案:

答案 0 :(得分:5)

但这不是一个很好的方法。相反,您应该利用AWS功能。

您可以使用SQS和Auto Scaling组的组合。您的主实例会向SQS队列添加scrape请求,并且您将拥有一个Auto Scaling Group triggered on SQS queue depth来启动新的worker实例 - 这可以帮助您在工作负载很高时自动启动worker(scraper)并终止工作量低时的工人。那些工作者实例会从SQS队列中提取一个scrape请求,进行抓取工作,然后重复。

另一种方法是使用AWS Lambda。您可以从SQS或SNS触发Lambda函数。让您的主服务器向SQS队列添加scrape请求或让主服务器向SNS主题发布请求,然后从SQS队列或SNS主题驱动web-scraper Lambda函数(用JavaScript编写)。

就个人而言,我会先调查Lambda路线。

答案 1 :(得分:1)

此页面向您展示如何编写PHP脚本以启动EC2实例。

http://blogs.aws.amazon.com/php/post/TxMLFLE50WUAMR/Provision-an-Amazon-EC2-Instance-with-PHP

然后您可以根据文章的建议使用SSH(但使用Bash),或让新实例在预配置的静态地址上启动与主服务器的通信。