2020年12月23日

Kinesis Datastream,Firehose,Agent各是什么?

Kinesis家族,都是为steam而生。

什么是stream?你可以理解为”大量的不间断的数据”。

Kinesis其实有三个成员:Kinesis Data Stream, Kinesis Data Analytic, Kinesis Data Firehose。

如果把他们三个看成给一个整体,我最开始的理解如下:

Stream负责收,Analytic负责分析,Firehose负责存。

但这样说太理想化了。因为这三个里任何一个组件,都是有入和出两个对象。

对于Stream来说,它的producer是AWS SDK、KPL(Kinesis Producer L[……]


进一步了解
2020年12月23日

如何搭建Hybrid?比如DNS怎么配置?AD怎么配置?File Share怎么配置?数据怎么迁移?怎么监控过程?

Hybrid,是很多公司从On-Prem到云的过渡过程。

当然,有些公司会从Hybrid转到pure Cloud,但有些公司永远不会 – 因为有些数据必须要存在本地,不能放到云里。

但只要是从On-Prem开始往云里转移,就必然会遇到如何搭建Hybrid这个问题。

网络

首先如何连接On-Prem和AWS的网络?Direct Connect是第一选择,但DC”特别容易“坏,所以还要有个site-to-site VPN来做备份。

DNS呢,得挪到Route53上,创建Route53 private hosted zone,来解析内部网络的请求。看个图:

图中看[……]


进一步了解
2020年12月23日

RTO和RPO怎么记?AWS的各种组件应该怎么Backup?

这里主要想说明的是DR,即灾难恢复。

什么备份啊、高可用啊,都是为了哪天突然停电了被雷击了地震了外星人入侵了等等特殊情况准备的。

RPO,P是Point。咔叽断电了,重启后,你到底能恢复到哪个”点“。换句听得懂的话,就是你最后一次备份的数据是什么时候。

所以提到RPO,记得看你的备份周期。5分钟?15分钟?还是1小时?

然后RTO,T是Time。咔叽断电了,重启后,你”多久“能恢复服务?

为什么这俩名字总混呢?因为中文里,Time也叫”点“……

所以要想记得清楚,记住,P是备份点,是游戏里的”存档点“,打撸啊撸里面的”出生点“……

T就是多久。[……]


进一步了解
2020年12月23日

Sticky Session是什么?

记得ELB是做什么的么?分发流量给后端的资源。

所以一般来说是平均分配的,也就是下图:

这样做可能有一个坏处:若应用需要所有的数据,比如EC2需要接到Web Browser的所有数据,这样做是有问题的。

sticky session解决的就是这个。它以session为单位,在第一次分配给一个资源后,以后这个session中的所有包,都转向那个资源。

如图:

由于是以session为单位,所以ELB和CLB会有sticky session,而ALB使用cookies的方法,来实现sticky session。[……]


进一步了解
2020年12月23日

Consolidated Billing能解决什么问题?

Consolidated Billing作为AWS Organization的一大好处被频繁提及。

我的简单理解就是一堆人花钱,然后让一个人买单。

可这对“组织”又有什么好处呢?我一直有这样的疑问。

首先,只拿到一张账单,对于整个”组织“来说是非常方便的 – 总比拿着几百张员工账单来得轻巧。

这一张账单并不只有一个数字的,而是有各个账户的分别数字的,类似于:

一目了然,是不是?

第三个好处,我认为是Consolidated billing最大的好处:资源共享或者资源累积。

AWS的很多东西,是你用得越多越便宜的。

存储、reque[……]


进一步了解
2020年12月23日

数据在各种存储之间怎么迁移(如从RDS到Redshift)?

回答这个问题之前,要考虑清楚:为什么数据要在各种存储之间迁移?

第一个原因,换组件。比如以前用一个数据库,现在想换一个数据库用用。

另一个原因我更喜欢:因为要拿数据去实现价值啊!

数据存进来仅仅是第一步。数据的价值在于分析,提取有效的内容,生成报告啦、图标啦,等等。

在《数据库,何时用Redshift,何时用Aurora?Fast local read是什么?》这篇中,我们提及了为什么要用Redshift,因为Redshift是列数据库,擅长分析。

当然擅长分析的(不一定是数据库)还有EMR,大数据平台嘛。

题目中提到的场景,只能作为简单的数据迁移来[……]


进一步了解
2020年12月23日

在API-Gateway+Lambda的模型下,5xx错误和4xx错误代表着什么?

简单来说,4xx的错误叫Client Error,可以理解为客户端到API-Gateway之间的错误;5xx的错误叫Server Error,可以理解为API-Gateway“背后”出现了问题。

换句话说,如果看到4xx的错误,查API-Gateway。看到5xx错误,把目光放到它的后面,比如Lambda。

4xx常见的有:

400 – Bad Request

403 – Access Denied。查查是不是被WAF给墙了。

429 – Quota exceeded。查查是不是被Throttle了。比如API Gateway设了Quota。

5xx常见的有[……]


进一步了解
2020年12月23日

数据库,何时用Redshift,何时用Aurora?

恩,这个问题,其实要Database的种类讲起。

首先大家知道的DB,一般是MySQL、PostgreSQL、SQL Server等。

这类的数据库成为“关系型数据库”,也就是OLTP。它每一是一条记录。具体的意思大家自己查查吧。

关系型数据库的优点是可以非常快地找到“这个人”的“所有信息”,因为就一行。

但要是想开始查,有“多少人”,“怎么样”的时候,就会很慢。

一般这个时候,大家会用一个东西,叫index。将记录里的一项,做索引,加速查询。

其实你没意识到,当你加了一个索引的时候,其实你存的数据,是一

于是列数据库就不难理解了。这样的数据库是[……]


进一步了解
2020年12月23日

Glacier有Vault吗?Vault lock是干嘛的

AWS S3 Glacier有Vault吗?有啊。S3 Glacier本身就是用Vault来做的,而Vault本身,也是个Container而已。

“Amazon S3 Glacier uses “vaults” as containers to store archives. ”

我知道有上面这个问题的原因,是因为我们以为S3 Glacier和S3一样,用Bucket。

所以不要把S3 Glacier和S3混在一起,当他们是两个产品即可。

至于Vault Lock,理解了Vault,那lock就是为了“锁Vault”的嘛。

Vault lock其实又是一个Pol[……]


进一步了解
2020年12月23日

Lambda冷启动

在《Lambda如何接入私有网络》篇中,我稍微介绍了一点Lambda创建的过程。

简单来说,当你有个任务需要Lambda去运行的时候,AWS在它自己的平台上,分出来一个Container给你,来运行你的程序。

你可以用这个Container跑一个任务,也可以跑多个任务。记得有一些限制,比如内存128M-10240M(10G内存支持于2020年12月1日),CPU不受你控制,但会跟内存分配的增加而增加。1000个软concurrency限制,/tmp目录512MB,以及一个任务最多运行15分钟。

但是这个Container从无到有,是需要一些时间的。这个“从无到有”时间,就是所[……]


进一步了解
2020年12月21日

RDS multi-AZ Replica和Read Replica有什么区别?

这个问题……问的特别好!

我在官网上查到了这张表,我觉得足够说明问题:

Multi-AZ deployments
Multi-Region deployments
Read replicas

Main purpose is high availability
Main purpose is disaster recovery and local performance
Main purpose is scalability

Non-Aurora: synchronous replication; Aurora: asynchronous re[……]


进一步了解
2020年12月21日

AWS如何防止Sync-Flood或者DDOS或者SQL注入攻击?

这个问题涉及到了AWS的防御模块们。请出AWS Shield和AWS WAF(Web Application Firewall)。

我的理解,shield主要针对的是DDoS。针对网络层,DNS也包含在内。

WAF,从名字就能知道是针对Web的,所以HTTP的防护,比如限制从哪来的(Original IP或者Country),Header里带了什么不好的东西,SQL注入(因为SQL注入的方法主要是在query中实现),还有Cross-site 攻击等。

因此我的简单理解就是:

  1. 网络层攻击,如DDoS,TCP Syn-flood,选AWS Shield;
  2. 可以通[……]


进一步了解