AWS S3教程一:介绍


作为AWS众多云服务的核心成员之一,S3得到了非常广泛的应用。下面来介绍一下如何通过AWS S3。本次主要介绍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不是标准格式,比如,没有“,”,每行一条数据。其接收的数据格式类似这样:

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:

bash
SELECT * FROM s3object obj where obj.name='Jack'
SELECT * FROM s3object obj where obj.age>'22'

访问方式

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进行数据可视化。


文章作者: 逻思
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 逻思 !