AWS EBS 和 Aurora 中的 RoR 应用程序出现错误 504

Posted

技术标签:

【中文标题】AWS EBS 和 Aurora 中的 RoR 应用程序出现错误 504【英文标题】:Error 504 on RoR app in AWS EBS and Aurora 【发布时间】:2020-10-17 09:53:21 【问题描述】:

我们正在连接到 AWS Aurora mysql 集群(预配置)的 AWS 弹性 beanstalk 上开发一个 Ruby on Rails 应用程序。我们有一些长时间运行的查询,当我们运行它们时遇到错误 504,这似乎在 1 分钟标记处始终发生,我们做了许多配置(如下所列)试图增加这个阈值而没有任何运气。 我们在 nginx.conf 中对此进行了更改: keepalive_timeout 400s ;

还有: proxy_connect_timeout 43200000; proxy_read_timeout 43200000; proxy_send_timeout 43200000;

我们已经将 Elastic Beanstalk 中负载均衡器的空闲超时更改为 300 秒。

我们考虑更改 Aurora 中默认具有此配置的 MySQL 超时变量:

interactive_timeout:28800 等待超时:28800 ...

通过更改 Aurora 的组参数,但出现此错误: 保存错误:无法修改默认参数组。 (服务:AmazonRDS;状态码:400;错误码:InvalidParameterValue;请求 ID:814984cf-7231-4dd8-b3dd-762b16132652)

我也尝试创建一个新参数组,但是当我尝试将其分配给数据库集群/实例时,只有默认参数组作为选项出现。

有人有见解吗?

【问题讨论】:

【参考方案1】:

Aurora 使用两个参数组;集群参数组和实例参数组。您可能已经创建了一个集群参数组,并试图将其分配给实例,反之亦然。

同时创建一个新的集群参数组和一个新的实例参数组。然后编辑集群以设置集群参数组。然后您必须编辑集群中的每个实例并设置实例参数组。

更新集群和实例后,通过查看详细信息检查参数组是否“同步”(应显示在列出参数组的位置旁边)。如果它们不同步,则您必须重新启动实例。

【讨论】:

以上是关于AWS EBS 和 Aurora 中的 RoR 应用程序出现错误 504的主要内容,如果未能解决你的问题,请参考以下文章

从 Dockerrun.aws.json -AWS 增加 EBS 中的命令超时

Aurora依托AWS加速Aurora Driver的开发

[AWS][数据库]Aurora 动手实验&对比RDS Mysql性能

如何更改 cloudformation 中的默认根 EBS 大小? [AWS]

Kafka 连接设置以使用 AWS MSK 从 Aurora 发送记录

将内容从旧 EBS 卷复制到 AWS 中的新 Nitro 系统 EBS 的最佳方式(最简单/最快)?