在10分钟内启动Elasticsearch集群- Google Compute Engine入门

首先

这是 Elasticsearch Advent Calendar 的第九天的文章。
我们将介绍使用 Google Compute Engine (GCE) 来快速构建分布式环境以启动 Elasticsearch 集群的步骤。GCE 提供“有效期为 60 天,价值 300 美元的信用额度”供新注册用户使用,所以如果您尚未注册,请趁此机会试一试。

目标读者

    • Elasticsearch のセットアップをしたことがある

 

    • Elasticsearch クラスタを作ったり壊したりして気軽に遊びたい

 

    • ローカル PC の中で VM を何台も立ち上げるのはツライ

 

    Google Compute Engine なにそれおいしいの?

谷歌计算引擎是什么?

在Google Cloud Platform中,有一个服务可以为用户提供与Google使用的基础设施相同的基础设施,类似于Amazon EC2可以轻松地创建和删除虚拟机。

请参考以下文章了解AWS和EC2的区别。
Yoshizumi’s Blog:选择Google计算引擎而不是AWS的10个理由

我本身在AWS的使用经验仅限于教程水平,但相比AWS,GCE的用户界面非常简单。尽管目前只有英文文档,但我印象中很容易上手。

用语 – 术语 / 语言

这里简要介绍即将出现的术语。

    • インスタンス (Instance)

GCE で動く仮想マシン。OS イメージやディスク、ネットワーク等を設定して作成する。使い終わったら削除する(インスタンスが生存していると課金対象となる)

インスタンステンプレート (Instance Template)

インスタンス(グループ)を生成するひな形の設定

インスタンスグループ (Instance Group)

インスタンステンプレートを元に任意の個数のインスタンスを一括管理(作成、削除)する

タグ

ファイアウォールのルールをインスタンスに適用するための名前。ルールにタグ名を割り当て、インスタンスにそのタグを付与することで、ファイアウォールの設定(開放するポート)を適用することができる

コンソール (Console)

GCE を含む Google Cloud Platform の Web UI

プロジェクト (Project)

関連するインスタンスやネットワーク設定を入れておく入れ物

建筑的过程

    1. 创建项目

 

    1. 创建防火墙规则

 

    1. 创建实例模板

 

    1. 创建实例组

 

    检查 Elasticsearch-head

创建项目

一旦GCE的注册完成后,应该会显示如下所示的项目管理界面。由于初始状态可能为空,所以让我们点击“创建项目”按钮来创建项目吧。项目ID将在API和SDK操作时使用,所以应该选择一个易于理解的值。但是,项目ID必须是在全体用户和所有项目之间唯一的字符串。在这里,我们选择了默认提供的字符串。

    • プロジェクト名: elasticsearch

プロジェクトID: linen-setting-788

gce-create-project.png

添加防火墙规则

Elasticsearch服务默认在9200端口上等待访问。本次需要直接从全球网络访问GCE上的Elasticsearch,因此需要打开此端口。在GCE上,http(80端口)可以很容易地打开,但除此之外没有特别准备,因此首先需要添加防火墙设置。

gce-network.png

在这里,您可以管理网络中可用的防火墙规则。名为” default-allow-http” 的规则允许从全局网络访问 tcp:80。规则还可以标记,并且该规则分配了” http-server” 标签。通过在实例上添加” http-server” 标签,可以将规则应用于该实例。

在这里,我们将创建以下规则。允许从全局网络访问 tcp:9200,并分配” elasticsearch-server” 标签。

    • 名前

allow-elasticsearch

ソースIPの範囲

0.0.0.0/0

プロトコルとポート

tcp:9200

ターゲットタグ

elasticsearch-server

gce-create-firewall-rule.png

创建实例模板

接下来,我们将创建一个用于安装 Elasticsearch 实例的模板。

建議在創建模板之前,先按照”VM實例 -> 新的實例”的步驟生成一個實例,以得到更深入的理解。實例生成和模板創建兩者的設置項目幾乎是相同的,所以這樣做後也會提高對後續操作的理解程度。

gce-template.png

以下是設定項目的清單。

    • テンプレート名

elasticsearch-template-1

メタデータ(スタートアップスクリプト)

key: startup-script-url

value: https://gist.githubusercontent.com/tomoemon/4f1042f8fccf02efd52a/raw/gistfile1.sh

タグ(ファイアウォール)

elasticsearch-server

マシンタイプはお好みで
ブートイメージ

backports-debian-7 …

プロジェクトへのアクセス(権限)

計算処理:「読み取り/書き込み」

gce-create-template-1.png
    1. 进行详细的显示。

 

    1. 指定模板的名称。

 

    设置可以从实例内访问的元数据。在这里,我们通过 startup-script-url 指定在 gist 上的 elasticsearch 构建脚本作为特殊值(关于构建脚本的详细说明稍后)。将该 URL 内的文本解释为 shell 脚本,并在启动时执行。
gce-create-template-2.png
    1. 我們將添加之前創建的防火牆設定。通過添加 elasticsearch-server 標籤,我們將開放 tcp:9200 端口。

 

    1. 您可以根據自己的喜好選擇機器類型。規格越高,單位時間的費用就越高,但免費配額不容易用完,所以選擇最高規格的機器也是一個不錯的選擇。

 

    您可以選擇操作系統映像。您可以選擇 Ubuntu、CentOS 或 RHEL 等,但在這裡我們選擇 debian。
gce-create-template-3.png
    最后,为了让Elasticsearch在集群中发现节点,我们将授予从实例内获取项目信息的API权限。完成输入后,请点击“创建”按钮。

创建实例组。

只要到这一步,接下来只需要一次性创建实例。
打开实例组的管理界面吧。

gce-instance-group.png
gce-create-group.png

设定项目为

    • インスタンスグループの名前

 

    • ゾーン(データセンターの場所)

日本に住んでいる場合は asia-east1-a 等アジアが良いでしょう

インスタンステンプレート

先ほど作成した elasticsearch-template-1 を選択します

インスタンスの数

大量に作りたいところですが、無料体験中はわりと厳しい上限があるので、3 インスタンス程度にしておきます

按下「创建」按钮后,将开始构建实例并执行启动脚本(安装 Elasticsearch)。

elasticsearch-head的中文翻译:弹性搜索头

生成实例组后,您将能够选择名为elasticsearch-group的组。请立即单击并查看组信息。

gce-instance.png

在画面的顶部显示了CPU使用率等图表,底部显示了组内实例的列表。选择一个合适的IP地址进行复制,然后在下面的URL中在浏览器中打开试试看。

使用中文改述:
請使用以下選項將其替換為中文:http://:9200/_plugin/head

假设大家都应该熟悉头文件已经打开了。
(如果没有打开,请点击IP地址右侧的SSH按钮,在实例内验证Elasticsearch是否正在运行)

gce-elasticsearch.png

以上是Elasticsearch集群的搭建完成。尽管数据还未加载,但接下来的内容我相信读者们会更加了解,因此交给你们自行处理。

关于启动脚本

初始脚本是一个大约30行的Shell脚本,前半部分是最基本的Elasticsearch设置,后半部分是GCE Cloud Plugin for Elasticsearch的发现设置(用于Elasticsearch节点的发现)。
插件安装步骤中要求设置项目ID和区域,但在这里我们通过API获取并设置了这两个值。由于可以在实例内部无需认证即可获取有关项目和实例的信息,因此在配置较简单的情况下,我们可以自动化设置。

结束了

这次我们介绍了Google Compute Engine,速度有点快。虽然周围可能还没有很多人在使用,但它很容易使用,所以请务必试一试。

当您变得熟悉后,可以尝试使用Google Cloud SDK进行更多自动化的挑战。

最后还有一件不可忘记的事情。

gce-delete-instance-group.png

删除实例组后,让我们去睡觉吧。

bannerAds