将自定义 AWS S3 快照存储库连接到 Elastic Cloud

embedded/2024/11/29 8:16:19/

作者:来自 Elastic  Annie Hansen, Stef Nestor

在本博客中,我们将介绍如何通过 Elasticsearch 的快照将我们已提交的集群数据备份到 AWS S3 存储桶中。在 Elastic Cloud(企业版)中,Elastic 在其 found-snapshots 存储库下提供内置备份服务。Elasticsearch 还支持云(Cloud)和本地设置的自定义存储库,连接到所有平台类型的数据存储(如 AWS S3、GCP 和 Azure)以及本地文件系统。这些内置和自定义快照存储库为数据备份提供了很好的选择;自定义存储库用于长期存储和开关备份;找到快照用于持续的、最近的备份。用户经常将这两种方法集成到他们的生产集群中。

连接自定义 AWS S3 快照存储库 Elastic Cloud 支持故障排除

创建 AWS S3 存储桶

首先,我们将按照 AWS 指南设置一个 AWS S3 存储桶来存储我们的数据。

在 Create bucket 下,填写 Bucket name,其他选项保留默认设置。然后,单击 Next 创建此存储桶来保存我们的数据。在我们的示例中,存储桶名称将是 s3-custom-repository-bucket-demo。

设置 AWS IAM 策略

接下来,我们将通过创建 AWS IAM 策略(creating an AWS IAM policy)来设置对新创建的存储桶的访问授权。

在 Create policy 的第一步(称为 Specify permissions)下,我们将 Elastic Cloud 推荐的 S3 权限复制到 JSON “Policy editor” 中 — 仅保留 AWS 最初为其 “Version” JSON 键设置的值。你可能更喜欢 Elasticsearch 文档中概述的进一步权限限制。我们将用我们的存储桶名称 s3-custom-repository-bucket-demo 替换指南中 Resource 下的 JSON 占位符 bucket-name 。然后,我们将选择 Next 继续执行步骤 2:Review and create

我们将输入 Policy name 和 Description,然后选择 Next。对于我们的示例,策略名称将是 s3-custom-repository-demo-policy。

创建 IAM 用户

接下来,我们将创建一个 AWS IAM 用户(create an AWS IAM user),并通过我们新创建的 IAM 策略授予其授权。在 Create user 流程下,我们将从步骤 1 开始:Specify user details。我们将输入s3-custom-repository-demo-user 作为 user name,将页面上的所有其他选项保留为默认值,然后选择 Next 继续执行步骤 2:Set permission

在这里,我们将通过选择 “ Permissions Options” 值及 Attach polices directly 来为用户附加 IAM 策略。接着,在 “Permissions policies” 下,我们将搜索并启用我们的 IAM 策略。完成后,保留其他选项为默认设置,然后单击 “Next” 进入第 3 步:“Review and create”,最后滚动并点击 “Create user”。

设置 IAM 用户访问密钥

Elasticsearch 通过 IAM 用户的 access and secret key(而不是用户名和密码)连接到 AWS S3。为了将存储桶连接到我们的 Elasticsearch 集群,我们将创建一个访问密钥和密钥,以便稍后存储在部署的 Elasticsearch 密钥库中。在我们的 IAM 用户下,我们将选择 Create access key

这将引导我们进入步骤 1:Access key best practices & alternatives 下的 Create access key 流程。

对于 Use case,我们将选择 Third-party service,然后单击 Next。这将带我们进入第 2 步 - 可选:optional: Set description tag,我们将通过再次单击 Next 跳过该步骤,进入第 3 步:Step 3: Retrieve access keys

我们将安全地存储我们的 IAM 用户的新访问和密钥。

连接到部署

我们将把这些 IAM 用户访问权限和密钥添加到我们的 Elastic Cloud 部署中。

在我们部署的 security tab 下,我们将导航到 elasticsearch-keystore 并单击 Add settings。如果单独的 S3 存储库连接有多个访问和密钥对,Elasticsearch S3 存储库 JSON将通过 client 字符串映射我们的访问和密钥。我们的 IAM 用户的访问密钥将是 s3.client.CLIENT_NAME.access_key 的值,而密钥将是 s3.client.CLIENT_NAME.secret_key 的值,其中 CLIENT_NAME 是该 S3 JSON 映射的 client 值的占位符。由于 client 默认为 default,我们将在示例中使用相同的值,因此我们在 Setting name 下插入的访问和密钥值将分别存储在密钥 s3.client.default.access_key 和 s3.client.default.secret_key 下。

添加后,我们的密钥将显示在 “Security keys”下。出于安全考虑,添加后无法查看或编辑我们的密钥库值 — 只能删除以重新创建。

创建存储库连接

我们现在将通过 Kibana 注册我们的 AWS S3 Elasticsearch 存储库。我们将通过在 Dev Tools 下运行 node reload secure settings 将安全设置加载到集群中。

成功响应将发出 _nodes.failed: 0。我们的访问和密钥库对现已添加到 Elasticsearch 中,因此我们现在可以注册我们的 AWS S3 存储库。然后,我们将导航到 “Stack Management ” 下的 “Snapshot and Restore”,单击 “Repositories” 选项卡,然后选择 “Register a Repository”。

我们将为存储库定义 Name,并选择 AWS S33 作为 Repository Type。在我们的示例中,我们的存储库名称为 aws_s3。请注意,虽然大多数 Elasticsearch 功能(如分配)在最初注册后根据其存储的 uuid 从存储库加载数据,但 ILM 可搜索快照(ILM searchable snapshots)确实使用存储库 name 作为标识符。在迁移可搜索快照(searchable snapshot)数据时,需要在 Elasticsearch 集群之间进行对齐。

在 Register repository 下,添加我们的 Bucket 名称 s3-custom-repository-demo-bucket,保留所有其他选项的默认值,然后选择 Save。在我们的示例中,我们将 Client 留空,以便默认为 default 以匹配我们的 Elasticsearch 密钥库 CLIENT_NAME。请注意,一个 Elasticsearch 集群中一次只能有一个读写连接对存储库起作用;根据需要,请确保标记为 readonly,以避免意外覆盖或损坏数据。这将带我们进入 aws_s3 存储库概览 UI 抽屉。

在这里,我们可以选择 Verification status 下的 Verify repository,以确认所有节点都可以连接到我们的 AWS S3 存储桶并通过初始验证检查。我们还可以使用验证快照存储库从 Dev Tools 运行相同的测试。

这两个输出都返回成功连接到我们的 AWS S3 存储桶的相同节点列表。

捕获快照

我们现在准备将已提交的 Elasticsearch 集群的快照备份到 AWS S3 存储桶中。请注意,Elastic Cloud 的内置存储库 found-snapshots 也通过 Elasticsearch 的快照生命周期管理 (SLM) 定期执行备份。接下来,我们将运行 create snapshot 命令以创建快照。

我们的示例快照名称是 bats。生成的快照报告 state: SUCCESS。我们可以通过导航回我们的 AWS S3 存储桶 s3-custom-repository-demo-bucket 来确认结果,它显示 Elasticsearch 已将文件和子文件夹添加到我们的根目录中。

我们做到了!观看此视频,了解上述步骤。

此时,我们可以根据需要设置快照生命周期管理,以拍摄周期快照并管理快照保留。或者,我们可以断开 AWS S3 存储库的连接,将其连接到不同的 Elasticsearch 集群,以迁移此新快照数据。

本文中描述的任何特性或功能的发布和时间均由 Elastic 自行决定。任何当前不可用的特性或功能可能无法按时交付或根本无法交付。

原文:https://www.elastic.co/blog/custom-aws-s3-snapshot-repository-elastic-cloud


http://www.ppmy.cn/embedded/141408.html

相关文章

C#面向对象,封装、继承、多态、委托与事件实例

一.面向对象封装性编程 创建一个控制台应用程序,要求: 1.定义一个服装类(Cloth),具体要求如下 (1)包含3个字段:服装品牌(mark),服装…

java——spring容器启动流程

Spring容器的启动流程是一个复杂但有序的过程,它涉及多个步骤来确保应用程序的组件被正确加载、配置和初始化。以下是Spring容器启动的主要步骤: 一、加载配置文件 Spring容器首先会加载配置文件,这些配置文件通常包含了应用程序的组件、依…

蓝桥杯练习题

目录 1.劲舞团 2.数字诗意 3.封闭图形个数 4.回文数组 欢迎 1.劲舞团 0劲舞团 - 蓝桥云课 #include <iostream> using namespace std; int main() {int num1,M0;long long c[1000000];int cnt0;string a,b ;while(cin>>a>>b>>c[cnt])//系统自动输入…

【图像处理】用Python和OpenCV实现简单的图像增强与特征提取

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 图像处理是计算机视觉领域的重要基础,而图像增强和特征提取是其中的关键技术。本文将详细探讨如何使用 Python 和 OpenCV 实现图像增强与特征提取。通过具体示例,我们将介绍滤波、直方图均衡化、边缘检测…

深度学习实战人脸识别

文章目录 前言一、人脸识别一般过程二、人脸检测主流算法1. MTCNN2. RetinaFace3. CenterFace4. BlazeFace5. YOLO6. SSD7. CascadeCNN 三、人脸识别主流算法1.deepface2.FaceNet3.ArcFace4.VGGFace5.DeepID 四、人脸识别系统实现0.安装教程与资源说明1. 界面采用PyQt5框架2.人…

公网弹性绑定负载均衡收费吗?

公网弹性绑定负载均衡收费吗&#xff1f;公网弹性绑定负载均衡&#xff08;ELB&#xff09;是收费的。费用主要包括公网IP费、带宽费和负载均衡实例费。其中&#xff0c;带宽费可以按固定带宽或实际使用流量计费&#xff0c;而实例费则根据类型、规格和使用时长来定价。此外&am…

SQL常见面试题(四)

专用窗口函数 MySQL 8.0 版本引入了窗口函数的支持&#xff0c;下面是 MySQL 中常见的窗口函数及其用法&#xff1a; ROW_NUMBER(): 为查询结果集中的每一行分配一个唯一的整数值。 SELECT col1, col2, ROW_NUMBER() OVER (ORDER BY col1) AS row_num FROM table; RANK(): …

深入浅出剖析典型文生图产品Midjourney

2022年7月,一个小团队推出了公测的 Midjourney,打破了 AIGC 领域的大厂垄断。作为一个精调生成模型,以聊天机器人方式部署在 Discord,它创作的《太空歌剧院》作品,甚至获得了美国「数字艺术/数码摄影」竞赛单元一等奖。 这一事件展示了 AI 在绘画领域惊人的创造力,让人们…