docs/zh_cn/tutorials/aws.md
亚马逊云(AWS)是全球领先的云计算平台,提供几乎所有类型的云计算服务。AWS 丰富的产品线,为创建和使用 JuiceFS 文件系统提供了灵活的选择。
JuiceFS 具有丰富的 API 接口,对 AWS 而言,通常可以在以下产品中使用:
一个 JuiceFS 文件系统由两部分组成:
可以根据具体需求,选择在 AWS 上使用全托管的数据库和 S3 对象存储,或者在 EC2、EKS 上自行部署。
:::tip 本文着重介绍使用 AWS 全托管的服务创建 JuiceFS 文件系统的方法,对于自托管的情况,请查阅「JuiceFS 支持的元数据引擎」和「JuiceFS 支持的对象存储」以及相应程序文档。 :::
S3 是 AWS 提供的对象存储服务,可以根据需要在相应地区创建 bucket,也可以通过 IAM 角色授权让 JuiceFS 客户端自动创建 bucket。
Amazon S3 提供多种存储类,例如:
你可以在创建或者挂载 JuiceFS 文件系统时设置存储类,具体请参考文档。建议优先选择标准的存储类,其他的存储类虽然有更低的单位存储价格,但会涉及最低存储时长要求和检索(取回)费用。
另外,访问对象存储服务需要通过 Access Key(也叫 access key ID)和 Secret Key(也叫 secret access key)验证用户身份,可以参照文档「管理 IAM 用户的访问密钥」进行创建。当通过 EC2 云服务器访问 S3 时,还可以为 EC2 分配 IAM 角色,实现在 EC2 上免密钥调用 S3 API。
AWS 提供了多种基于网络的全托管数据库,可以用于构建 JuiceFS 的元数据引擎,主要有:
:::note 注意 虽然 Amazon ElastiCache for Redis(以下简称 ElastiCache)也提供兼容 Redis 协议的服务,但是相比 MemoryDB 来说,ElastiCache 无法提供「强一致性保证」,因此更推荐使用 MemoryDB。 :::
请根据 EC2 所使用的操作系统,参考安装文档安装最新的 JuiceFS 社区版客户端。
这里以 Linux 系统为例,使用一键安装脚本自动安装客户端:
curl -sSL https://d.juicefs.com/install | sh -
可以通过创建一个拥有 AmazonS3FullAccess 权限的 IAM 角色分配给 EC2,从而无需使用 Access Key 和 Secret Key 即可直接在 EC2 上创建和使用 S3 Bucket。
这里以 MemoryDB 为例,请参考「Redis 最佳实践」及 AWS 文档创建数据库。
为了让 EC2 能够访问 Redis 集群,需要将它们创建在相同的 VPC,或者为 Redis 集群的安全组添加规则允许 EC2 实例访问。
:::note 注意 如果创建的是 Redis 7.0 版本集群,需要安装 JuiceFS v1.1 及以上版本客户端。 :::
juicefs format --storage s3 \
--bucket https://s3.ap-east-1.amazonaws.com/myjfs \
rediss://clustercfg.myredis.hc79sw.memorydb.ap-east-1.amazonaws.com:6379/1 \
myjfs
sudo juicefs mount -d \
rediss://clustercfg.myredis.hc79sw.memorydb.ap-east-1.amazonaws.com:6379/1 \
/mnt/myjfs
对于通过 IAM 角色授权 S3 访问创建的文件系统,如果需要在 AWS 外部挂载使用,需要使用 juicefs config 为文件系统添加 Access Key 和 Secret Key:
juicefs config \
--access-key=<your-access-key> \
--secret-key=<your-secret-key> \
rediss://clustercfg.myredis.hc79sw.memorydb.ap-east-1.amazonaws.com:6379/1
请参考文档启动时自动挂载 JuiceFS。
Amazon EKS 支持三种节点类型:
Fargate 类型节点暂不支持安装 JuiceFS CSI 驱动,请使用「EKS 托管节点组」或者「自行管理的节点」类型。
Amazon EKS 是标准的 Kubernetes 集群,可以使用 eksctl、kubectl、helm 等工具进行管理,请查阅 JuiceFS CSI 驱动文档了解如何安装和使用。
请参考文档「在 Hadoop 生态使用 JuiceFS」。