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

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

Amazon 基础架构设置

本节介绍为集群部署准备 Amazon 环境所需的一次性设置任务:

为 Pacemaker 创建 IAM 角色和策略

除了标准 SAP 操作所需的权限外,集群还需要两个 IAM 策略来控制 Amazon 资源。必须使用 IAM 角色将这些策略分配给您的 Amazon EC2 实例。这使得 Amazon EC2 实例和集群能够调用 Amazon 服务。

注意

创建具有最低权限的策略,仅授予对集群内所需的特定资源的访问权限。对于多个集群,您可能需要创建多个策略。

有关更多信息,请参阅适用于 A mazon 的 IAM 角色 EC2

STONITH 政策

Red Hat STONITH 资源代理 (fence_aws) 需要权限才能启动和停止群集的两个节点。创建策略,如以下示例所示。将此策略附加到分配给集群中两个 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:<region>:<account_id>:instance/<instance_id_1>", "arn:aws:ec2:<region>:<account_id>:instance/<instance_id_2>" ] } ] }

Amazon 覆盖 IP 政策

Red Hat Overlay IP 资源代理 (aws-vpc-move-ip) 需要修改路由表中路由条目的权限。创建策略,如以下示例所示。将此策略附加到分配给集群中两个 Amazon EC2 实例的 IAM 角色。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:ReplaceRoute", "Resource": [ "arn:aws:ec2:<region>:<account_id>:route-table/<routetable_id_1>", "arn:aws:ec2:<region>:<account_id>:route-table/<routetable_id_2>" ] }, { "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

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:<region>:<sharing_vpc_account_id>:route_table/<routetable_id_1>", "arn:aws:ec2:<region>:<sharing_vpc_account_id>:route_table/<routetable_id_2>" ] }, { "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::<sharing_vpc_account_id>: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:<region>:<cluster_account_id>:instance/<instance_id_1>", "arn:aws:ec2:<region>:<cluster_account_id>:instance/<instance_id_2>" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "ec2:DescribeInstances", "Resource": "*" } ] }

修改集群通信的安全组

安全组控制允许到达和离开与其关联资源的流量。有关更多信息,请参阅使用安全组控制 Amazon 资源流量

除了访问 SAP 和管理功能所需的标准端口外,还必须将以下规则应用于分配给集群中所有 Amazon EC2 实例的安全组。

协议 端口范围 描述

安全组 ID(其自己的资源 ID)

UDP

5405

允许群集资源之间的 UDP 流量以进行 corosync 通信

  • 请注意该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 的表或表中添加路由。

Amazon Console
  1. 打开位于 https://console.aws.amazon.com/vpc/ 的 Amazon VPC 控制台。

  2. 在导航窗格中,选择路由表,然后选择与您的集群节点子网关联的路由表。

  3. 选择操作编辑路线

  4. 选择添加路由并配置 HANA 路由:

    目标位置 目标

    <hana_overlayip>/32

    i-xxxxinstidforhost1

  5. (可选)添加一条允许对辅助服务器进行读取访问的路由:

    目标位置 目标

    <readenabled_overlayip>/32

    i-xxxxinstidforhost2

  6. 选择保存更改

    除了标准路径外,您的路由表现在还包括必 IPs需的 Overlay 条目。

Amazon CLI

例如:

$ aws ec2 create-route --route-table-id <routetable_id> --destination-cidr-block <hana_overlayip>/32 --instance-id <instance_id_1>

如果需要启用读取的访问权限

$ aws ec2 create-route --route-table-id <routetable_id> --destination-cidr-block <readenabled_overlayip>/32 --instance-id <instance_id_2>