deg*_*ath 7 amazon-ec2 amazon-web-services amazon-vpc aws-api-gateway
我当前的解决方案: 我的应用程序由部署到 ECS 的两个单独的服务/容器组成。这些服务位于虚拟私有云 (VPC) 内部,为了公开我创建的 EC2 应用程序负载均衡器(该应用程序运行完美),我可以通过负载均衡器 URL 轻松访问该应用程序。
我想要实现的目标: 目前我正在尝试创建一个链接到上述负载均衡器的API网关,以通过API网关而不是负载均衡器访问应用程序。
为了实现这一目标,我 找到了一个 AWS 教程,它基本上完成了我想要做的事情,所以我一步步学习了本教程
ANY /{proxy+}来捕获基本上所有的东西一切都是一步一步的,与教程中的相同,但不幸的是最后一步我应该看到我看到的网页ERROR: 503 {"message":"Service Unavailable"}
我还做了什么来解决这个问题:
{
"requestId": "PgELwjAyjoEEPgQ=",
"ip": "185.244.96.51",
"requestTime": "24/Mar/2022:18:09:40 +0000",
"httpMethod": "GET",
"routeKey": "ANY /{proxy+}",
"status": "503",
"protocol": "HTTP/1.1",
"responseLength": "33"
}
Run Code Online (Sandbox Code Playgroud)
问题是,我在这里缺少什么?
我猜问题出在VPC链路和负载均衡器之间的连接上,但说实话我不知道如何检查和验证它。我一步一步点击了所有内容,在很多地方都有单选选项,所以我真的很困惑我可能在哪里犯了错误。这是基础设施的说明性照片以及我的猜测问题可能出在哪里(但这仍然是猜测。
我唯一能想到的是,为什么?说实话,APIGW 并不比 ALB 提供任何额外的价值。如果您已经在使用 ALB,最简单、最便宜且最好的做法是将您的 Route53 DNS 指向 ALB 并完成。
无论如何,VPC-link 永远不会工作,APIGW 不能与内部 VPC 一起工作,并且 VPC-link 要求客户端与服务位于同一 VPC 中。由于 VPC-link 位于 VPC 内部,而 HTTP API 位于 VPC 外部,这当然会导致问题,特别是“我找不到该依赖项”,其中 503 是预期的状态代码。
如果出于某种荒谬的原因,您仍然想将 APIGW 与公共 ALB 一起使用,您可以将 APIGW 直接指向 ALB DNS,然后就可以完成。但同样,这会带来负面价值,并且会花费额外的资金和性能,从而对您的用户、开发人员和企业钱包产生全面的负面影响。
如果出于某种原因,这里是有关 VPC-Link 的 AWS 文档。实际上,设置问题可能是进一步的配置问题。您可以通过检查 ALB 流日志来验证这一点。
| 归档时间: |
|
| 查看次数: |
2473 次 |
| 最近记录: |