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 中的命令超时
[AWS][数据库]Aurora 动手实验&对比RDS Mysql性能
如何更改 cloudformation 中的默认根 EBS 大小? [AWS]