AWS 使用经验
掐指一算,自己第一次使用 AWS 已经是两年前的事情了,这也是云计算和大数据等技术迅猛发展的两年。这期间,大抵间间断断地使用着,FreeTier Instance 也运行快一年了,马上进入收费周期。虽然中间用过一段 Aliyun 的产品(被坑了不少钱),同时现在每月给DigitalOcean 贡献 $5,但是只有AWS的培训有参加过,几个活也是用AWS完成的,算是了解得比较深入。这里且记录一下使用经验,算是总结,也是一种知识梳理。
由于比较常用计算密集型的任务,选择EC2 Spot Instances + SQS + S3的组合较为符合需求。在不需要Auto Scaling的情况下,主要的思路如下:
- Sending EC2 Spot Instances Requests
- Sending Messages into SQS
- Start python scripts on EC2 instances
- Upload python scripts to S3 and download it on EC2 instances
- Get Messages from SQS and saving results to S3
SQS 是一个消息队列系统,以服务的方式提供后,对于整个架构中各模块的解耦是非常有用的。S3用于存储初始数据和处理结果,以及启动脚本。EC2 就是处理数据的节点。
1. S3
s3 = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
bucket = s3.get_bucket(DATA_BUCKET)
key = bucket.new_key(KEY_BOOT)
#key.set_contents_from_string(startup)
key.set_contents_from_filename(SCRIPT_BOOT)
2. SQS
def send_message_sqs(q, id):
message = q.new_message(body=simplejson.dumps({"key":id}))
print q.write(message) sqs = boto.connect_sqs(KEY, SECRET)
q = sqs.create_queue(REQUEST_QUEUE)
for id in ids:
send_message_sqs(q, str(id))
3. EC2 Spot Instances
request = conn.request_spot_instances(price=AWS_MAX_PRICE,
image_id=AWS_IMAGE_ID,
count=AWS_INSTANCE_COUNT,
type=AWS_REQUEST_TYPE,
key_name=AWS_KEY_NAME,
security_groups=AWS_SECURITY_GROUPS,
instance_type=AWS_INSTANCE_TYPE,
placement=AWS_PLACEMENT,
user_data=BOOTSCRIPT % {
'KEY' : AWS_ACCESS_KEY_ID,
"SECRET" : AWS_SECRET_ACCESS_KEY,
"DATA_BUCKET" : DATA_BUCKET,
"KEY_BOOT" : KEY_BOOT,
'BOOT_SCRIPT_PATH': SCRIPT_BOOT_PATH_SPOT
})
http://aws.amazon.com/ec2/purchasing-options/spot-instances/spot-and-science/
AWS 使用经验的更多相关文章
- AWS助理架构师认证考经
上周考了亚马逊的解决方案架构师-助理级别的认证考试并顺利通过.这也算是对自己AWS服务熟悉程度的一种检验.在准备考试的过程中,把自己学习到的AWS知识都梳理了一遍,也算是收获颇丰.这次特意分享了该认证 ...
- AWS认证权威考经(助理级认证篇)
笔者作为AWS官方认证的早期通过者,已经拿到了AWS的助理级解决方案架构师.开发者认证,系统管理员认证.这几年也陆续指导公司多人通过AWS的认证.本篇文章将分享如何通过自学的方式轻松通过AWS的助理级 ...
- [转帖]Oracle 12cR2使用经验
大规模升级来临,谈谈Oracle 12cR2使用经验 随着2019年2月13日,Oracle 19c (Oracle 12.2.0.3) for Exadata 版本发布,Oracle 12cR2体系 ...
- 在AWS Glue中使用Apache Hudi
1. Glue与Hudi简介 AWS Glue AWS Glue是Amazon Web Services(AWS)云平台推出的一款无服务器(Serverless)的大数据分析服务.对于不了解该产品的读 ...
- 使用AWS亚马逊云搭建Gmail转发服务(三)
title: 使用AWS亚马逊云搭建Gmail转发服务(三) author:青南 date: 2015-01-02 15:42:22 categories: [Python] tags: [log,G ...
- 基于Kubernetes在AWS上部署Kafka时遇到的一些问题
作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 交代一下背景:我们的后台系统是一套使用Kafka消息队列的数据处理管线 ...
- AWS的SysOps认证考试样题解析
刚考过了AWS的developer认证,顺手做了一下SysOps的样题.以下是题目和答案. When working with Amazon RDS, by default AWS is respon ...
- AWS开发人员认证考试样题解析
最近在准备AWS的开发人员考试认证.所以特意做了一下考试样题.每道题尽量给出了文档出处以及解析. Which of the following statements about SQS is true ...
- 使用AWS亚马逊云搭建Gmail转发服务(二)
title: 使用AWS亚马逊云搭建Gmail转发服务(二) author:青南 date: 2014-12-31 14:44:27 categories: [Python] tags: [Pytho ...
随机推荐
- [代码]--ORA-01843: 无效的月份
1.插入的日期如果是DateTime类型的,没有影响 2.如果DateTime.ToString()获取的日期,就会报错,例如(@param_datetime = cf.GetServerDateTi ...
- pgm9
这部分介绍 sampling 方法,书上也称为 particle-based method,这是因为每一个从分布中采集到的样本可以看成是一个 particle(instantiation of r.v ...
- SQL 优化经验总结34条
我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习.摘录.并汇总部分资料与大家分享! (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照 ...
- 洛谷P4234 最小差值生成树(LCT,生成树)
洛谷题目传送门 和魔法森林有点像,都是动态维护最小生成树(可参考一下Blog的LCT总结相关部分) 至于从小到大还是从大到小当然无所谓啦,我是从小到大排序,每次枚举边,还没连通就连,已连通就替换环上最 ...
- Ansible批量在远程主机执行命令
Ansible直接执行远程命令,不用ssh登陆交互执行. 如下: ansible all -i 192.168.199.180, -m shell -a "ifconfig" -u ...
- sql知识收集
在SQL Server里面有top关键字可以很方便的取出前N条记录,但是Oracle里面却没有top的使用,类似实现取出前N条记录的简单方法如下: 方法1:利用ROW_NUMBER函数 取出前5条记录 ...
- spark性能调优(二) 彻底解密spark的Hash Shuffle
装载:http://www.cnblogs.com/jcchoiling/p/6431969.html 引言 Spark HashShuffle 是它以前的版本,现在1.6x 版本默应是 Sort-B ...
- Nginx反向代理下IIS获取真实IP
1. iis 如果放在反向代理后面,日志里的c-ip是反向代理服务器的ip,不是真正用户的ip,想要记录用户的ip要做两件事. 一.在反向代理设置X-Forwarded-For段,以下为nginx下的 ...
- GROUP BY和 HAVING 及 统计函数 执行顺序等
[我理解:where是对最外层结果进行条件筛选,而having是对分组时分组中的数据进行 组内条件筛选,注意:只能进行筛选,不能进行统计或计算,所有统计或计算都要放在最外层的select 后面,无论是 ...
- SQL Server 事务与隔离级别实例讲解
上班途中,你在一处ATM机前停了下来.正当你在敲入密码的时候,你的一位家人也正在镇上的另一处TAM机上输入密码.你打算从某个还有500元余额的账户上转出400元,而你的家人想从同一账户取走300元.倘 ...