我们的目标,就是花最少的时间,学到最多的东西:-)
在AWS中,可以选择的存储服务很多,纷繁复杂,新手根本弄不清楚选择哪个。因为做为一个云架构师,你并不是让你的产品能用就够了,而是要考虑到Resilient,Performance, Secure, Cost optimized,最后要做到operational excellent的系统。这也是AWS SA associate考试的几个核心要点。
这一篇着重讲一下AWS的三个存储服务。
AWS S3 (simple storage service)
S3是一个object storage的服务,可以存任何东西,文件,视频,图片,都会被存储在一个Bucket里,这是一个没有层级的存储方式,你可以想象一下数据之间并没有关系,是一个扁平的结构。每一个文件呢,在被创建的时候都会有一个Header和0-5TB大小的存储内容。然后这每一个文件都会有一个唯一的ID与其绑定。这个ID将可以被任何web应用对这个文件进行访问。比如在你的AWS一个VM虚拟机就可以调用存储在S3里的文件。所以它适合存储哪些那些需要经常被访问的文件。
S3还有个非常实用的功能,就是它能host 静态网站(就是不需要后台数据库登陆和各种操作的那种纯展示型网站)具体我们以后再介绍。
S3是一个scalable,存储量可以扩大减小,根据使用的实际数量来进行付费。S3因为它的11个9和易用性而出名。他的稳定性达到可怕的99.999999999%,所以基本上你的数据在S3中是不太可能丢失的。
一句话总结:AWS S3是一个特别可靠的,存储量可扩展的,容易被外界访问的数据存储服务。存你要经常用的文件,用S3!
EBS (elastic block storage)
EBS也是一个存储服务专门用来让你跑你的虚拟机的。就像你装一个windows操作系统,装在C盘,或者在D盘装一个虚拟机一样。所有你在AWS用的EC2 都会跑在EBS上。但是要主意它里面的HDD存储是不能当作操作系统存储的。
既然是跑系统的存储,那肯定要求访问速度了对吧。所以对于EBS,主要要记住下面几条:
- EBS不能做为一个独立存储,它总是和EC2同时被创建的。
- EBS在创建时定的大小不能在之后改,毕竟装了个系统嘛 (但是可以通过创建一个新的EBS,然后attach到EC2的方式增加容量)EC2需要暂停去更新EBS。
- EBS有三种存储方式,主要涉及到performance和价格了。
- General purpose SSD存储
这个就是最主要的选择方式了,具体要看参数和你的需求,通常能够满足所有普通的系统实用需求。
- IOPS优化SSD存储
这个IOPS(input/output operation per second),就是读写优化的SSD存储,如果你的系统需要大量读写操作,这个将是你的选择。具体看参数和你的需求。
- 磁盘(magnetic)存储,其实就是HDD
最后一个就是比较便宜的HDD磁盘存储了,价格便宜,比较适合存储那些序列数据(squential data),比如log数据啦, 大数据什么的,很划算。它的I/O读写速度也有500MB/s还是不错的。它也分两种,一个是st1,读写速度快,且便宜。还有个更便宜的,sc1,读写速度相对慢一点。
-------------几大EBS 的对比(下图)--------------
EFS (elastic file system)
EFS你别看它名字叫file system,其实它最主要是用来让你运行一些对IO存储要求比较高的App的。区别在哪呢,S3用来存文件,EBS主要用来运行虚拟机和存一些系统文件,或者存大数据等,需要大量IO的访问的。好像EBS也能用来运行应用App,没错,你完全可以在你的系统盘里运行一个App嘛,但是如果你的应用突然需要scale up,比如你的用户访问量突然从1000增加到10万个,记得EBS是不能自动scale up的。所以App不应该跑在你的EBS里,这就是EFS的作用。
EFS可以自动scale up或者scale down,所以你永远不用担心资源不够用的问题。而且也不需要担心资源浪费的问题。当需求变低,EFS自动scale down,你就只需要支付你使用的那部分存储就够啦。
一个EFS可以被多个资源同时使用,是一个shared system。所以EFS很适合去跑一些共享的server,大数据运算啊等等各种对存储资源要求灵活scale up and down 的应用。
总结啦