爬取多个 EC2 实例
Crawling With Multiple EC2 Instances
我在 python 中编写了一个爬行过程,我在亚马逊的 ec2 实例上运行。我已经编写了爬虫,以便它向单独的 "hub" 实例报告其结果。集线器处理爬虫的结果,爬虫可以自由地继续爬行。我对这个爬行实例的想法是,很容易克隆爬虫的多个实例,让每个实例向中心报告以供处理。
所以,在这一点上,我有一个集线器和 8 个独立的爬虫(全部在它们自己的实例上)不断地爬行和报告等。
我在考虑小型、独立的爬虫:
- 存在冗余,因此如果一个爬虫挂了,其余的爬虫可以继续工作。
- (这是一个假设)如果每个爬虫都有自己独立的ip,我的网络利用率会更好。
- 我可以根据当前需要启动多个爬虫或缩小规模。
我的问题是;这有效率吗?我会更好地启动一个更大的实例并以某种方式拆分网络利用率吗?
提前感谢您的意见。如果这不是 Whosebug 的主题,请原谅我。
我对你的问题的看法。
(1) 存在冗余,如果一个爬虫挂了,其余的爬虫可以继续工作。
set with auto-scaling group to manage these crawler instances.
(2)(这是一个假设)如果每个爬虫都有自己独立的ip,我的网络利用率会更好。
Yes, ec2 instance can have its own public and private ip if created in public subnets. Within one region, you can set to launch the instances on different Available Zone (for example, us-west-2 region has three AZs). With that, you can spread the network usage.
(3) 我可以根据当前需要启动多个爬虫或缩小规模。
with auto-scaling group, you should be easy to control this ***
我的问题是;这有效率吗?
* 如果可以,在不同地区(美国、欧盟、亚洲等)设置 ec2 实例以减少某些网站的延迟。 *
我是否最好启动一个更大的实例并以某种方式拆分网络利用率?
* 在你的情况下,单独的较小的实例应该是一个更好的解决方案,它也为你节省了很多钱。也许你也可以考虑对这些爬虫使用 spot instance
。节省更多 *
我在 python 中编写了一个爬行过程,我在亚马逊的 ec2 实例上运行。我已经编写了爬虫,以便它向单独的 "hub" 实例报告其结果。集线器处理爬虫的结果,爬虫可以自由地继续爬行。我对这个爬行实例的想法是,很容易克隆爬虫的多个实例,让每个实例向中心报告以供处理。
所以,在这一点上,我有一个集线器和 8 个独立的爬虫(全部在它们自己的实例上)不断地爬行和报告等。
我在考虑小型、独立的爬虫:
- 存在冗余,因此如果一个爬虫挂了,其余的爬虫可以继续工作。
- (这是一个假设)如果每个爬虫都有自己独立的ip,我的网络利用率会更好。
- 我可以根据当前需要启动多个爬虫或缩小规模。
我的问题是;这有效率吗?我会更好地启动一个更大的实例并以某种方式拆分网络利用率吗?
提前感谢您的意见。如果这不是 Whosebug 的主题,请原谅我。
我对你的问题的看法。
(1) 存在冗余,如果一个爬虫挂了,其余的爬虫可以继续工作。
set with auto-scaling group to manage these crawler instances.
(2)(这是一个假设)如果每个爬虫都有自己独立的ip,我的网络利用率会更好。
Yes, ec2 instance can have its own public and private ip if created in public subnets. Within one region, you can set to launch the instances on different Available Zone (for example, us-west-2 region has three AZs). With that, you can spread the network usage.
(3) 我可以根据当前需要启动多个爬虫或缩小规模。
with auto-scaling group, you should be easy to control this ***
我的问题是;这有效率吗?
* 如果可以,在不同地区(美国、欧盟、亚洲等)设置 ec2 实例以减少某些网站的延迟。 *
我是否最好启动一个更大的实例并以某种方式拆分网络利用率?
* 在你的情况下,单独的较小的实例应该是一个更好的解决方案,它也为你节省了很多钱。也许你也可以考虑对这些爬虫使用 spot instance
。节省更多 *