生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

使用 AWS CloudFormation 自动创建 Amazon Redshift 集群(三)

  • 2019-12-27
  • 本文字数:4529 字

    阅读完需:约 15 分钟

使用 AWS CloudFormation 自动创建 Amazon Redshift 集群(三)

先决条件

在设置 CloudFormation 堆栈之前,请注意以下先决条件。


  1. 您必须拥有 AWS 账户和拥有足够权限的 IAM 用户,才能与 AWS 管理控制台和前面的架构概述部分中列出的服务进行交互。您的 IAM 权限还必须包括创建由 AWS CloudFormation 模板创建的 IAM 角色和策略的权限。

  2. VPC CloudFormation 堆栈需要三个可用区来设置公有子网和私有子网。请确保选择具有至少三个可用区的 AWS 区域

  3. 在计划设置 CloudFormation 堆栈的 AWS 区域,在 EC2 控制台中创建 EC2 密钥对。确保您保存了私有密钥,您只能在此时保存。在设置 Amazon Linux 堡垒主机 CloudFormation 堆栈时,可以将该 EC2 密钥对用作输入参数。

使用 AWS CloudFormation 设置资源

我提供的这些 CloudFormation 模板可作为一般指导。请根据您的需求查看并自定义这些参数。如果您继续这些堆栈部署的某些资源,将会产生费用。

设置 VPC、子网和其他网络组件

此 CloudFormation 模板将创建 VPC、子网、路由表、互联网网关、NAT 网关、Amazon S3 网关终端节点和其他网络组件。按照以下步骤在您的 AWS 账户中创建这些资源。


  1. 登录到 AWS 管理控制台。

  2. 在顶部的导航功能区中,选择要在其中创建堆栈的 AWS 区域,然后选择下一步。此 CloudFormation 堆栈需要三个可用区来设置公有子网和私有子网。请选择具有至少三个可用区的 AWS 区域

  3. 请选择以下“启动堆栈”按钮。此按钮会在您的 AWS 账户中使用模板自动启动 AWS CloudFormation 服务。系统会需要登录时提示您。您可以根据需要从控制台中查看 CloudFormation 模板。


  4. CloudFormation 堆栈需要一些参数,如以下屏幕截图所示。

  5. 堆栈名称:输入有意义的堆栈名称,例如 rsVPC

  6. ClassB 第二个八进制数:指定 VPC IPv4 CIDR 块的第二个八进制数 (10.XXX.0.0/16)。您可以指定介于 0 到 255 之间的任何数字,例如,指定 33 来创建具有 IPv4 CIDR 块 10.33.0.0/16 的 VPC。要详细了解针对 IPv4 的 VPC 和子网大小调整,请参阅针对 IPv4 的 VPC 和子网大小调整


  7. 图 2:CloudFormation 控制台中的 VPC 堆栈

  8. 输入所有参数值后,请选择下一步

  9. 在下一个屏幕上,输入所需的任何标签、IAM 角色或任何高级选项,然后选择下一步

  10. 在最后一个屏幕上查看详细信息,并选择创建


创建堆栈需要几分钟的时间。参阅 AWS CloudFormation 资源部分,查看该堆栈设置的不同组件的物理 ID。


然后,您必须设置 Amazon Linux 堡垒主机,以便用于登录 Amazon Redshift 集群。

设置 Amazon Linux 堡垒主机

此 CloudFormation 模板会在 Auto Scaling 组中创建 Amazon Linux 堡垒主机。按照下面的步骤在 VPC 中创建堡垒主机。


  1. 在顶部的导航功能区中,选择要在其中创建堆栈的 AWS 区域,然后选择下一步

  2. 请选择以下“启动堆栈”按钮。此按钮会在您的 AWS 账户中使用要启动的模板自动启动 AWS CloudFormation 服务。

  3. CloudFormation 堆栈需要一些参数,如以下屏幕截图所示。

  4. 堆栈名称:输入有意义的堆栈名称,例如 rsBastion

  5. 父级 VPC 堆栈:输入您在上一步中设置的 VPC 堆栈的 CloudFormation 堆栈名称。在 CloudFormation 控制台中找到此值,例如 rsVPC

  6. 允许的堡垒外部访问 CIDR:x.x.x.x/x 格式输入允许的 CIDR 块,以允许对堡垒主机进行外部 SSH 访问。

  7. 密钥对名称:选择您在“先决条件”部分设置的密钥对名称。

  8. 堡垒实例类型:为堡垒实例选择 Amazon EC2 实例类型。

  9. LogsRetentionInDays:指定保留该堡垒主机的 CloudWatch 日志事件的天数。

  10. SNS 通知电子邮件:输入用于配置 SNS 主题以发送 CloudWatch 警报通知的电子邮件通知列表。

  11. 堡垒租区:选择您在其中启动堡垒主机的 VPC 租区。

  12. 启用横幅:选择后,可在通过 SSH 连接至堡垒时显示横幅。

  13. 堡垒横幅:使用默认设置或提供以下文件所在的 S3 位置:包含登录时主机显示的横幅文本的文件。

  14. 启用 TCP 转发:选择 True 可启用/禁用 TCP 转发。将该值设置为 true 可启用 TCP 转发(SSH 隧道)。此功能非常有用,但也可能带来安全风险,因此我建议您,若非必要,请保留默认的禁用设置。

  15. 启用 X11 转发:选择可启用/禁用 X11 转发。将该值设置为 true 可启用通过 SSH 登录 X Windows。X11 转发非常有用,但也可能带来安全风险,因此我建议您,若非必要,请保留默认的(禁用)设置。

  16. 自定义引导脚本:可选。指定在堡垒主机设置期间运行的自定义引导脚本 S3 位置。

  17. AMI 覆盖:可选。指定实例的 AWS 区域特定映像。


  18. 图 3:控制台中的堡垒堆栈

  19. 输入所有参数值后,请选择下一步

  20. 在下一个屏幕上,输入所需的任何标签、IAM 角色或任何高级选项,然后选择下一步

  21. 在最后一个屏幕上查看详细信息,选中****我确认,AWS CloudFormation 可能创建 IAM 资源复选框,然后选择创建


创建堆栈需要几分钟的时间。参阅 AWS CloudFormation 资源部分,查看该堆栈设置的不同组件的物理 ID。


现在,您可以设置 Amazon Redshift 集群了。

设置 Amazon Redshift 集群

此 CloudFormation 模板将会设置 Amazon Redshift 集群、CloudWatch 警报、AWS Glue 数据目录、Amazon Redshift IAM 角色和所需的配置。按照以下步骤在 VPC 中创建这些资源。


  1. 在屏幕右上角选择您要在其中创建堆栈的 AWS 区域,然后选择下一步

  2. 请选择以下“启动堆栈”按钮。此按钮会在您的 AWS 账户中使用模板自动启动 AWS CloudFormation 服务。


  3. CloudFormation 堆栈需要一些参数,如以下屏幕截图所示:

  4. 堆栈名称:输入有意义的堆栈名称,例如 rsdb

  5. 环境:选择 Amazon Redshift 集群的环境阶段(开发、测试、生产前、生产)。如果您为此参数指定_生产_选项,则会将快照保留期设置为 35 天,将 enable_user_activity_logging 参数设置为 true,并会针对高 CPU 利用率和高磁盘空间占用创建 CloudWatch 警报。将此参数设置为_开发_、_测试_或_生产前_会将快照保留期设置为 8 天,将 enable_user_activity_logging 参数设置为 false,并仅会针对高磁盘空间占用创建 CloudWatch 警报。

  6. 父级 VPC 堆栈:提供父级 VPC 堆栈的堆栈名称。 在 CloudFormation 控制台中查找该值。

  7. 父级堡垒堆栈(可选):提供父级 Amazon Linux 堡垒主机堆栈的堆栈名称。在 CloudFormation 控制台中查找该值。

  8. Redshift 集群的节点类型:输入您的 Amazon Redshift 集群的节点类型,例如 dc2.large

  9. Redshift 集群中的节点数:输入 Amazon Redshift 集群的计算节点数,例如 2

  10. Redshift 集群端口:输入 Amazon Redshift 集群的 TCP/IP 端口,例如 8200。

  11. Redshift 数据库名称:输入数据库名称,例如 rsdev01

  12. Redshift 主用户名:输入数据库主用户名,例如 rsadmin

  13. Redshift 主用户密码:输入主用户的字母数字密码。密码必须包含 8 到 64 个可打印的 ASCII 字符,不包括以下字符:/、“、\、”、\ 和 @。密码必须包含一个大写字母、一个小写字母和一个数字。例如 Welcome123

  14. 启用 Redshift 日志记录并上传 S3:如果您为此参数选择 true,则堆栈将为新创建的 S3 存储桶启用数据库审计。

  15. 并发集群的数量上限:针对并发性扩展输入介于 1 到 10 之间的任意数字。要配置 10 个以上的并发集群,您必须提交提升 Amazon Redshift 限额表单,申请提升限额。

  16. 静态加密:如果您为此参数选择 true,则数据库将使用 KMS 密钥加密您的数据。

  17. KMS 密钥 ID:如果您将此参数留空,集群会使用默认的 Amazon Redshift KMS 加密 Amazon Redshift 数据库。如果您输入用户创建的 KMS 密钥,那么集群会使用用户定义的 KMS 密钥加密 Amazon Redshift 数据库。

  18. Redshift 快照标识符:仅在您希望通过快照恢复时输入快照标识符。如果是新的集群,请将其留空。

  19. Redshift 快照的 AWS 账户 ID:输入创建快照所用的 AWS 账号。如果快照来自当前的 AWS 账户,或者如果您不想通过之前拍摄的快照恢复,请将其留空。

  20. Redshift 维护时段:输入 Amazon Redshift 集群的维护时段。有关更多信息,请参阅 Amazon Redshift 维护时段。例如 周六:05:00-sat:05:30

  21. Redshift IAM 角色的 S3 存储桶:输入现有的 S3 存储桶。堆栈会自动创建 IAM 角色,并将其与具有此存储桶的 GET 和 LIST 权限的 Amazon Redshift 集群相关联。

  22. AWS Glue 数据目录数据库名称:如果您不想创建 AWS Glue 数据目录,请将此字段留空。如果您需要关联的 AWS Glue 数据目录数据库,请为其输入名称,例如 _dev-catalog-01。_有关提供 AWS Glue 的 AWS 区域列表,请查看区域产品服务地图。

  23. SNS 通知的电子邮件地址:输入您用于配置 SNS 主题以发送 CloudWatch 警报的电子邮件通知列表。SNS 会向收件人发送订阅确认电子邮件。收件人必须选择此电子邮件中的确认订阅链接来设置通知。

  24. 唯一易记名称:此标签会指定唯一易记名称,作为 NAME 标签附加到此堆栈管理的所有 AWS 资源。

  25. 指定用户的电子邮件:此标签会指定与给定 AWS 资源相关联的用户电子邮件地址。堆栈会向此地址发送中断或维护通知。

  26. 功能层:此标签会指定具体的应用程序版本。

  27. 项目成本中心:此标签会指定与给定 AWS 资源的项目相关联的成本中心。

  28. 保密分类器:此标签会指定与资源相关联的数据的保密分类。

  29. 合规性分类器:此标签会指定 AWS 资源的合规性级别。


  30. 图 4:CloudFormation 控制台中的 Amazon Redshift 堆栈

  31. 输入参数值后,请选择下一步

  32. 在下一个屏幕上,输入所需的任何标签、IAM 角色或任何高级选项,然后选择下一步

  33. 在最后一个屏幕上查看详细信息,选中****我确认,AWS CloudFormation 可能创建 IAM 资源复选框,然后选择创建


创建堆栈需要几分钟的时间。参阅 AWS CloudFormation 资源部分,查看这些堆栈设置的不同组件的物理 ID。


设置完毕后,请登录 Amazon Redshift 集群,然后运行某些基本命令测试该集群。

使用 Amazon Linux 堡垒主机登录 Amazon Redshift 集群

以下说明假设您使用 Linux 计算机和 SSH 客户端连接至堡垒主机。有关如何使用多种客户端建立连接的更多信息,请参阅连接到 Linux 实例


  1. 将您在“先决条件”部分保存的 EC2 密钥对的私有密钥移至 SSH 客户端上的以下位置:您在该位置连接至 Amazon Linux 堡垒主机。

  2. 使用以下命令更改私有密钥的权限,使其无法公开查看。chmod 400 <private key file name, e.g., bastion-key.pem >

  3. 在 CloudFormation 控制台中,选择 Amazon Linux 堡垒主机堆栈。选择输出,并记下 SSHCommand 参数值,您在将 SSH 应用于 Amazon Linux 堡垒主机时会用到该参数值。

  4. 在 SSH 客户端上,将目录更改为您保存 EC2 私有密钥的位置,然后复制并粘贴上一步中的 SSHCommand 值。

  5. 在 CloudFormation 控制面板上,选择 Amazon Redshift 集群堆栈。选择输出并记下 PSQLCommandLine 参数值,您在使用 psql 客户端登录 Amazon Redshift 数据库时会用到该参数值。

  6. EC2 Auto Scaling 启动配置已在 Amazon Linux 堡垒主机上设置了 PostgreSQL 二进制文件。在堡垒主机命令提示符处复制并粘贴 PSQLCommandLine 值。

  7. `psql -h ClusterEndpointAddress -p AmazonRedshiftClusterPort -U Username -d DatabaseName```看到提示后,输入数据库用户密码。

  8. 运行某些基本命令,如以下屏幕截图所示:

  9. select current_database();

  10. select current_user;


  11. 图 5:成功连接至 Amazon Redshift


本文转载自 AWS 技术博客。


原文链接:https://amazonaws-china.com/cn/blogs/china/automate-amazon-redshift-cluster-creation-using-aws-cloudformation/


2019-12-27 11:29518

评论

发布
暂无评论
发现更多内容

华为云代码检查插件(CloudIDE版本)使用指南

与时俱进的时代

2022年的魔力象限领导者,为什么是华为数通?

白洞计划

华为

ZBC即将登录Coinbase Institutional,生态开年迎新利好

西柚子

2022年15款实用有趣的小程序推荐

FN0

小程序 小程序商城 小程序模版

SAST-静态应用安全测试

华为云PaaS服务小智

HummerRisk V0.9.0:增加RBAC 拓扑图,云检测、漏洞、主机等模块增加规则

HummerCloud

开源 云原生安全

2022年度 FinClip 扩展SDK推荐!

FN0

小程序 sdk SDK 教程

爆竹声响又是一年春节到 归心似箭阖家团圆享美食

Geek_2d6073

软件测试/测试开发 | 接口自动化测试中如何对xml 格式做断言验证?

测试人

软件测试 自动化测试 接口测试 测试开发 接口自动化

模块七--王者荣耀商城异地多活架构设计

闲人Eric

架构实战营

华为云发布CodeArts Check代码检查服务,守护软件质量和安全

IT科技苏辞

高效节能 | 智慧灯杆综合管理解决方案

AIRIOT

物联网 智慧灯杆

软件测试/测试开发 | 接口自动化测试如何搞定 json 响应断言?

测试人

json 软件测试 自动化测试 接口测试 测试开发

90%开发都会忽略的性能调优点:针对返回大数据量的接口,10分钟内找到提升带宽瓶颈的突破口

KINDLING

Java 性能调优 响应时间 ebpf 排障

数据中心的浪浪山

脑极体

业务-研发一体化管理平台,存在吗?

FinFish

小程序 小程序管理平台 小程序技术

华为云服务治理 — 隔离仓的作用

秃头也爱科技

火出圈的《中国奇谭》,如果浪浪山的小妖怪们也用WorkPlus

WorkPlus

Linux Radix Tree详解

Linux内核拾遗

数据结构 Linux内核 Radix Tree

以数据赋能AI量产落地,澳鹏团队在浦东AI智能创新应用大赛斩获佳绩

澳鹏Appen

人工智能 数据标注

荣誉+1,OpenMLDB 荣获 InfoQ 2022 年度杰出开源运营团队

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

技术人职场系列-务虚与务实

CatTalk

技术人生 职场发展

华为云服务治理 | 服务治理的一般性原则

与时俱进的时代

Spark 在 KaiwuDB 中的应用与实践

KaiwuDB

spark 多模数据库

【Dubbo3终极特性】「流量治理体系」一文教你如何搭建Dubbo3的控制台服务Dubbo-Admin

洛神灬殇

dubbo RPC Dubbo3 Dubbo-Admin

软件测试/测试开发 | 接口测试中如何使用Json 来进行数据交互 ?

测试人

json 软件测试 自动化测试 接口测试 测试开发

KaiwuDB 首席解决方案专家 金宁:1.0 时序数据库核心功能解读

KaiwuDB

时序数据库 海量数据高吞吐 复杂查询

【表面缺陷检测】表面缺陷检测数据集汇总

机器不学习我学习

简述JavaScript异步函数 async/await

devpoint

JavaScript Async await es7

华为云服务治理 | 微服务常见故障模式

IT科技苏辞

一个专科生的 2022 年终总结——默默努力,成为更好的自己

程序人生 年终总结 成长感悟 自学之路

使用 AWS CloudFormation 自动创建 Amazon Redshift 集群(三)_文化 & 方法_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章