部署Spring Boot Docker应用:创建EC2实例前需先建VPC和子网吗?是否为AWS新特性?
关于EC2实例创建与公网访问的问题解答
1. 是否需要手动创建VPC和子网才能创建EC2实例?这是新特性吗?
不需要手动提前创建VPC和子网。AWS在每个区域都会自动为你创建一个默认VPC,以及该VPC下的公有子网(每个可用区一个)。当你创建EC2实例时,如果不手动指定自定义VPC和子网,系统会自动使用默认VPC的子网完成实例部署。
这不是AWS的新特性,默认VPC机制已经存在很久了,目的是简化新用户的资源创建流程,让你无需先配置复杂的网络结构就能快速启动EC2实例。
2. 如何让EC2实例及Docker容器的Spring Boot API通过HTTP/HTTPS公网访问?
实例网络与安全配置
- 选择公有子网:创建实例时,选择默认VPC下的子网(默认都是公有子网),并确保实例分配到公网IP(创建实例时勾选“自动分配公网IP”选项,默认是开启的)。如果需要固定IP,可以后续绑定弹性IP。
- 配置安全组入站规则:
- 添加规则允许
0.0.0.0/0(或指定IP范围)访问TCP 80端口(HTTP) - 添加规则允许
0.0.0.0/0(或指定IP范围)访问TCP 443端口(HTTPS) - 如果你的Spring Boot容器直接映射到实例的非标准端口(比如8080),也需要开放对应端口,但更推荐映射到80/443以符合公网访问规范。
- 添加规则允许
Docker容器部署配置
- 端口映射:运行容器时,将Spring Boot应用的端口(默认8080)映射到EC2实例的80和443端口,示例命令:
# HTTP映射 docker run -d -p 80:8080 your-spring-boot-image:latest # HTTPS映射(需先给Spring Boot配置SSL证书) docker run -d -p 443:8443 -v /path/to/ssl/certs:/certs your-spring-boot-image:latest - Spring Boot SSL配置:在
application.properties中添加SSL相关配置(需将证书文件挂载到容器内):server.port=8443 server.ssl.key-store=/certs/your-keystore.jks server.ssl.key-store-password=your-password server.ssl.key-alias=your-alias - 可选:用Nginx反向代理处理HTTPS:如果不想在Spring Boot里配置SSL,可以在EC2实例上安装Nginx,配置HTTPS证书(可通过AWS Certificate Manager免费申请),然后将请求转发到容器的8080端口,这样更易于管理证书和多端口转发。
内容的提问来源于stack exchange,提问作者java12399900
相关产品推荐
相关产品推荐

