EC2 实例配置 - SAP HANA 开启 Amazon
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

EC2 实例配置

Amazon EC2 实例设置可使用基础设施即代码或使用 Amazon 命令行界面或 Amazon 控制台手动应用。我们建议基础设施即代码自动化,以减少手动步骤并确保一致性。

重要

必须在所有群集节点上执行以下配置。确保节点间的一致性以防止出现群集问题。

分配或审阅 Pacemaker IAM 角色

必须将这两个集群资源 IAM 策略分配给与您的 Amazon EC2 实例关联的 IAM 角色。如果 IAM 角色未与您的实例关联,请为集群操作创建一个新的 IAM 角色。

  1. 打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/

  2. 选择您的一个群集节点。

  3. 在导航窗格中,选择操作安全修改 IAM 角色

  4. 选择包含在 “为 Pacemaker 创建 IAM 角色和策略” 中创建的策略的 IAM 角色。

  5. 选择更新 IAM 角色

  6. 对集群中的所有节点重复这些步骤。

分配或查看安全组

必须将在 “ Amazon 修改集群通信的安全组” 部分创建的安全组规则分配给您的 Amazon EC2 实例。如果安全组未与您的实例关联,或者所分配的安全组中不存在所需的规则,请添加该安全组或更新规则。

  1. 打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/

  2. 选择您的一个群集节点。

  3. 在 “安全” 选项卡中,查看安全组、端口和流量来源。

  4. 如果需要,请选择操作安全更改安全组

  5. 在 “关联的安全组” 下,搜索并选择所需的组。

  6. 选择保存

  7. 对集群中的所有节点重复这些步骤。

您可以使用 Amazon CLI 验证实例上的安全组规则:

$ aws ec2 describe-instance-attribute --instance-id <instance_id> --attribute groupSet

分配辅助 IP 地址

辅助 IP 地址用于在 corosync 中为群集创建冗余通信信道(辅助环)。群集节点可以使用辅助环进行通信,以防底层网络中断。

IPs 它们仅用于集群配置。辅助弹性网络接口 (ENI) IPs 提供与辅助弹性网络接口 (ENI) 相同的容错能力。有关更多信息,请参阅您的 EC2 实例的辅助 IP 地址

您可以使用 Amazon CLI 验证实例上的辅助 IP 配置:

$ aws ec2 describe-instances --instance-id <instance_id> \ --query 'Reservations[*].Instances[*].NetworkInterfaces[*].PrivateIpAddresses[*].PrivateIpAddress' \ --output text

验证:

  • 每个实例返回来自同一子网的两个 IP 地址

  • 主网络接口 (eth0) 均 IPs 已分配

  • 次要版本稍后 IPs 将用于 corosync.conf 中的 ring0_addr 和 ring1_addr

禁用 Source/Destination 检查

默认情况下,Amazon EC2 实例 source/destination 会执行检查,要求实例是其发送或接收的任何流量的来源或目的地。在 pacemaker 集群中,必须禁用从叠加 IP 接收流量的两个实例的 source/destination 检查。

以下 Amazon 控制台或 Amazon CLI 命令可用于修改该属性。

Amazon Console
  1. 打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/

  2. 选择您的一个群集节点。

  3. 在导航窗格中,选择操作网络更改 source/destination 检查

  4. 对于 Source/Destination 检查,当源或目标不是实例本身时,选择停止以允许流量。

  5. 对集群中的所有节点重复这些步骤。

Amazon CLI

要使用 Amazon CLI 进行修改(需要适当的配置权限),请执行以下操作:

$ aws ec2 modify-instance-attribute --instance-id <instance_id> --no-source-dest-check

对集群中的所有节点重复此操作。

要确认特定实例的属性值,请使用以下命令。该值false表示已禁用 source/destination 检查

$ aws ec2 describe-instance-attribute --instance-id <instance_id> --attribute sourceDestCheck

输出

{ "InstanceId": "i-xxxxinstidforhost1", "SourceDestCheck": { "Value": false } }

查看停止保护

为确保可以执行 STONITH 操作,您必须确保对属于起搏器集群的 Amazon EC2 实例禁用停止保护。如果修改了默认设置,请对两个实例使用以下命令通过 Amazon CLI 禁用停止保护。

以下 Amazon 控制台或 CLI 命令可用于修改该属性。

Amazon Console
  1. 打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/

  2. 选择您的一个群集节点。

  3. 选择操作实例设置更改停止保护

  4. 确保未启用停止保护

  5. 对集群中的所有节点重复这些步骤。

Amazon CLI

要使用 Amazon CLI 进行修改(需要适当的配置权限),请执行以下操作:

$ aws ec2 modify-instance-attribute --instance-id <instance_id> --no-disable-api-stop

对集群中的所有节点重复此命令。

要确认特定实例的属性值,请使用以下命令。该值false表示可以使用 Amazon CLI 停止实例。

$ aws ec2 describe-instance-attribute --instance-id <instance_id> --attribute disableApiStop

输出

{ "InstanceId": "i-xxxxinstidforhost1", "DisableApiStop": { "Value": false } }

查看自动恢复

故障发生后,必须以协调的方式恢复集群控制的操作。这有助于确保故障原因已知并得到解决,并且集群的状态符合预期。例如,验证是否没有待处理的屏蔽操作。

以下 Amazon 控制台或 CLI 命令可用于修改该属性。

Amazon Console
  1. 打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/

  2. 选择您的一个群集节点。

  3. 选择操作实例设置更改自动恢复行为

  4. 选择 “关闭” 可禁用系统状态检查失败时的自动恢复。

  5. 对集群中的所有节点重复这些步骤。

Amazon CLI

要修改自动恢复设置(需要相应的配置权限),请执行以下操作:

$ aws ec2 modify-instance-maintenance-options --instance-id <instance_id> --auto-recovery disabled

对集群中的所有节点重复此命令。

要确认特定实例的属性值,请使用以下命令。该值disabled表示不会尝试自动恢复。

$ aws ec2 describe-instances --instance-ids <instance_id> --query 'Reservations[*].Instances[*].MaintenanceOptions.AutoRecovery'

输出:

[ [ "disabled" ] ]