我在 EC2 上运行了几个微服务。
我的目的是使用 AWS API 网关允许互联网访问 EC2 API。
Incoming Traffic is:
internet -> API Gateway -> EC2-server
我计划在 AWS Gateway 上使用 geedy HTTP 代理。但我有两个问题:
A) 如何在方法集成中的“URL 端点”中寻址 EC2?我可以用 AWS 私有 IP 吗?
B) 如何配置 EC2 安全组以允许 API 网关请求进入 EC2?
答案1
API Gateway 主要用于 Lambda,因此存在一些限制。为了最轻松地进行集成,您必须公开您的微服务,然后通过其他方式在 API Gateway 和您的服务之间进行身份验证。这听起来不像您想要做的……我也不想公开我的非公开服务!
为了完成您的要求(API 网关到私有 EC2 资源),您必须设置一个私人整合。这看起来非常像 AWS 为 S3 等服务实现服务端点的方式。基本上,你需要在服务前面放置一个 NLB然后,您设置 API 网关以通过VpcLink
资源联系该端点。流程如下:
API Gateway -> VpcLink resource -> NLB -> Target Group -> EC2 instances
也可以看看这个问题
答案2
注意:我只具有使用 Lambda 的经验,因此我从未使用纯 HTTP 后端测试过 AWS API 网关……即将其用作基于云的 nginx。
但根据@EdwardSamuel:
您可以使用AWS API 网关(文档)。
API Gateway 可帮助开发人员提供强大、安全且可扩展的移动和 Web 应用程序后端。API Gateway 允许开发人员安全地将移动和 Web 应用程序连接到业务逻辑主办AWS Lambda、托管在 Amazon EC2 上的 API,或托管在 AWS 内部或外部的其他可公开寻址的 Web 服务. 通过 API Gateway,开发人员可以为其后端服务创建和操作 API,而无需开发和维护基础设施来处理授权和访问控制、流量管理、监控和分析、版本管理和软件开发工具包 (SDK) 生成。
API 网关现在支持 HTTP 代理集成对于传递资源,因此您不需要明确描述您的有效负载和查询参数(这是以前所必需的)。