AWS入门实践-如何在AWS云上创建一个内外网隔离的生产环境

在 AWS 上建立一个内外网分离的生产环境,可以减少应用服务的暴露面,有效的保证你的应用服务器的安全。通常我们会将web应用放在外网的子网内,数据库服务器等放在内网的子网。我们将按照下图来部署动手实践环境,实现在public subnet的EC2虚拟机可以直接通过互联网可以访问,在Private subnet的EC2虚拟机不能通过互联网直接访问,但是却可以在内部来访问互联网安装应用等等。

下面是动手实践详细的操作步骤:

如果没有AWS的实验账号,请大家参考下面链接免费申请:

想学习云计算么?教你如何免费白嫖微软和AWS的云资源一年_免费使用azure一年-CSDN博客

一、创建VPC

  1. 在AWS管理控制台中,找到并选择"VPC"服务。点击"创建VPC",输入VPC的名称,选择一个合适的IPv4 CIDR块。例如,10.0.0.0/16。然后选择右下角的 Create VPC按钮创建

二、配置互联网网关

创建互联网网关并将其附加到 VPC,以允许公有子网中的资源访问互联网。

选择mytest-vpc,附加网关

三、公共子网(用于Web服务器)

VPC内创建一个子网,选择之前创建的VPC,分配一个CIDR块,例如10.0.1.0/24

如下图:在AWS Console VPC的左边菜单栏,选择Subnets 菜单,然后在右上角选择Create Subnet

在Subnet创建的界面中,选择刚才创建的VPC mytest-vpc

输入子网的名称 public-subnet1, 子网CIDR 10.0.1.0/24,然后选择"create subnet"

四、私有子网(用于内部资源)

  • 重复创建子网的步骤来创建另一个子网,用于内部资源,选择相同的VPC,分配一个不同的CIDR块,例如10.0.2.0/24。创建完成后,我们有两个子网在VPC内

五、NAT 网关

在公有子网中创建 NAT 网关,以允许私有子网中的资源访问互联网。

如下图,选择public-subnet,然后分配IP地址,

六、配置路由表

创建两个路由表,一个用于公有子网,另一个用于私有子网。公有子网路由表应包含到互联网网关的路由,私有子网路由表应包含到 NAT 网关的路由。

1、创建public-subnet的路由表

在AWS Console 的VPC找到左侧菜单的Route Table 菜单项目,然后选择Create routes

路由表创建完毕后,选择Edit Route table,增加一条指向0.0.0.0/0的指向互联网的路由,如下图:

选择子网关联(Subnet associations)TAB页,然后选择 "Edit subnet associations"

在Available subnets 中选择public-subnet1,然后选择save associations

2、创建private-subnet的路由表

在AWS Console 的VPC找到左侧菜单的Route Table 菜单项目,然后选择Create routes

创建完毕后选择编辑路由表,然后增加一条指向互联网0.0.0.0/0的路由,Target选择NAT Gateway,然后选择保存,如下图:

创建路由表的子网关联,如下图:选择"Edit subnet associations" 按钮

在Available subnets选择 private-subnet1,如下图

七、分别在public subnet和private subnet 创建EC2虚拟机

1、在public subnet 创建EC2虚拟机

如下图:选择免费的t2.micro linux 实例.选择之前创建好的VPC,选择自动分配公有IP,

2、在Private subnet 创建EC2虚拟机

如下图:选择免费的t2.micro linux 实例.选择之前创建好的VPC,选择禁用自动分配公有IP,

  • 创建安全组以控制对 EC2 实例的入站和出站流量。
  • 为公有实例和私有实例创建单独的安全组。

八、访问两个不同的EC2进行测试

选择public subnet的EC2实例,通过Putty来访问EC2实例,是可以访问的。

由于Private subnet上的EC2实例只有私网地址,所以是无法直接通过Putty 通过internet直接访问的,我们在public subnet上的这台主机来访问 private subnet 上的EC2实例。

首先上传.pem 文件到 public subnet上的EC2 实例,然后用ssh 命令来访问

找到private subnet ec2实例的连接信息,如下图:

拷贝实例连接命令行:

结果如下图:登录到private subnet 的EC2虚拟机上在内部是可以访问internet的。

通过这种设置,公有 EC2 实例可以直接访问互联网,而私有实例则只能通过 NAT 网关访问互联网。所有对外的流量都必须经过公有实例(如 Web 服务器或负载均衡器)。这样可以增强安全性,因为私有实例不直接暴露在互联网上。

需要注意的是,还需要根据具体需求配置安全组规则、路由表以及其他 AWS 服务(如 RDS、ElastiCache 等)。此外,还应考虑使用 AWS 的其他安全服务,如 AWS WAF、AWS Shield 等,以提高整体安全性。

相关推荐
workbuddy小能手5 小时前
腾讯云ADP Agent Portal vs 自建智能体:架构选型对比
架构·云计算·腾讯云
宸津-代码粉碎机8 小时前
Spring AI 企业级实战|智能记忆摘要+自动遗忘机制落地,彻底解决上下文爆炸与Token冗余
java·大数据·人工智能·后端·python·spring·云计算
tiancaijiben9 小时前
阿里云Elasticsearch搭建网站站内搜索功能:从零到生产级实战指南
云计算
tiancaijiben9 小时前
阿里云Linux云服务器搭建Joomla基础管理平台:从零到企业级部署
云计算
翼龙云_cloud9 小时前
阿里云代理商:如何管理CPFS的POSIX客户端挂载点?
运维·阿里云·云计算·阿里云 cpfs
xingyuzhisuan10 小时前
8 卡 / 16 卡 GPU 服务器机架布线与高速互联带宽优化技术详解
运维·服务器·云计算·gpu算力
tiancaijiben10 小时前
阿里云云消息队列RabbitMQ版配置流程:从实例创建到消息收发全解析
云计算
黄狗操作员1 天前
NCCL 2.29 官方文档参数解读
语言模型·云计算·运维开发·gpu算力
悠悠121381 天前
AWS DevOps Agent 体验一周后,我决定把 oncall 手机调成静音了
云计算·aws·devops