写点什么

使用 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:29620

评论

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

2023-04-28:将一个给定字符串 s 根据给定的行数 numRows 以从上往下、从左到右进行 Z 字形排列 比如输入字符串为 “PAYPALISHIRING“ 行数为 3 时,排列如下 P

福大大架构师每日一题

Go 算法 rust 福大大

挑战 30 天学完 Python:Day14 高阶函数

MegaQi

挑战30天学完Python 三周年连更

什么是对象存储?对象存储的原理是什么?有哪些开源的、非开源的对象存储服务?

Java架构历程

对象存储 三周年连更

大模型“涌现”的思维链,究竟是一种什么能力?

脑极体

人工智能

《底层逻辑2:理解商业世界的本质》

石云升

读书笔记 三周年连更

Qz学算法-数据结构篇(二分查找、删除)

浅辄

三周年连更

Matlab实现最优化

Shine

三周年连更

Matlab实现机器学习

袁袁袁袁满

三周年连更

算法题每日一练:螺旋矩阵 I

知心宝贝

数据结构 算法 前端 后端 三周年连更

2023阿里云合作伙伴大会-主论坛回顾

科技pai

阿里云 伙伴大会 2023阿里云合作伙伴大会

极速上手使用Docker,这篇文章就够了!

浅羽技术

Java Docker centos 容器化 三周年连更

通过华为云ECS云服务器搭建安防视频监控平台

DS小龙哥

三周年连更

轻松处理pdf文件:Acrobat Pro DC 2023 中文激活版

真大的脸盆

Mac Mac 软件 PDF编辑 pdf编辑工具

火山引擎云原生数据仓库ByteHouse技术白皮书V1.0 (Ⅵ)

字节跳动数据平台

大数据 数据仓库 云原生 元数据 企业号 4 月 PK 榜

Go 方法接收器:选择值接收器还是指针接收器?

陈明勇

Go golang 方法 三周年连更 方法接收器

音视频八股文(8)-- h264 AnnexB

福大大架构师每日一题

音视频 ffmpeg 流媒体

CDH安装与部署

乌龟哥哥

三周年连更

切片的其他妙用

宇宙之一粟

Go 切片 三周年连更

如何评价 ChatGPT 回答策略的 ensure only ethical usage 特质

汪子熙

ChatGPT ChatGPT4 三周年连更

《流畅的Python》第二版上市了,值得入手么?

Python猫

Python

我们如何将 Amazon Snowcone 送入轨道

亚马逊云科技 (Amazon Web Services)

深入探讨Go语言中Semaphore信号量的机制原理

Jack

Windows下 IDE工具常见编译错误FAQ

鸿蒙之旅

OpenHarmony 三周年连更

读书笔记:如何成为某个领域的前1%

老张

读书笔记 方法 写作技巧

Bash 脚本中,特殊变量$0到底是什么?

wljslmz

bash Linux 三周年连更

LoRA: 大语言模型个性化的最佳实践

Zilliz

Towhee 大语言模型

城市的智能进化,汇成数字中国的璀璨银河

脑极体

智慧城市

Java注解编译期处理AbstractProcessor详解

石臻臻的杂货铺

Java

挑战 30 天学完 Python:Day15 错误类型

MegaQi

挑战30天学完Python 三周年连更

手撕代码系列(三)

Immerse

JavaScript 前端面试题 手撕代码 ES6-ES12 面试必考

高效理解机器学习

俞凡

机器学习 算法

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