AWS API网关作为基于EC2的微服务的代理

cal*_*iph 5 amazon-web-services amazon-api-gateway

我有几个微服务在 EC2 上运行。

我的目的是使用 AWS API 网关允许通过互联网访问 EC2 API。

Incoming Traffic is:
internet -> API Gateway -> EC2-server
Run Code Online (Sandbox Code Playgroud)

我计划在 AWS Gateway 上使用一个 geedy HTTP 代理。但我有两个问题:

A) 如何在方法集成中的“URL Endpoint”中寻址 EC2?我可以以某种方式使用AWS私有IP吗?

B) 如何配置 EC2 安全组以允许 API 网关请求进入 EC2?

Eri*_*son 6

API Gateway 主要用于与 Lambda 一起使用,因此存在一些限制。为了最简单的集成,您必须公开您的微服务,然后通过其他方式在 API Gateway 和您的服务之间进行身份验证。这听起来不像你想做的事......我也不想公开我的非公共服务!

为了执行您所要求的操作(私有 EC2 资源的 API 网关),您必须设置私有集成。这看起来非常类似于 AWS 为 S3 等服务实现服务端点的方式。基本上,您需要将 NLB 放在服务前面。然后设置 API 网关以通过VpcLink资源联系该端点。流程如下所示:

API Gateway -> VpcLink resource -> NLB -> Target Group -> EC2 instances

另请参阅这个问题