Consul - 在 AWS 上使用 Consul

在本章中,我们将学习如何在 AWS(Amazon Web Services)上使用 Consul。

AWS 的功能

在 AWS 中使用 Consul 时有用的一些功能是 −

  • 易于维护集群状态。
  • 可扩展性和高可用性。
  • 用于跨多个数据中心管理集群的出色用户界面。
  • 易于使用的命令行选项。

如果您正在寻找一种解决方案,我们可以使用 Docker 轻松地在 AWS 上部署 Consul。请查看以下链接 − https://github.com/dwmkerr/terraform-consul-cluster

AWS 部署

要使用 AWS,我们可以先为其创建一个 VPC。要在 AWS 中部署 consul,我们将使用 AWS 服务提供的快速入门模板。此模板可在以下位置轻松找到 - https://aws.amazon.com/quickstart/architecture/consul/

对于本章,我们假设您已经了解 AWS 的基础知识。 AWS CloudFormation 模板将创建以下组件 −

  • 一个跨三个可用区的具有公有子网和私有子网的 VPC

  • 一个 种子 Consul 服务器 和一个 种子客户端,以及两个 Auto Scaling 组。

  • 您可以选择创建 3、5 或 7 个服务器。客户端数量默认设置为三个,但用户可以配置。

  • Dnsmasq,它是在安装过程中为 Consul 安装和配置的。

  • 使用 bootstrap_expect 选项的 Consul 集群。

查看下图以了解不同组件如何互连。

Interconnected

使用 AWS

请确保您已使用 Web 控制台登录到 AWS 基础设施。现在,请将以下 URL 放入浏览器窗口中。输入 URL 并按回车键后,AWS 网站就会打开。

使用 AWS

对于此演示,我们将选择将其部署到新的 VPC(虚拟私有云)中。您可以随时通过以下链接检查 AWS 的 VPC 管理 - https://<awsregion>.console.aws.amazon.com/vpc/home。对于首次使用的用户,默认区域是美国西俄勒冈州。因此,您可以直接访问 URL - https://us-west- 2.console.aws.amazon.com/vpc/home。

VPC 管理

如您所见,AWS 的 VPC 服务已运行,并且您没有 VPC,即您的 AWS 帐户上已运行/配置。现在请根据您的选择单击 AWS 上的"部署到新 VPC"或"部署到现有 VPC"选项。您可以在网站上查看该选项,如以下屏幕截图所示。

VPC 服务

单击上述选项后,您可以看到它打开了另一个窗口,类似于下面显示的窗口。

创建堆栈

正如您在模板中看到的,AWS 已经为您选择了 URL。它还让您可以自由地根据需要自定义云形成模板。您可以根据需要对其进行自定义,然后单击"下一步"按钮继续。

指定详细信息

如您所见,您可以在此处配置各种不同的值和选项。对于某些更改,您可以根据自己的选择重命名它,以替换名称 HashiCorp-Consul。请随意更改其他选项以方便使用。

配置

如上所示,可以根据您的选择自定义多个选项。如您在 Consul 设置部分中看到的,默认的 Consul 集群实例类型为 t2.medium。您可以将其更改为您选择的实例。

注意 −将允许范围填写为 0.0.0.0/0,以允许任何 IP 地址。

默认情况下,consul 服务器的数量为三个。您可以将其更改为五个,以在 consul 环境中测试更多服务器。在快速启动配置下,您可以看到 S3 bucket 也被使用,并默认命名为快速启动参考。完成更改后,单击屏幕底部的下一步按钮。

选项

在上面的屏幕截图中,您可以看到有一个选项可以使用标签来更好地识别和使用。除此之外,您还可以选择 IAM 角色,以便向其他人提供对您的 VPC 堆栈的访问权限。您可以根据您选择的选项进行选择。

要获得更多高级选项,请选择高级选项卡,您可以在其中为您的 VPC 启用 Amazon SNS 以接收其通知。完成详细信息后,请继续执行下一个选项。

Review

上面的屏幕显示您已查看所选的 consul 堆栈的详细信息。您可以查看 VPC 堆栈的选定选项,然后继续到屏幕底部,选中 IAM 资源创建的确认框,然后单击"创建"按钮以完成堆栈的形成。

您可以在 AWS 管理控制台的 CloudFormation Stack 部分下检查输出。根据 VPC 输出,您还可以在 AWS 控制台的 VPC 部分查看它,如下面的屏幕截图所示。

CloudFormation

如果您仅测试 Consul 模板,请确保删除已使用的资源。您可以通过删除 CloudFormation 部分下的 CloudFormation Stack 和 VPC 仪表板上的 VPC 轻松完成此操作。