【问题标题】:Query to AWS database always times out查询 AWS 数据库总是超时
【发布时间】:2020-05-04 16:37:06
【问题描述】:

我有一个应用程序,它包含一个部署到 AWS 的 Postgres 数据库、一个 React 前端和一个 Node 后端,它们都分别部署到 Heroku。我的问题是,当我去查询数据库时,请求总是超时。当我在本地运行我的应用程序但仍然部署了数据库时,这从未发生过。我将 AWS VPC 组设置为允许所有入站和出站流量。谁能帮我找出问题所在?以下是 AWS 错误日志:

Viewing Log: error/postgresql.log.2020-05-04-02 (3.2 kB)
2020-05-04 02:00:21 UTC::@:[5256]:LOG: checkpoint starting: time
2020-05-04 02:00:21 UTC::@:[5256]:LOG: checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.101 s, sync=0.002 s, total=0.109 s; sync files=1, longest=0.002 s, average=0.002 s; distance=16384 kB, estimate=16385 kB
2020-05-04 02:05:21 UTC::@:[5256]:LOG: checkpoint starting: time
2020-05-04 02:05:21 UTC::@:[5256]:LOG: checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.101 s, sync=0.001 s, total=0.109 s; sync files=1, longest=0.001 s, average=0.001 s; distance=16384 kB, estimate=16385 kB
2020-05-04 02:10:21 UTC::@:[5256]:LOG: checkpoint starting: time
2020-05-04 02:10:21 UTC::@:[5256]:LOG: checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.101 s, sync=0.002 s, total=0.109 s; sync files=1, longest=0.002 s, average=0.002 s; distance=16384 kB, estimate=16384 kB
2020-05-04 02:15:21 UTC::@:[5256]:LOG: checkpoint starting: time
2020-05-04 02:15:21 UTC::@:[5256]:LOG: checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.101 s, sync=0.002 s, total=0.110 s; sync files=1, longest=0.002 s, average=0.002 s; distance=16384 kB, estimate=16384 kB
2020-05-04 02:20:21 UTC::@:[5256]:LOG: checkpoint starting: time
2020-05-04 02:20:21 UTC::@:[5256]:LOG: checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.101 s, sync=0.001 s, total=0.110 s; sync files=1, longest=0.001 s, average=0.001 s; distance=16384 kB, estimate=16384 kB
2020-05-04 02:25:21 UTC::@:[5256]:LOG: checkpoint starting: time
2020-05-04 02:25:21 UTC::@:[5256]:LOG: checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.101 s, sync=0.001 s, total=0.109 s; sync files=1, longest=0.001 s, average=0.001 s; distance=16384 kB, estimate=16384 kB
2020-05-04 02:30:21 UTC::@:[5256]:LOG: checkpoint starting: time
2020-05-04 02:30:21 UTC::@:[5256]:LOG: checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.101 s, sync=0.001 s, total=0.109 s; sync files=1, longest=0.001 s, average=0.001 s; distance=16384 kB, estimate=16384 kB
2020-05-04 02:35:21 UTC::@:[5256]:LOG: checkpoint starting: time
2020-05-04 02:35:21 UTC::@:[5256]:LOG: checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.101 s, sync=0.001 s, total=0.109 s; sync files=1, longest=0.001 s, average=0.001 s; distance=16384 kB, estimate=16384 kB
2020-05-04 02:40:22 UTC::@:[5256]:LOG: checkpoint starting: time
2020-05-04 02:40:22 UTC::@:[5256]:LOG: checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.101 s, sync=0.002 s, total=0.109 s; sync files=1, longest=0.002 s, average=0.002 s; distance=16384 kB, estimate=16384 kB
2020-05-04 02:45:22 UTC::@:[5256]:LOG: checkpoint starting: time
2020-05-04 02:45:22 UTC::@:[5256]:LOG: checkpoint complete: wrote 1 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.101 s, sync=0.001 s, total=0.109 s; sync files=1, longest=0.001 s, average=0.001 s; distance=16384 kB, estimate=16384 kB
----------------------- END OF LOG ----------------------

安全组配置为:

【问题讨论】:

  • 您的 RDS 设置是否允许公共访问?默认情况下它是关闭的。
  • 超时通常表示没有网络连接。你能告诉我们与数据库关联的安全组的配置吗?数据库是否在公共子网中?
  • @Marcin 是的,它设置为公开。
  • @JohnRotenstein 我无法编辑我的帖子以添加图片,但我相信这就是您的要求? imgur.com/q41c1iVimgur.com/SU6yeKa。不知道是否在公有子网中,如何查看?
  • 入站规则中的 IP 地址是用于 Hiroku 还是您的本地计算机?要检查 vpc,请转到 vpc-id 并检查其 cidr IP 范围。这个 at 列表将告诉我们它的默认 vpc 是否所有子网都是公共的或不是默认的。

标签: postgresql amazon-web-services


【解决方案1】:

从评论转到答案...

安全组配置为仅允许来自单个 IP 地址的入站访问。

由于您的连接以前可以正常工作,但自从您移动应用程序后就无法正常工作,这表明此 IP 地址与您的本地计算机有关。您需要将安全组中的 IP 地址更改为现在的流量来源。

您可能还应该将其限制在必要的端口 (5432) 而不是所有流量

【讨论】:

    猜你喜欢
    • 2020-12-02
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 2016-01-15
    • 2018-08-03
    • 1970-01-01
    • 2017-12-09
    相关资源
    最近更新 更多