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

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

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

  • Dnsmasq,作为安装的一部分为 Consul 安装和配置。

  • 使用bootstrap_expect选项的 Consul 集群。

请看下图,了解不同组件是如何互连的。

互联

使用AWS

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

使用AWS

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

专有网络管理

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

专有网络服务

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

创建堆栈

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

指定详细信息

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

配置

正如您在上面看到的,可以根据您的选择定制多个选项。正如您在 Consul 设置部分中看到的,默认的 Consul Cluster 实例类型是t2.medium。您可以将其更改为您选择的实例。

- 将允许范围填写为 0.0.0.0/0 以允许任何 IP 地址。

默认情况下,consul 服务器的数量为 3。您可以将其更改为五个,以便在 consul 环境中测试更多服务器。在快速启动配置下,您可以看到还使用了S3 存储桶,并且默认将其命名为快速启动引用。完成更改后,单击屏幕底部的“下一步”按钮。

选项

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

如需更多高级选项,请选择高级选项卡,您可以在其中为您的 VPC 启用 Amazon SNS 的通知。完成详细信息后,请继续下一步选项。

审查

上面的屏幕显示您查看了所选领事堆栈的详细信息。您可以查看为 VPC 堆栈选择的选项,然后转到屏幕底部,选中创建 IAM 资源的确认框,然后单击“创建”按钮以完成堆栈的形成。

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

云形成

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