八年前配置AWS基础设施还得在控制台里点点点,现在一行代码就能搞定API网关。这篇实战记录怎么把API Gateway用Terraform架到EC2前面,顺便把SSL证书也挂上。
先看清架构变化:以前域名直接解析到EC2,现在要变成域名→Route53→API Gateway→EC2。中间多了层网关,但换来了统一的入口管理和证书托管。
![]()
第一步,SSL证书用ACM提前备好,记下ARN备用。代码在GitHub的iac-toolbox-project仓库v5-api-gateway分支里,可以直接拖下来跟着做。
核心模块分三块:建网关、配集成、设路由。网关用aws_apigatewayv2_api资源,protocol_type指定HTTP,这是v2版本的新API类型,比REST API轻量。
集成部分是关键。aws_apigatewayv2_integration把网关和EC2连起来,integration_type设HTTP_PROXY表示透传,integration_uri填EC2的完整地址比如http://1.2.3.4:8080。payload_format_version用1.0保证HTTP/1.1的透传格式。
路由规则用ANY /{proxy+}匹配所有方法和路径,target指向刚才的集成ID。这样任何请求都会原样转发到EC2。
最后别忘了阶段(Stage)。API Gateway必须定义部署和阶段才能对外服务,v2版本里这步简化了不少,但还是要显式声明。
安全组也得改:EC2的80端口只开给API Gateway的IP段,不是全网可访问。Route53的A记录指向网关生成的域名,整个链路就通了。
这套配置跑下来,基础设施即代码的好处很明显:改架构不用翻控制台,git diff就能看变更。网关层以后加限流、鉴权、缓存,也都是改几行配置的事。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.