1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 你好,
将 Amazon API Gateway 放置在您的负载均衡器前面,作为在 EC2 实例上运行的后端的入口门,这确实遵循了最佳实践。我了解到您想通过 API 网关安全私密地访问在 EC2 实例中运行的自定义 API 服务器。另一种理解是您想通过 API 网关调用 EC2 服务 API 操作(例如“AcceptReservedInstancesExchangeQuote”),但您需要一个复杂的实现来使用“AWS 服务”集成类型来支持它们,我认为这不是这里的要求。
**解决方案:**使用来自 API 网关的公共 REST API,通过 VPC 链接进行私有集成,来自 Elastic Load Balancing (ELB) 服务的私有网络负载均衡器 (NLB),VPC 至少有 2 个子网(1 个公共带有 NAT 网关和 1 个私有),以及一个运行您的自定义 API 服务器的 EC2 实例放置在私有子网内,路由通过放置在公共子网中的 NAT 网关指向 Internet。将 RDS 实例放在私有子网中。
参考:
- 设置 API 网关私有集成:API 网关私有集成使得在 Amazon VPC 中公开您的 HTTP/HTTPS 资源以供 VPC 外部的客户端访问变得简单 -- <https://docs.aws.amazon.com/ apigateway/latest/developerguide/set-up-private-integration.html>
- NAT 网关:您可以使用 NAT 网关,以便私有子网中的实例可以连接到 VPC 外部的服务,但外部服务无法启动与这些实例的连接 -- <https://docs.aws.amazon.com/vpc /latest/userguide/vpc-nat-gateway.html>
现在,来到你的最终问题清单:
- 将您的 EC2 实例放置在私有子网中,并带有通往 NAT 网关的路由,放置在具有 Internet 网关的公共子网中以访问 Internet。将 RDS 实例放在私有子网中。
- 内部国家图书馆。按照 https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-nlb-for-vpclink-using-console.html 中的说明进行操作
- 在 API 网关的 REST API 配置中,私有集成的集成请求部分,如果您使用集成类型“VPC 链接”,则配置选项是“VPC 链接”作为您需要创建的资源,以使 API 网关成为-NLB 连接,以及“端点 URL”,它是来自内部 NLB 的 DNS 名称(A 记录)或在您的 EC2 实例中运行的服务器的 DNS 名称。不要使用集成类型“AWS 服务”(因此,没有 AWS 子域)。
- 不要使用 EC2 实例来抵御 DDoS 攻击。改用 API 网关 -- https://docs.aws.amazon.com/whitepapers/latest/aws-best-practices-ddos-resiliency/protecting-api-endpoints-bp4.html 并通过 WebACL 利用 AWS WAF 来保护您的 REST API 端点——https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-control-access-aws-waf.html
亲切的问候,
路易斯
相关内容
- AWS 官方已更新 3 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 4 年前