在亚马逊 OpenSearch 服务中创建索引快照

聚焦模式
在亚马逊 OpenSearch 服务中创建索引快照 - 亚马逊 OpenSearch 服务

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon S OpenSearch ervice 中的快照是集群索引和状态的备份。状态包含集群设置、节点信息、索引设置和分片分配。

OpenSearch 服务快照有以下形式:

  • 自动快照仅用于集群恢复。在发生红色群集状态或数据丢失时,您可以使用它们还原域。有关更多信息,请参阅下面的恢复快照。 OpenSearch 该服务将自动快照存储在预配置的 Amazon S3 存储桶中,无需额外付费。

  • 手动快照用于集群恢复或者将数据从一个集群移动到另一个集群。必须启动手动快照。这些快照将存储在您自己的 Amazon S3 存储桶中,收取标准 S3 费用。如果您有来自自管理 OpenSearch 集群的快照,则可以使用该快照迁移到 OpenSearch 服务域。有关更多信息,请参阅迁移到 Amazon OpenSearch 服务

所有 OpenSearch 服务域都会自动拍摄快照,但频率在以下方面有所不同:

  • 对于运行 OpenSearch 或 Elasticsearch 5.3 及更高版本的域名,S OpenSearch ervice 会按小时自动拍摄快照,并将其中最多 336 张快照保留 14 天。由于其增量性质,每小时快照的破坏性较小。如果出现域问题,它们还提供更新的恢复点。

  • 对于运行 Elasticsearch 5.1 及更早版本的域名,S OpenSearch ervice 会在您指定的时间内每天自动拍摄快照,最多保留 14 张快照,并且不会将任何快照数据保留超过 30 天。

如果您的集群进入红色状态,则所有自动快照都会失败,而集群状态仍然存在。如果您在两周内未解决问题,则可能会永久丢失集群内的数据。有关问题排查步骤,请参阅红色集群状态

先决条件

要手动创建快照,您必须使用 IAM 和 Amazon S3。确保您已满足以下先决条件,然后再尝试创建快照。

先决条件 描述
S3 存储桶

创建 S3 存储桶以存储 OpenSearch 服务域的手动快照。有关说明,请参阅《亚马逊简单存储服务用户指南》中的创建通用存储桶。

记住要在以下位置使用它的存储桶名称:

  • 附加到 IAM 角色的 IAM policy 的 Resource 语句

  • 用于注册快照存储库的 Python 客户端(如果使用此方法)

重要

请勿对此存储桶应用 S3 Glacier 生命周期规则。手动快照不支持 S3 Glacier 存储类。

IAM 角色

创建 IAM 角色以向 OpenSearch 服务委派权限。有关说明,请参阅 IAM 用户指南中的创建 IAM 角色(控制台)。本章剩余部分将此角色称为 TheSnapshotRole

附加 IAM policy

将下面的策略附加到 TheSnapshotRole 以允许访问 S3 存储桶:

{ "Version": "2012-10-17", "Statement": [{ "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }

有关向角色关联策略的说明,请参阅 IAM 用户指南中的添加 IAM 身份权限(控制台)

编辑信任关系

编辑的信任关系TheSnapshotRole以在Principal语句中指定 S OpenSearch ervice,如以下示例所示:

{ "Version": "2012-10-17", "Statement": [{ "Sid": "", "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": "sts:AssumeRole" }] }

有关编辑信任关系的说明,请参阅 IAM 用户指南中的更新角色信任策略

权限

要注册快照存储库,您需要能够传递TheSnapshotRole给 OpenSearch 服务。还需要对 es:ESHttpPut 操作的访问权限。要授予这两个权限,请将以下策略附加到 IAM 角色,该角色的凭据用于签署请求:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/TheSnapshotRole" }, { "Effect": "Allow", "Action": "es:ESHttpPut", "Resource": "arn:aws:es:region:123456789012:domain/domain-name/*" } ] }

如果您的用户或角色没有 iam:PassRole 权限传递 TheSnapshotRole,在下一步骤中尝试注册存储库时,您可能会遇到以下常见错误:

$ python register-repo.py {"Message":"User: arn:aws:iam::123456789012:user/MyUserAccount is not authorized to perform: iam:PassRole on resource: arn:aws:iam::123456789012:role/TheSnapshotRole"}

删除手动快照

要删除手动快照,运行下列命令:

DELETE _snapshot/repository-name/snapshot-name

使用索引状态管理自动执行快照

您可以使用索引状态管理 (ISM) 快照操作根据索引的期限、大小或文档数量的变化自动触发索引的快照。如果需要为每个索引创建一个快照,ISM 是最佳选择。如果需要为一组索引创建快照,请参阅 使用快照管理自动处理快照

要在 OpenSearch 服务中使用 SM,您需要注册自己的 Amazon S3 存储库。有关使用snapshot操作的 ISM 示例,请参阅示例策略

将 Curator 用于快照

如果 ISM 不适用于索引和快照管理,则可以改用 Curator。它提供了高级筛选功能,可帮助简化复杂集群上的任务。使用 pip 安装 Curator:

pip install elasticsearch-curator

您可以使用 Curator 作为命令行界面 (CLI) 或 Python API。如果您使用 Python API,则必须使用旧式 elasticsearch-py 客户端的版本 7.13.4 或更早版本。它不支持 opensearch-py 客户端。

如果您使用 CLI,请在命令行处导出您的凭证并配置 curator.yml,如下所示:

client: hosts: search-my-domain.us-west-1.es.amazonaws.com port: 443 use_ssl: True aws_region: us-west-1 aws_sign_request: True ssl_no_validate: False timeout: 60 logging: loglevel: INFO

上一主题:

VPC 支持