将从本地服务器迁移到在亚马逊AWS上的弹性工作负载的过程自动化的10个步骤

大家好!我是Elastic的技术产品营销经理/布道师铃木章太郎。我们创建了Elastic在Qiita上的组织,除了个人的文章之外,我也希望能够定期在组织中写博客。这个组织主要由我们公司的解决方案架构师4人和咨询顾问3人组成,但作为技术市场人员的我也会写博客,希望大家多多支持。

您是否准备好将自己管理的Elastic工作负载迁移到Elasticon Amazon Web Services(AWS),以充分利用成本、时间和规模的效益?我们将利用在AWS上开发的最佳实践和工具,确保快速且顺利的迁移。您可以先执行自助迁移路径选项,然后按照简易的“如何”步骤来自动化迁移。

选择添加本地数据集到 AWS 环境的弹性路径。

将本地数据集添加到AWS环境的Elastic的主要三个选项是重新导入数据,快照和恢复,以及从集群重新创建索引。

如果将数据源(应用程序、数据库、基础设施)迁移到AWS上,可以重新将数据从源头导入到Elastic中。 Elastic提供与流行的AWS服务的集成,使数据导入更加简化。只需点击一下,就可以捕获、存储和搜索数据。

2. 快照和恢复适用于需要将现有集群内的数据迁移到弹性云上,并且现有集群运行的 Elasticsearch 版本较旧于弹性云的情况。

另一个选项是重新创建索引从集群中。这对于数据量较少,使用快照和恢复受限,并且现有集群运行的 Elasticsearch 版本早于 Elastic Cloud 更合适。有关 Reindex API 的详细使用说明,请参阅迁移指南。

在这个博客中,我将介绍使用快照和恢复来自动化迁移路径的简单步骤。

使用快照和恢复进行自动化迁移。
让我们看看使用快照进行数据迁移,并使用Terraform(作为开源基础设施代码软件)进行恢复是多么容易。首先,让我们从前提条件开始。然后,我们将说明操作步骤。

前提条件

    1. 请确认要迁移的 Elastic Cloud 目标正在运行当前 Elasticsearch 集群的相同或更高版本。有关版本兼容性的详细信息,请参阅Elastic 快照和恢复指南。

 

    1. 请确认 Elastic Cloud 集群的基础设施容量足够满足用例的数据量和计算需求。

 

    1. 请检查并确认 Elastic 快照和恢复指南中列出的限制以及 Elastic 升级指南中特定版本的重大变更,以确保它们不会影响到部署到 Elastic Cloud 的迁移。

 

    1. 请确认已安装正确的 Terraform 软件版本,并确保 Terraform Vault 功能已启用。

 

    1. 收集所需的信息,如 Elasticsearch API 密钥(var.apikey)和 AWS 访问密钥(var.s3_client_access_key,var.s3_client_secret_key)。

 

    1. 请确认在本地和 Elastic on AWS VPC 以及其他 AWS 资源权限之间存在网络连接(直接连接)。

 

    如果现有的 Elasticsearch 集群尚未安装 Elasticsearch AWS CLI 和 Amazon Simple Storage Service(Amazon S3)插件,请使用以下命令从 Elasticsearch 家目录安装它们。
> sudo bin/elasticsearch-plugin install repository-s3
    可以使用以下命令,从现有的Elasticsearch集群的根目录将Amazon S3访问密钥添加到Elasticsearch密钥存储中(如果出现提示,请输入先前通过Amazon S3存储桶创建过程获得的正确密钥)。
> bin/elasticsearch-keystore add s3.client.default.access_key
> bin/elasticsearch-keystore add s3.client.default.secret_key
image.png

转移流程

    1. 使用Amazon S3服务创建并注册Elastic Cloud快照存储库。

 

    1. 创建并配置本地快照存储库,并指向Amazon S3存储桶。

 

    1. 从本地集群创建新的快照,并将其保存到Amazon S3存储桶中。

 

    1. 部署Elastic Cloud集群。

 

    1. 为Elastic Agent提供所需的AWS资源。

 

    1. 为无摩擦日志提取提供所需的Elastic无服务器转发器。

 

    1. 创建多个具有精细权限以访问部署过程所需的AWS服务的AWS身份和访问管理(IAM)实例角色。

 

    1. 关闭Elastic Cloud的所有索引。

 

    1. 从Elastic Cloud快照中恢复本地集群数据。

 

    最后,打开Elastic Cloud的所有索引。

展开手续

以下是前提条件部分中简要解释的详细步骤,例如收集所需的秘密访问密钥等。如果您已经拥有该密钥,则可以跳过第3步。

    1. 生成Elasticsearch Service(ESS)的API密钥。

 

    1. a. 打开浏览器,进入https://cloud.elastic.co/login。

 

    1. b. 使用电子邮件地址和密码登录。

 

    1. c. 点击Elasticsearch Service。

 

    1. d. 移动到[功能] > [API密钥],点击[生成API密钥]。

 

    1. e. 选择API密钥的名称。

 

    1. f. 将API密钥保存在安全的地方。

创建AWS访问密钥。
a. 创建允许列表、读取和写入权限的S3存储桶策略。
b. 创建IAM用户并附加上述创建的策略。
c. 确认IAM用户具有编程访问权限。
d. 将AWS访问密钥保存在安全的地方。

使用以下命令创建Terraform ElasticCloud迁移存储库的克隆。

git clone https://github.com/aws-ia/terraform-elastic-cloud
cdterraform-elastic-cloud
    1. 如果您正在使用HashiCorp Vault,您可以将Vault环境变量设置为以下内容:

 

    1. a. export VAULT_ADDR = “您的Vault URL”

 

    b. export VAULT_TOKEN = “您的VaultToken。添加Elasticsearch API密钥(在此示例中,路径为「ess」):”
vault kv put secret/ess apikey="Your Elastic API Key"

添加 AWS API 密钥(此处以 “aws” 作为示例路径)。

vault kv put secret/aws s3_client_access_key="Your AWS Access Key"     
s3_client_secret_key="Your AWS Secret Key"
    1. 需要提供一个密钥 – 这可以通过Terraform在不同的方式下执行。使用变量定义(.tfvars)来实现。这个新增加的功能可以自动化迁移到Elastic Cloud上的Elasticsearch集群。文件如下所示(如果使用HashiCorp Vault)。

 

    只需要为自承载式Elasticsearch分配URL,如以下示例所示。
var.local_elasticsearch_url (e.g., http://127.0.0.1:9200).

例如,可以在同一个 testing.tfvars 文件中添加 var.local_elasticsearch_url(如果使用 HashiCorp Vault)来示范如下。

name = "Elasticsearch Cluster"
local_elasticsearch_url = ""
vault_address = "Your Local Elastic Cluster URL"
vault_ess_path = "secret/ess"
vault_aws_path = "secret/aws"
apikey = "hashicorp/vault"
s3_client_access_key = "hashicorp/vault"
s3_client_secret_key  = "hashicorp/vault"

另外,也可以直接提供以下的密钥。

name = "Elasticsearch Cluster"
local_elasticsearch_url = ""
apikey = "Your Elastic API Key"
s3_client_access_key = "Your AWS Access Key"
s3_client_secret_key  = "Your AWS Secret Key"
    当这些变量在 .tfvars 文件中指定时(在下面的例子中,使用名为 testing.tfvars 的文件),可以执行如下的 Terraform 模块。
terraform init
terraform validate
terraform apply -var-file="testing.tfvars"

放弃展开

如果您不再需要由terraform模块进行的基础架构的配置,您可以使用以下命令轻松地终止所有资源。

terraform destroy -var-file="testing.tfvars"

利用 Elastic 和 AWS 优化迁移资源的利用。

Elastic 是 AWS ISV 工作负载迁移计划(WMP)合作伙伴,支持将自管理的本地 Elasticsearch 或 ELK 工作负载迁移到 Elastic on AWS。

Elastic 的方法论为客户提供了规范化且可重复的方法来加速迁移。同时,与 AWS Well-Architected Framework 和 AWS 迁移加速计划等 AWS 公开的迁移指南和最佳实践直接配合。

通过 AWS WMP 计划,您可以进一步利用引导指南、迁移资源、AWS 基础设施学分和资金援助,实现业务目标,加速云端之旅。

立即开始将 Elastic 迁移到 AWS 上。

团队将使用已知的Elastic解决方案进行迁移,以利用云端支持的所有功能。您可以查看此迁移指南、快速入门指南、网站和文档,或直接与我们联系以确认Elastic如何支持迁移(评估、规划、财务支持等)。此外,您还可以联系能够支持复杂且大规模工作负载迁移的Elastic咨询团队。您可以直接从AWS Marketplace获得7天的免费试用版,仅需数分钟即可部署Elastic。

鈴木章太郎是彈性技術產品營銷經理/傳道者。

广告
将在 10 秒后关闭
bannerAds