使用 MinIO 部署 AWS 本地区域

这篇文章已根据 AWS 的要求更新,删除了“AWS 推荐”的措辞。
今年早些时候,亚马逊网络服务公司宣布扩展其一项名为本地区域(Local Zones)的相对较新的产品。
AWS 本地区域在靠近大型人口中心、行业中心和 IT 中心的地方复制了大部分 AWS 服务(计算、存储、数据库和其他精选服务)。这提高了性能,降低了延迟,并减少了带宽成本。此次扩展在之前已有的 16 个美国城市的基础上,又增加了大约 30 个城市。不过,用例各不相同,对于像流媒体、模拟、视频游戏、AI/ML 这样需要高吞吐量、低延迟的应用程序来说,这些本地区域更深入地渗透到“本地部署”的市场份额中。还存在数据本地化法规,但这并非主要驱动因素。
我们为什么要写一篇关于 AWS 产品的文章?嗯,这是一个有趣的问题……
事实证明,在 AWS 本地区域目前提供的服务目录中,S3 并不在其中。虽然他们可能会(好吧,很可能会)随着时间的推移解决这个问题——他们已经编写了一个教程,概述了如何在 EC2 和 EBS 上运行 MinIO 来代替 S3。
让我们重复一遍:如果您的本地区域实例需要对象存储,MinIO 将是一个极佳的选择。
说我们受宠若惊是轻描淡写了。我们对 AWS 团队及其所构建的成果、他们如何改变行业、他们如何使对象存储成为主要存储以及他们如何始终以客户为中心表示极大的钦佩。由于这种对客户的痴迷,他们很乐意让客户使用 MinIO。这只会增加我们对他们的敬佩之情。其他公司不会发表任何言论。
MinIO 的案例在Leonardo Solano 撰写的一篇精彩的博文中进行了阐述。Leonardo 是拉丁美洲(波哥大)云加速团队的高级混合云解决方案架构师。这篇文章是用西班牙语写的,所以我们会提取要点。
Leonardo 在开头阐述了这个案例(由 Google 翻译提供)
“S3 对象存储在 AWS 区域中是原生存在的,但在本地区域中则不然(在发布此博文时)。为了在本地区域中使用,可以使用 AWS Marketplace 上提供的第三方软件解决方案,例如本文中介绍的解决方案。混合云对象存储是一种高性能分布式对象存储解决方案,可以在带有 EBS 卷的 EC2 实例上部署,并由 MinIO 直接维护和支持。”
鉴于 MinIO 是AWS Marketplace(以及Google Cloud 和Azure)中唯一的一个对象存储,所以该团队使用我们来编写本教程是合乎情理的。
这是架构图
Solano 继续描述了环境
“在此架构中,MinIO 的分布式模式将部署在 AWS 本地区域内的 EC2 实例上。此架构的 MinIO 集群将包含 2 个节点,每个节点将有 4 个 8GB 的 GP2 类型 EBS 卷……为了准备环境,必须有一个扩展到本地区域的子网的 VPC。在此示例中,在本地区域所依赖的区域中有一个 CIDR 为 10.0.0.0/16 的 VPC。”
由于简单地翻译整篇文章没有意义(尽管对于那些非常感兴趣的人来说,鉴于所有屏幕截图都是英文的,实际上非常容易),因此他详细描述的内容总结如下:
- 在 AWS 控制台中创建两个类型为 t3.medium 的 EC2 实例,除了启动卷之外,至少还有 4 个 EBS 卷。
- 通过 SSH 访问每个实例,并修改 /etc/hosts 文件以添加集群中每个主机(MinIO 要求)的 IP 地址。
- 创建 MinIO 用于存储对象的每个驱动器的挂载目录,格式化它们,挂载驱动器,并在挂载文件夹上授予读写权限。
- 使用文章中描述的参数在两个节点上启动 MinIO 服务。
- 配置应用程序负载均衡器或 ALB 并创建一个目标组以允许前端平衡。Leonardo 还详细介绍了如何为 MinIO API 访问创建另一个目标组。
- 如何通过 Web 控制台和 S3 的 AWS CLI 使用对象存储,以验证解决方案是否有效。
文章中提供了开发人员启动所需的一切。
更广泛地说,我们认为这非常令人兴奋,并希望鼓励我们的共同客户参与其中。这扩展了我们广泛讨论的一个主题——MinIO 无处不在——任何云,任何地方。AWS 本地区域有效地扩展了云的覆盖范围——更靠近边缘。在发布公关稿中引用的客户包括 Netflix、SuperCell、FOX、Edgegap、Ubitus、JamKazam、Masomo 和 Couchbase——所有这些客户都可以利用 MinIO 来满足其对象存储需求。
再次强调,我们对 AWS 对我们的高度评价深感荣幸。如果您有任何疑问,请随时在通用 Slack上提出。如果您成为市场客户,我们的工程师将通过SUBNET 门户在严格的 SLA 下直接为您解答。