本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon基础架构设置
本节介绍为集群部署准备Amazon环境所需的一次性设置任务:
为 Pacemaker 创建 IAM 角色和策略
除了标准 SAP 操作所需的权限外,集群还需要两个 IAM 策略来控制Amazon资源。必须使用 IAM 角色将这些策略分配给您的 Amazon EC2 实例。这使得 Amazon EC2 实例和集群能够调用Amazon服务。
注意
创建具有最低权限的策略,仅授予对集群内必需的特定资源的访问权限。对于多个集群,您可能需要创建多个策略。
有关更多信息,请参阅适用于 A mazon 的 IAM 角色 EC2。
STONITH 策略
SLES STONITH 资源代理(external/ec2)需要权限才能启动和停止集群的两个节点。创建策略,如以下示例所示。将此策略附加到分配给集群中两个 Amazon EC2 实例的 IAM 角色。
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeTags" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances" ], "Resource": [ "arn:aws:ec2:us-east-1:123456789012:instance/arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0", "arn:aws:ec2:us-east-1:123456789012:instance/arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0" ] } ] }
Amazon覆盖 IP 政策
SLES Overlay IP 资源代理 (aws-vpc-move-ip) 需要修改路由表中路由条目的权限。创建策略,如以下示例所示。将此策略附加到分配给集群中两个 Amazon EC2 实例的 IAM 角色。
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:ReplaceRoute", "Resource": [ "arn:aws:ec2:us-east-1:123456789012:route-table/rtb-0123456789abcdef0", "arn:aws:ec2:us-east-1:123456789012:route-table/rtb-0123456789abcdef0" ] }, { "Effect": "Allow", "Action": "ec2:DescribeRouteTables", "Resource": "*" } ] }
共享 VPC(可选)
注意
只有包含共享 VPC 的设置才需要按照以下说明操作。
Amazon VPC 共享允许您与同一 Organization Amazon s 中的其他账户共享子网Amazon。可以使用共享 Amazon VPC 的子网来部署亚马逊 EC2 实例。
在 pacemaker 群集中, aws-vpc-move-ip资源代理已得到增强,可支持共享 VPC 设置,同时保持与先前现有功能的向后兼容性。
这需要进行下列检查和更改:我们将拥有 Amazon VPC 的账户称为共享 VPC 账户,将要部署集群节点的使用者账户称为集群账户。Amazon
最低版本要求
默认情况下,随附的最新版本的 aws-vpc-move-ip代理 SLES15 SP3 支持共享 VPC 设置。以下是支持共享 VPC 设置所需的最低版本:
-
SLES 12-resource-agents-4.3.018.a7fb5035 SP5 -3.79.1.x86_64
-
SLES 15-资源代理-4.4.0+git57.70549516 SP2 -3.30.1.x86_64
-
SLES 15-resource-agents-4.8.0+git30.d0077df SP3 0-8.5.1
IAM 角色和策略
在共享 Amazon VPC 上使用叠加 IP 代理需要向两个Amazon账户(共享 VPC 账户和集群账户)授予一组不同的 IAM 权限。
共享 VPC 账户
在共享 VPC 账户中,创建一个 IAM 角色以向将成为集群一部分的 EC2 实例委派权限。在创建 IAM 角色期间,选择 “另一个Amazon账户” 作为可信实体的类型,然后输入 EC2 实例所在的Amazon账户 ID。 deployed/running
创建 IAM 角色后,在共享 VPC 账户上创建以下 IAM 策略,并将其附加到 IAM 角色。根据需要添加或删除路由表条目。
{ "Version":"2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "ec2:ReplaceRoute", "Resource": [ "arn:aws:ec2:us-east-1:123456789012:route-table/rtb-0123456789abcdef0", "arn:aws:ec2:us-east-1:123456789012:route-table/rtb-0123456789abcdef0" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "ec2:DescribeRouteTables", "Resource": "*" } ] }
接下来,编辑,移至 IAM 角色中的 “信任关系” 选项卡,并确保已正确添加您在创建角色时输入的Amazon账户。
在集群账户中,创建以下 IAM 策略,并将其附加到 IAM 角色。这是要附加到 EC2 实例的 IAM 角色。
STS 策略
{ "Version":"2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::123456789012:role/sharing-vpc-account-cluster-role" } ] }
STONITH 策略
{ "Version":"2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances" ], "Resource": [ "arn:aws:ec2:us-east-1:123456789012:instance/arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0", "arn:aws:ec2:us-east-1:123456789012:instance/arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "ec2:DescribeInstances", "Resource": "*" } ] }
修改集群通信的安全组
安全组控制允许到达和离开与其关联资源的流量。有关更多信息,请参阅使用安全组控制Amazon资源流量。
除了访问 SAP 和管理功能所需的标准端口外,还必须将以下规则应用于分配给集群中所有 Amazon EC2 实例的安全组。
| 来源 | 协议 | 端口范围 | 描述 |
|---|---|---|---|
|
安全组 ID(其自己的资源 ID) |
UDP |
5405 |
允许集群资源之间的 UDP 流量以进行 corosync 通信 |
|
用于管理的堡垒主机安全组或 CIDR 范围 |
TCP |
7630 |
(可选)供 SLES Hawk2 接口用来通过 Web 界面进行监控和管理。有关更多详细信息,请参阅 SUSE 文档使用 Hawk2 配置和管理群集资源 |
-
请注意此处使用
UDP协议。 -
如果您运行的是本地防火墙(例如 iptables),请确保允许在两个 Amazon EC2 实例之间通过上述端口进行通信。
为叠加层添加 VPC 路由表条目 IPs
您需要为重叠 IP 添加初始路由表条目。有关重叠 IP 的更多信息,请参阅重叠 IP 概念
向 VPC 路由表或与集群的 Amazon EC2 实例子网关联的表中添加条目。必须为 SAP HANA 主数据库节点手动添加目标(覆盖 IP CIDR)和目标(Amazon EC2 实例或 ENI)的条目。这样可以确保集群资源有路由可供修改。它还支持在配置集群之前,使用与重叠 IP 关联的虚拟名称安装 SAP。
使用 Amazon VPC 控制台或Amazon CLI 命令向叠加 IP 的表或表中添加路由。