Amazon Web Service名气应该算响的了。最近在做爬虫,一直开terminal不让电脑睡眠,小苹果air已经撑不住了……
然后学姐建议用aws跑程序这样就不需要把自己电脑弄趴啦。
于是开始折腾aws。
这个其实挺麻烦的。
首先注册账户,如果你在Amazon买过东西,那应该可以直接登录。
登进去以后,创建Instance,选择processor,当然作为免费用户,不需要想选项,因为只有一个。跟着指示创建完,会有一个key pair下载下来,文件后缀是.pem。这个很重要,后面创建连接都要用到。
然后其实现在创建不了连接。
要先跟着connection documentation完成prereq,比如装ssh(一般都有),装aws cli,在IAM页面新建user,新建group,然后把user加到group,设置group的policy为AmazonECFullAccess。新建user的时候会有一个access ID和access key,这两个复制粘贴一下,在aws configure的时候要用。
然后就是创建连接。注意这个时候要用key pair文件的绝对路径。
ssh -i <absolute path of key pair> <your specific address to connect>
第二个specific address,在你的instances页面选中你的instance点击connect,就能看到那串地址,一般都是正确的。
然后会问yes/no,当然yes啦,然后出个warning,就连上了。
然后就是很醉的python3的问题。我用requests做爬虫,使用python3告诉我importerror,requests找不到。然后用python(也就是python2应该),结果sqlite3又不对。我懒得改程序了就想装python3。
在aws ec2上装东西还挺正常,想装什么直接打个名字,比如pip,它就告诉你用什么命令装pip。然后pip装好我想用它装requests,结果原来python2.7的dist-packages里已经有了……然后我就找各种stackoverflow怎么装python3,结果找到yum,但是并没有很大用处。
最后的解决方案是pip install requests -t . 直接装在当前目录下,这样运行的时候就没问题了。
最后的最后,爬虫要一直跑着,我不想一直开着terminal,所以找了一下怎么能够关掉terminal也让ec2上的程序跑着。找到了linux screen。
screen -S <session name> 进入一个session
然后做你的python command运行程序,反正任何你要做的command
然后ctrl a d 就可以detach from the process。
想要回看(resume),用screen -r。
祝大家用aws愉快 : 3
网友评论