一、要求

  1. 创建一个三层网络架构,服务器只能通过跳板机连接;
  2. web 服务器只能由跳板机连接,80 端口只能由 ELB 访问,服务器不分配公网IP,外网连接通过 NAT;
  3. 数据库服务器只能由 web 服务器连接 3306 端口;
  4. 服务器分布在多 AZ。

网络架构图

网络各组件关系

组件包括 NACL,Route,Security Group,Internet Gateway,NAT Gateway,Elastic IP等。

画图工具:https://www.processon.com/i/5a24e7d6e4b0f3a798660105

二、操作步骤

2.1、网络设置

  1. 创建 VPC,如果希望创建的 EC2 实例带有公网 DNS,请打开 VPC 的DNS hostnames enable的设置;
  2. 创建 IGW,附加到 VPC 上面;
  3. 创建需要的六个子网,放在创建的 VPC 下面;
  4. 创建三个路由,分别为私网,NAT,公网;
  5. 公网路由添加条目0.0.0.0/0路由到 IGW,然后关联两个公有子网,两个公有子网开启自动分配公网IP;
  6. 私网路由不需要添加路由条目,默认即可,关联到两个私有子网;
  7. 创建 NAT 网关,选择放置公有子网;
  8. NAT 路由添加路由条目0.0.0.0/0路由到刚刚创建的 NAT 设备,然后关联两个私有子网;

2.2、安全设置

可以设置 NACL,为每个子网设置防火墙,我们这里为了简便,不再进行设置,只设置实例的安全组完成。

  1. 为跳板机实例创建安全组 bastion-sg,只允许特定的 IP 访问 22 号端口;
  2. 为 ELB 实例创建安全组 elb-sg,只允许访问 80 端口;
  3. 为 Web 实例创建安全组 web-sg,所有流量只允许 bastion-sg,elb-sg 组内的实例访问;
  4. 为数据库实例创建安全组 db-sg,只允许 web-sg 组内的实例访问 3306 端口。

2.3、创建实例

  1. 创建跳板机实例,选择第一个公有子网,配置好设定的安全组;
  2. 分别创建 Web 实例,选择三,四两个私有子网,配置好设定的安全组;
  3. 创建 RDS 子网租,选择五,六两个私有子网,创建实例,选择刚创建的子网组。

视频教程:https://edu.51cto.com/course/18611.html

三、费用

3.1、NAT 网关费用

如果选择在 VPC 中创建 NAT 网关,您需要为 NAT 网关预置和可用的每个“NAT 网关小时”付费。通过 NAT 网关处理的每个 GB 都要收取数据处理费,与流量源或目的地无关。运行未满一小时的 NAT 网关小时将按一小时计费。通过 NAT 网关传输的所有数据也会产生标准的 AWS 数据传输费用。如果您不希望再支付 NAT 网关费用,只需使用 AWS 管理控制台、命令行界面或 API 删除 NAT 网关即可。

例如弗吉尼亚北部价格:

每 NAT 网关的价格(USD/小时) 处理每 GB 数据的价格 (USD)
0.045 USD 0.045 USD

如何理解AWS 网络,如何创建一个多层安全网络架构的更多相关文章

  1. visjs使用小记-1.创建一个简单的网络拓扑图

    1.插件官网:http://visjs.org/ 2.创建一个简单的网络拓扑图 <!doctype html> <html> <head> <title> ...

  2. AWS探索及创建一个aws EC2实例

    一.AWS登陆 1.百度搜索aws,或者浏览器输入:http://aws.amazon.com 2.输入账户及密码登陆(注册流程按照提示走即可) 二.创建EC2实例(相当于阿里云的ecs) 1.找到E ...

  3. 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包

    MSBuild 的 Task 为我们扩展项目的编译过程提供了强大的扩展性,它使得我们可以用 C# 语言编写扩展:利用这种扩展性,我们可以为我们的项目定制一部分的编译细节.NuGet 为我们提供了一种自 ...

  4. 如何创建一个基于命令行工具的跨平台的 NuGet 工具包

    命令行可是跨进程通信的一种非常方便的手段呢,只需启动一个进程传入一些参数即可完成一些很复杂的任务.NuGet 为我们提供了一种自动导入 .props 和 .targets 的方法,同时还是一个 .NE ...

  5. OpenStack 网络总结之:openstack中网络的基本概念

    原文:openstack-install-guide-yum-icehouse.pdf/7. Add a networking service/Networking concepts OpenStac ...

  6. SQL Server创建、更改和删除架构

    SQL Server创建架构 学习如何使用SQL Server CREATE SCHEMA在当前数据库中创建新架构. SQL Server中的架构是什么 架构是包括表,视图,触发器,存储过程,索引等在 ...

  7. Unity带有网络功能——创建服务,并连接到一个特定的服务

    游戏本身需要在网络上创建服务,然后其他的游戏能够连接到这个服务,此外真实场景现在玩同样的游戏效果一起. 该方法是创建一个服务呼叫Network.InitializeServer( ): 是Networ ...

  8. [Swift通天遁地]四、网络和线程-(13)创建一个Socket客户端

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  9. [Swift通天遁地]四、网络和线程-(14)创建一个Socket服务端

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

随机推荐

  1. zookeeper 集群简单搭建,以及Error contacting service,It is probably not running问题解决

    第一步:现在http://www-eu.apache.org/dist/zookeeper/zookeeper-3.4.9/ 下载一个gz包,然后解压.当然,zookeeper 需要在java 的环境 ...

  2. hive优化,控制map、reduce数量

    一.调整hive作业中的map数 1.通常情况下,作业会通过input的目录产生一个或者多个map任务.主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文件块大小(目前为1 ...

  3. sql server 事务和锁的作用

    事务 事务就是作为一个逻辑工作单元的SQL语句,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上个节点.为了确保要么执行,要么不执行,就可以使用事务.而锁是实现事务 ...

  4. HSSFWorkbook 模版使用

    Java中导入.导出Excel 一.介绍当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用 ...

  5. public abstract啥时候可以省略?

    父类是抽象类,其中有抽象方法,那么子类继承父类,并把父类中的所有方法都实现覆盖了,子类才有创建对象实例的能力,否则子类也必须是抽象类.抽象类中可以有构造方法,是子类在构造子类对象时需要调用父类(抽象类 ...

  6. Linux操作系统常用命令合集——第三篇-系统管理操作(25个命令)

    1.whoami [命令作用] 显示当前登录有效用户名称 [命令语法]  whoami    [选项] [常用选项] 无 [参数说明] 用户名称 [命令示例] 显示当前登录有效用户名称 # whoam ...

  7. node的小知识点

    今天开始阅读node.js深入浅出这本书,阅读过程中会对某些理解有新的认识,所以特地把这些新认识或者知识点记录在这篇博客中 1.nodejs的优势在于 事件驱动.高并发.异步I/O 不适合cpu密集型 ...

  8. C++11多线程std::thread创建方式

    //#include <cstdlib> //#include <cstdio> //#include <cstring> #include <string& ...

  9. js new call apply bind 的 原理

    new new 做了什么事?1. 以 Object.protoype 为原型创建一个新对象 2. 以新对象为 this,执行函数的 [[call]] 3. 如果 [[call]] 的返回值是对象,那么 ...

  10. js的模块化之路

    在ES6之前,官方没有出来import export这种模块化的语法. 为了提高代码复用.避免污染全局,民间写了很多模块化的实现: 1. 立即执行函数 (function(globalVariable ...