首页 > 解决方案 > 是否有允许在传入 TCP 连接上唤醒 VM/容器的云服务?

问题描述

我想托管一个在短时间内处理请求的网络服务器。它只需要不经常运行,而客户端连接到它。在客户端连接的情况下保持 VM 24/7 运行是一种浪费。

当有传入的 TCP 连接时,公共云提供商(例如 AWS、GCP、Azure 等)上是否有可以配置为唤醒/启动 VM(或带有用户二进制文件的某种形式的容器实例)的服务在某个端口上?

当某些事件发生时(创建的对象、消息队列、REST API 调用、http/https 访问),存在将按需启动容器或虚拟机的云服务。但是,我找不到任何用于处理通用 TCP 连接网络事件的东西。

用例:

我更喜欢 AWS 配方,但也许其他云提供商也有选择。也许某种负载平衡服务?我愿意为唤醒它支付几秒钟的延迟损失。

标签: paasiaas

解决方案


如果您控制客户端的代码,则可以将交互分成两部分。第一个向由 lambda 函数支持的 HTTP 端点发送请求。该函数将启动虚拟机/容器并使用服务器地址回复客户端。从那里,客户端可以正常继续。

由于您只需为每次实际调用的 HTTP 端点付费,因此在不使用它时您无需支付任何费用。

或者,可以创建一个 AWS Auto Scaling 组,其中最少有 0 个实例,最多有 1 个实例。由于您有时会拥有 0 个实例,因此您监控的 Auto Scaling 指标不能基于 EC2实例。因此,您需要在您的 Auto Scaling 组前面安装一个 AWS Elastic Load Balancer (ELB)。ELB 将指标发布到 AWS CloudWatch,您的扩展组应使用动态扩展策略使用这些指标。

在这一点上,您应该问自己,仅保持一个 nano 实例 24x7 运行是否既便宜又容易 - https://aws.amazon.com/about-aws/whats-new/2015/12/introducing-t2- nano-the-smallest-lowest-cost-amazon-ec2-instance/


推荐阅读