作为AWS众多云服务的核心成员之一,S3得到了非常广泛的应用。下面来介绍一下如何通过AWS S3。本次主要介绍AWS S3的基本概念。

介绍
S3 = Simple Storage Service,除了普通的存储之外,还可以用来:
- Host静态站点
- 数据库备份
- Data Processing Pipelines
核心概念
Bucket桶
桶就类似于根文件夹,其命名必须全局性唯一。也就是说,如果别人已经创建了命为X的Bucket,你就不能再用X作为桶的名字了。
Object
需要注意Object的文件尺寸必须小于5 TB
Events事件
在S3中,可以定义很多事件及其处理函数。比如当文件被创建,修改,删除,复制时,触发Lambda。这样就可以构建Event Driven Architecture,比如:新文件到S3 -> 触发Lambda处理函数 -> 处理结束后通知AppSync/GraphQL API -> 通知用户文件已经处理完毕。
S3费用决定因素
- Storage class
- Storage, Access, Transfer
Free tier: 5GB + 20K Get + 20K Put
关于Query with S3 Select
这里可以通过SQL查询S3中的json数据。不过json不是标准格式,比如,没有“,”,每行一条数据。其接收的数据格式类似这样:
{"name":"Jack","age": "22","address": "13 temp Road"}
{"name":"Lucy","age": "21","address": "12 temp Road"}
{"name":"Stuart","age": "23","address": "13 fake Road"}
{"name":"Lucas","age": "22","address": "12 fake Road"}
支持的S3 Select:
SELECT * FROM s3object obj where obj.name='Jack'
SELECT * FROM s3object obj where obj.age>'22'
访问方式
- https://s3.amazonaws.com/YOUR_BUCKET_NAME/YOUR_OBJECT_NAME
- 通过AWS Console访问
- 通过第三方工具访问,比如:https://s3browser.com/
- 通过SDK在程序中访问。
S3安全性设置
- 默认方式下,S3 bucket不是public的。
- 可以通过IAM进行访问控制
- Auditing: 支持访问日志,警告等
S3 Tiers
Standard
在这种方式下,数据会自动在不同Zone之间同步,因此收费较贵。这种方式的最大优势在于:High Availability和High Performance。
其收费方式为:$0.023 per GB,最新费率请参考官网:https://aws.amazon.com/s3/pricing/
Infrequent Access
这种方式针对的是访问不是很频繁的数据。
其收费为:$0.0125 per GB,最新费率请参考官网:https://aws.amazon.com/s3/pricing/
S3 Glacier
这种方式针对访问不是很频繁的数据,其费率为:$0.004 per GB。
S3 Intelligent
这种方式能够更具访问数据的方式,智能的在不同Tier之间切换。
S3 Lifecycle Rules
可以选择S3 Bucket -> Management,在其中方便的创建S3 Lifecycle Rules。比如:
默认文件为:Standard (Hot data)
超过30天,改为Infrequent Access
超过180天,改为Glacier (Cold data)
超过365天,改为Glacier Deep Archive
典型应用举例
Data Ingestion Pipeline
可以通过高效的AWS Kinesis Data Firehose接收数据,达到一定配额后发送给S3。
数据分析/可视化
可以在AWS Athena中使用类似SQL的语法对S3中的文件进行查询。也可以使用Amazon QuickSight进行数据可视化。