如何理解AWS 网络,如何创建一个多层安全网络架构
一、要求
- 创建一个三层网络架构,服务器只能通过跳板机连接;
- web 服务器只能由跳板机连接,80 端口只能由 ELB 访问,服务器不分配公网IP,外网连接通过 NAT;
- 数据库服务器只能由 web 服务器连接 3306 端口;
- 服务器分布在多 AZ。
网络架构图
网络各组件关系
组件包括 NACL,Route,Security Group,Internet Gateway,NAT Gateway,Elastic IP等。
二、操作步骤
2.1、网络设置
- 创建 VPC,如果希望创建的 EC2 实例带有公网 DNS,请打开 VPC 的
DNS hostnames enable
的设置; - 创建 IGW,附加到 VPC 上面;
- 创建需要的六个子网,放在创建的 VPC 下面;
- 创建三个路由,分别为私网,NAT,公网;
- 公网路由添加条目
0.0.0.0/0
路由到 IGW,然后关联两个公有子网,两个公有子网开启自动分配公网IP; - 私网路由不需要添加路由条目,默认即可,关联到两个私有子网;
- 创建 NAT 网关,选择放置公有子网;
- NAT 路由添加路由条目
0.0.0.0/0
路由到刚刚创建的 NAT 设备,然后关联两个私有子网;
2.2、安全设置
可以设置 NACL,为每个子网设置防火墙,我们这里为了简便,不再进行设置,只设置实例的安全组完成。
- 为跳板机实例创建安全组 bastion-sg,只允许特定的 IP 访问 22 号端口;
- 为 ELB 实例创建安全组 elb-sg,只允许访问 80 端口;
- 为 Web 实例创建安全组 web-sg,所有流量只允许 bastion-sg,elb-sg 组内的实例访问;
- 为数据库实例创建安全组 db-sg,只允许 web-sg 组内的实例访问 3306 端口。
2.3、创建实例
- 创建跳板机实例,选择第一个公有子网,配置好设定的安全组;
- 分别创建 Web 实例,选择三,四两个私有子网,配置好设定的安全组;
- 创建 RDS 子网租,选择五,六两个私有子网,创建实例,选择刚创建的子网组。
三、费用
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 网络,如何创建一个多层安全网络架构的更多相关文章
- visjs使用小记-1.创建一个简单的网络拓扑图
1.插件官网:http://visjs.org/ 2.创建一个简单的网络拓扑图 <!doctype html> <html> <head> <title> ...
- AWS探索及创建一个aws EC2实例
一.AWS登陆 1.百度搜索aws,或者浏览器输入:http://aws.amazon.com 2.输入账户及密码登陆(注册流程按照提示走即可) 二.创建EC2实例(相当于阿里云的ecs) 1.找到E ...
- 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包
MSBuild 的 Task 为我们扩展项目的编译过程提供了强大的扩展性,它使得我们可以用 C# 语言编写扩展:利用这种扩展性,我们可以为我们的项目定制一部分的编译细节.NuGet 为我们提供了一种自 ...
- 如何创建一个基于命令行工具的跨平台的 NuGet 工具包
命令行可是跨进程通信的一种非常方便的手段呢,只需启动一个进程传入一些参数即可完成一些很复杂的任务.NuGet 为我们提供了一种自动导入 .props 和 .targets 的方法,同时还是一个 .NE ...
- OpenStack 网络总结之:openstack中网络的基本概念
原文:openstack-install-guide-yum-icehouse.pdf/7. Add a networking service/Networking concepts OpenStac ...
- SQL Server创建、更改和删除架构
SQL Server创建架构 学习如何使用SQL Server CREATE SCHEMA在当前数据库中创建新架构. SQL Server中的架构是什么 架构是包括表,视图,触发器,存储过程,索引等在 ...
- Unity带有网络功能——创建服务,并连接到一个特定的服务
游戏本身需要在网络上创建服务,然后其他的游戏能够连接到这个服务,此外真实场景现在玩同样的游戏效果一起. 该方法是创建一个服务呼叫Network.InitializeServer( ): 是Networ ...
- [Swift通天遁地]四、网络和线程-(13)创建一个Socket客户端
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- [Swift通天遁地]四、网络和线程-(14)创建一个Socket服务端
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
随机推荐
- [cf920E][set+dfs]
https://codeforc.es/contest/920/problem/E E. Connected Components? time limit per test 2 seconds mem ...
- java后台防止XSS的脚本攻击
import java.util.regex.Pattern; //具体过滤关键字符public class XSSUtil { private static Pattern[] patterns = ...
- 078_使用 egrep 过滤 MAC 地址
#!/bin/bash#MAC 地址由 16 进制组成,如 AA:BB:CC:DD:EE:FF#[0-9a-fA-F]{2}表示一段十六进制数值,{5}表示连续出现 5 组前置:的十六进制egrep ...
- CF798D Mike and distribution 贪心
我感觉这道题挺神的~ 假设 $a[i]=b[i]$,那么我们可以将 $a$ 降序排序,然后你发现只要你按照 $1,3,5......n$ 这么取一定是合法的. 而我们发现 $2$ 比取 $3$ 优,取 ...
- Linux操作系统常用命令合集——第六篇-软件包操作(2个命令)
一.前言介绍 软件包即程序包 程序包管理 关键词:rpm程序包管理.YUM仓库管理.源码编译安装 程序包管理: 将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装. ...
- javascript 闭包(closure)
<script type="text/javascript"> //闭包(closure):内层函数可以引用存在于包围它的函数内的变量,即使外层函数的执行已经结束 ...
- linux process cycle
As already discussed, a new process is created through fork() and if a new executable is to be run t ...
- VS2017 怎么启用nuget程序包还原?
以前VS2015的时候,在解决方案右键会有一个“启用nuget程序包还原”的选项. 现在换成2017了,这个选项的位置变成了“还原nuget包”,现在新建到TFS上的项目,别人下完都没法还原,求解! ...
- 制作 ESXI6.7 U盘安装盘并用其安装
工具 UltraISO :软碟通官网下载 EXSI镜像文件:http://ddl6.digiboy.ir/vmware/6.7/VMware-VMvisor-Installer-6.7.0-816 ...
- 到达型01背包---P1877 [HAOI2012]音量调节
P1877 [HAOI2012]音量调节 题解 solution 1 普通dfs 60pt dfs 暴搜,pos 记录当前到了第几首歌,level 记录当前的音量 一个小剪枝 由于每换一首歌都要调节 ...