You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于AWS通过RDP连接C#桌面应用的部署启停方案问询

基于AWS EC2实现按需启停的RDP桌面应用部署方案

方案选型结论

优先选择AWS EC2,因为AWS WorkSpaces依赖专属客户端,无法使用标准RDP连接,且按需创建/启停的灵活性远不如EC2,完全匹配你的需求。

具体实现步骤

1. 制作自定义Windows EC2镜像(AMI)

  • 创建一台Windows EC2实例,完成以下配置:
    • 安装你的C#桌面应用及线缆硬件对应的驱动程序
    • 配置RDP虚拟通道(Windows原生支持,可通过组策略、注册表或应用自身适配完成)
    • 确保RDP服务正常启用,防火墙开放3389端口
  • 实例配置完成后,创建自定义AMI,作为后续按需创建实例的模板。

2. 按需创建EC2实例的触发流程

  • 搭建API Gateway + Lambda组合:
    • 客户端发起RDP连接前,先调用API Gateway暴露的接口
    • Lambda函数通过AWS SDK编写实例创建逻辑:指定自定义AMI、实例类型、安全组(仅开放RDP端口给指定客户端IP),创建成功后返回实例的公网IP/DNS给客户端

3. RDP断开时自动停止实例

有两种可靠实现方式:

  • 实例内后台服务监控:在自定义AMI中部署一个Windows服务(用C#编写),通过Windows Terminal Services API或WMI监听RDP会话状态,当检测到所有会话断开时,调用AWS SDK发送停止实例的请求
  • 云端监控触发:利用CloudWatch Events监控EC2实例的RDP会话连接数(或CPU使用率长时间低于阈值),当满足触发条件时,调用Lambda函数停止实例

4. 关键优化点

  • 安全层面:安全组仅允许客户端的公网IP访问3389端口,避免无授权访问
  • 成本控制:使用按需实例,停止后仅收取EBS存储费用;也可尝试Spot实例进一步降低成本
  • 异常处理:设置超时机制(如15分钟无RDP会话则自动停止实例),避免客户端异常断开导致实例持续运行

对两种方案的补充说明

  • AWS WorkSpaces:确实无法使用标准RDP连接,必须通过AWS WorkSpaces客户端访问,且其按用户订阅的模式无法实现“每次连接创建新实例、断开即停止”的灵活控制,不符合需求
  • AWS EC2:完全支持按需创建/启停实例,通过上述Lambda、API Gateway、监控服务的组合即可实现RDP连接与实例生命周期的联动

内容的提问来源于stack exchange,提问作者Florin P.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 15:06:07