在创建群集之前,您必须配置将运行 Vertica 的网络。Vertica 需要许多特定的网络配置,才能在 AWS 上运行。除了默认的 Vertica 设置之外,您可能还有特定的网络配置需求。
重要
您可以创建一个使用 IPv6 在 AWS 上进行内部通信的 Vertica 数据库。但是,如果这样做,则必须使用 IP 地址而不是主机名来标识群集中的主机。AWS DNS 解析服务与 IPv6 不兼容。以下几节介绍了您需要为创建实例配置哪些 Amazon EC2 功能。
在创建群集之前,您必须配置将运行 Vertica 的网络。Vertica 需要许多特定的网络配置,才能在 AWS 上运行。除了默认的 Vertica 设置之外,您可能还有特定的网络配置需求。
以下几节介绍了您需要为创建实例配置哪些 Amazon EC2 功能。
为 AWS 配置网络的一环是创建以下内容:
放置组是单个可用性区域中实例的逻辑分组。群集需要放置组,并且所有 Vertica 节点必须位于同一个放置组中。
Vertica 建议将放置组用于那些受益于低网络延迟、高网络吞吐量或两者兼有的应用程序。要为放置组提供最低延迟、最高每秒数据包数网络性能,请选择支持增强网络的实例类型。
有关创建放置组的信息,请参阅 AWS 文档中的放置组。
您需要一个密钥对,才能使用 SSH 访问实例。使用 AWS 界面创建密钥对,并将密钥 (*.pem) 文件的副本存储在本地计算机上。当访问实例时,需要知道密钥的本地路径。
使用密钥对可以:
以 dbadmin 身份,从群集外部对到实例的连接进行身份验证。
在 AWS 实例上安装和配置 Vertica。
有关创建密钥对的信息,请参阅 AWS 文档中的 Amazon EC2 密钥对。
您在 Amazon 上创建虚拟私有云 (VPC),以便可以创建 EC2 实例的网络。您在 VPC 中的实例都共享相同的网络和安全设置。
AWS 上的 Vertica 群集在逻辑上必须位于同一网络中。创建 VPC 以确保群集中的节点可以在 AWS 中相互通信。
使用以下配置创建单个公共子网 VPC:
分配适合您的情况的网络访问控制列表 (ACL)。
为在此 VPC 中启动的实例启用 DNS 解析并启用 DNS 主机名支持。
有关创建 VPC 的信息,请参阅 AWS 文档中的创建虚拟私有云 (VPC)。
Vertica 需要在运行 Vertica AMI 的 AWS 实例上进行以下基本网络访问控制列表 (ACL) 设置。Vertica 建议您使用适合您情况的其他 ACL 设置来保护您的网络。
入站规则
出站规则
您可以使用上表中指定的整个端口范围,或者通过输入以下命令查找特定的临时端口:
$ cat /proc/sys/net/ipv4/ip_local_port_range
有关 AWS 中网络 ACL 的详细信息,请参考 Amazon 文档中的网络 ACL。
有关 AWS 中临时端口的详细信息,请参考 Amazon 文档中的临时端口。
AWS 支持三种类型的弹性负载均衡器 (ELB):
Vertica 强烈推荐使用 AWS 网络负载均衡器 (NLB),它可以为您的 Vertica 数据库提供最佳性能。网络负载均衡器充当客户端(例如 JDBC)和 Vertica 服务器之间的代理。经典负载均衡器和应用程序负载均衡器在企业模式或 Eon 模式下不适用于 Vertica。
为避免在通过 NLB 连接到 Vertica 时出现超时和挂起,请务必了解 AWS NLB 如何处理连接的空闲超时。对于 NLB,AWS 将空闲超时值设置为 350 秒,您无法更改此值。超时适用于两个连接点。
对于长时间运行的查询,如果客户端或服务器一方未能发送适时的 keepalive,则连接的那一方将被终止。这可能会导致 JDBC 客户端挂起并等待永远不会返回的结果,因为服务器未能在 350 秒内发送 keepalive。
要识别空闲超时/keepalive 问题,请通过 JDBC 等客户端运行如下查询:
=> SELECT SLEEP(355);
如果出现问题,则会发生以下情况之一:
客户端连接在 355 秒之前终止。在这种情况下,请降低 JDBC keepalive 设置,以便 keepalive 的发送间隔小于 350 秒。
客户端连接在 355 秒后不返回结果。在这种情况下,您需要调整服务器 keepalive 设置(tcp_keepalive_time 和 tcp_keepalive_intvl),以便 keepalive 的发送间隔小于 350 秒。
有关 AWS 网络负载均衡器的详细信息,请参阅 AWS 文档中的什么是网络负载均衡器?。
当创建 VPC 时,会自动为其分配 Internet 网关。您可以使用该网关,也可以分配自己的网关。如果您使用的是默认 Internet 网关,请继续执行创建安全组中所述的过程。
否则,请创建特定于您的需求的 Internet 网关。将该 Internet 网关与您的 VPC 和子网相关联。
有关如何创建 Internet 网关的信息,请参阅 AWS 文档中的 Internet 网关。
弹性 IP 地址是一个不变的 IP 地址,可用于从外部连接到群集。Vertica 建议您将单个弹性 IP 分配给群集中的节点。然后,您可以使用 VPC 设置规定的内部 IP 地址,从主节点连接到群集中的其他节点。
创建弹性 IP 地址。有关信息,请参阅 AWS 文档中的弹性 IP 地址。
Vertica AMI 具有特定的安全组要求。当创建虚拟私有云 (VPC) 时,AWS 会自动创建一个默认安全组,并将其分配给 VPC。您可以使用默认安全组,也可以命名和分配您自己的安全组。
使用以下基本安全组设置,创建并命名您自己的安全组。您可以根据特定的需求进行其他修改。
有关什么是安全组以及如何创建安全组的信息,请参阅 AWS 文档中的适用于 Linux 实例的 Amazon EC2 安全组。