零基础5分钟上手亚马逊云科技核心云开发知识 - 网络基础

news/2024/9/18 19:11:07/ 标签: 科技, 云计算, aws, 亚马逊云科技, 学习, 网络, 架构

简介:

欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列,适用于任何无云计算或者亚马逊云科技技术背景的开发者,通过这篇文章大家零基础5分钟就能完全学会亚马逊云科技一个经典的服务开发架构方案。

我会每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿云开发/架构技术解决方案,帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS最佳实践,并应用到自己的日常工作里。本次介绍的是如何在亚马逊云科技上创建一个最基础的网络环境VPC,对VPC网络通过公有和私有子网进行划分,并为VPC配置网关和路由表实现VPC内部的EC2服务器、数据库服务器间,及外部用户和EC2服务器间的网络通信。本方案架构图如下:

方案所需基础知识  

亚马逊云科技 VPC 介绍

亚马逊云科技 Virtual Private Cloud(VPC)是一项服务,允许用户在亚马逊云科技的云环境中创建一个逻辑上隔离的网络。通过 VPC,用户可以完全控制虚拟网络的配置,包括选择 IP 地址范围、创建子网、配置路由表和网络网关等。这种定制化的网络环境使得用户能够安全地运行和管理 AWS 资源,并与其他网络进行安全连接。

为什么将 VPC分割成 三层网络架构

设计 VPC 三层网络架构的目的是构建一个安全、可扩展、易管理的网络环境。通过将网络功能分层,确保每一层的资源安全隔离,同时优化网络性能和管理效率。

增强安全性

网络隔离:将不同功能的资源分配到不同子网,外层子网处理互联网流量,中间层和内层子网保护核心资源,防止外部攻击。

访问控制:通过安全组和网络 ACL 实现精细化访问控制,确保只有授权流量能够访问特定资源。

高可用性与容灾能力

跨可用区部署:在多个可用区创建子网,确保即使某个可用区故障,应用仍能运行。

负载均衡:在外层子网配置负载均衡器,分发流量,确保应用在高流量情况下稳定运行。

优化资源管理

分层管理:不同层的资源可以独立扩展、监控和管理,简化运维。

自动扩展:根据流量变化自动扩展中间层实例,确保资源高效利用。

提高性能与效率

流量优化:通过分层处理流量,提升网络性能和效率。

灵活扩展:独立扩展各层资源,灵活应对业务需求。

本方案包括的内容:

1. 了解构建VPC网络所需组件

2. 为VPC内部的子网配置路由表

3. 为VPC配置网关允许VPC与外部通信

4. 为EC2服务器配置Security Group安全组防火墙,允许外部流量进入

项目搭建具体步骤:

1. 首先我们创建2台EC2服务器,一台安装网页服务器,命名为"Web Server",放置于VPC网络的共有子网。一台安装数据库,命名为”DB Server“,放置于VPC网络的私有子网。

2. 接下来我们进入该网页服务器的子网中,点击进入路由表。

3.点击Edit配置,为路由表添加一个新的路由,将发往0.0.0.0/0的请求通过Internet Gateway发往外部站点,用于网页服务器与外部站点的交互。

4. 我们再点击网页服务器的security Group安全组,进入安全组配置

5. 点击”Edit Inbound Rules“对安全组防火墙的入站规则进行修改。

6. 我们点击Add添加一条防火墙规则,规则配置为HTTP协议,端口80,允许源IP为所有”0.0.0.0/0“。

7. 配置好入站防火墙后,我们再复制该网页服务器的IP,在浏览器中打开。

 8. 就可以打开网页服务器托管的html网页了,我们对数据库服务器应用同样的方法配置路由和防火墙,就可以让网页服务器中的应用访问数据库进行数据读取和写入了。

通过代码创建VPC步骤:

除了通过控制台,我们还可以使用Boto3 SDK的Python代码来创建一个三层网络VPC,代码如下:

import boto3# Initialize a session using Amazon EC2
ec2 = boto3.resource('ec2')# Create a VPC
vpc = ec2.create_vpc(CidrBlock='10.0.0.0/16')
vpc.wait_until_available()
print(f'Created VPC: {vpc.id}')# Enable DNS support and hostnames
vpc.modify_attribute(EnableDnsSupport={'Value': True})
vpc.modify_attribute(EnableDnsHostnames={'Value': True})# Create an Internet Gateway
igw = ec2.create_internet_gateway()
vpc.attach_internet_gateway(InternetGatewayId=igw.id)
print(f'Created and attached Internet Gateway: {igw.id}')# Create a Route Table and a public route
route_table = vpc.create_route_table()
route = route_table.create_route(DestinationCidrBlock='0.0.0.0/0',GatewayId=igw.id
)
print(f'Created Route Table: {route_table.id} and added route to {igw.id}')# Create subnets
subnet1 = vpc.create_subnet(CidrBlock='10.0.1.0/24', AvailabilityZone='us-east-1a')
subnet2 = vpc.create_subnet(CidrBlock='10.0.2.0/24', AvailabilityZone='us-east-1b')
subnet3 = vpc.create_subnet(CidrBlock='10.0.3.0/24', AvailabilityZone='us-east-1c')print(f'Created Subnets: {subnet1.id}, {subnet2.id}, {subnet3.id}')# Associate the route table with the subnets
route_table.associate_with_subnet(SubnetId=subnet1.id)
route_table.associate_with_subnet(SubnetId=subnet2.id)
route_table.associate_with_subnet(SubnetId=subnet3.id)
print(f'Associated route table {route_table.id} with subnets')print('VPC setup complete!')

代码说明:

VPC创建: ec2.create_vpc创建了一个CIDR块为10.0.0.0/16的VPC,并等待VPC可用。

Internet Gateway创建: ec2.create_internet_gateway创建了一个Internet Gateway,并将其附加到VPC上。

路由表创建与配置: vpc.create_route_table创建了一个路由表,并配置了一条默认路由指向Internet Gateway。

子网创建: 使用vpc.create_subnet在VPC中创建了三个子网,每个子网对应一个不同的可用区。

路由表关联: 将路由表与所有子网关联,使子网中的实例可以通过Internet Gateway访问外部网络

以上就是在亚马逊云科技上根据网络最佳实践,创建一个多层网络VPC并通过网关让用户访问VPC内服务的全部步骤。欢迎大家关注0基础5分钟上手AWS系列,未来获取更多国际前沿的AWS云开发/云架构方案!


http://www.ppmy.cn/news/1510572.html

相关文章

升级软文发稿开源系统源码论文期刊一键发布

升级软文发稿运营管理源码—论文期刊一键发布 软文发稿系统源码(软文发布系统)在基于旧版本的媒介软文发布平台项目改造升级了新的功能模块简称(3.0版)本系统还是基于开源的PHPMYSQLlayui(前端界面)代码进行…

如何用不到一分钟的时间将Excel电子表格转换为应用程序

我们大多数人对电子表格又爱又恨。当企业需要分析数据、为决策过程提供信息并可视化信息时,Excel和Google Sheets是首选。这些文档非常容易创建,它们帮助我们以直接的方式构建相关的想法和适用的数据。除此之外,事情可能会变得一团糟。 对于…

文件上传-.htaccess利用

限于Apache .htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现: 网页301重定向自定义404错误页面改变文件扩展名允许/阻止特定的用户或者目录的访问禁止目录列表配置默认文档等功能…

MySQL乐观锁与悲观锁-第二弹

乐观锁和悲观锁详解 前言 乐观锁简介代码实现业务代码 悲观锁简介代码实现业务代码 总结 前言 数据库中的乐观锁与悲观锁,这是我们在处理并发访问数据库时经常会遇到的问题。通过了解这两种锁的工作原理,我们可以更好地处理并发访问,确保数据…

每日OJ_牛客WY3 小易的升级之路

目录 牛客WY3 小易的升级之路 解析代码 牛客WY3 小易的升级之路 解析代码 本题的能力值的累加分两种情况,一种是直接相加bi,一种是累加当前能力值于bi的最大公约数。最大公约数可以通过碾转相除法求得:a与b的最大公约数相当于b与a&#xff…

Leetcode面试经典150题-146.LRU缓存

解法都在代码里,不懂就留言或者私信,这个题大概率不会让你直接写代码,而是说以下思路,如果写代码这个题写出来基本就过了 class LRUCache {/**首先我们得有缓存,get和put都是O(1)时间复杂度,我们常用的数…

7za解压缩工具

1、unzip无法解压缩大于4G的文件 从Windows平台通过MobaXterm上传一个大小约为5G的zip文件到AutoDL Linux系统上,使用unzip解压过程中出现如下错误: 从网上搜索了一下相关资料,发现是当前的unzip版本不支持4G以上的压缩包。要么升级到最新…

怎么在网络攻击中屹立不倒

在当今蓬勃发展的网络游戏产业中,服务器安全无疑是企业生存与发展的基石。面对互联网环境中无处不在的DDoS(分布式拒绝服务)与CC(挑战碰撞)攻击威胁,游戏服务器的防御能力与高效处理能力显得尤为重要。相较…

c语言-经典例题

C语言-经典例题 一、单项选择题 1、 -- A 2、 -- C y<5 --是关系运算符的优先级大于&& -- 是逻辑运算符 3、 -- B - D选项&#xff1a;c是float类型&#xff0c;所以c/2是1.5 4、 -- C 从后往前执行&#xff08;先算后面的&a…

【网络通信】关于TCP和HTTP

TCP&#xff08;Transmission Control Protocol&#xff09; 基础通信协议&#xff1a;TCP是传输层的协议&#xff0c;它位于互联网协议栈&#xff08;OSI模型&#xff09;的第四层&#xff0c;是互联网的基础通信协议之一。TCP关注的是数据包的可靠传输&#xff0c;它负责在不…

【STM32实物】基于STM32+ESP32+手机APP设计的智能宠物喂食系统实物源码原理图PCB设计文档演示视频——(文末工程资料下载)

基于STM32+ESP32+手机APP设计的智能宠物喂食系统 演示视频 基于STM32+ESP32+手机APP设计的智能宠物喂食系统 摘 要 近年来,宠物在人们生活中越来越不可或缺,给人们带来的陪伴和快乐。然而,由于种种原因,主人不能时刻照顾宠物的饮食,所以宠物喂食装置变得尤为重要。传…

fetch、FormData上传多张图片

利用fetch方法和FormData对象上传多张图片 formdata()对象可以序列化多张图片 <html><head><meta http-equiv"content-type" content"text/html;charsetUTF-8"/><title>测试fetch和formdata上传多张图片</title></head&…

集合-List去重

1.利用Set去重 @Test public void distinctList() {List<String> oldList = new ArrayList<>();oldList.add("a");oldList.add("a");oldList.add("b");oldList.add("c");oldList.add("d");List<String> …

【操作系统】什么是进程?什么是线程?两者有什么区别(面试常考!!!)

什么是进程/任务&#xff08;Process/Task&#xff09; 当我们打开我们的电脑的任务管理器就可以看到我们的电脑正在执行的进程。 每个应用程序运行于现代操作系统之上时&#xff0c;操作系统会提供一种抽象&#xff0c;好像系统上只有这个程序在运行&#xff0c;所有的硬件资…

多线程面试

多线程排期-包括了word文档和面试问题 多线程关键字-多个cpu资源和多个线程&#xff1b; 线程对应任务&#xff0c;进程对应程序。 private static Condition condition lock.newCondition(); 条件变量调用方法await&#xff08;&#xff09;和signal&#xff08;&#x…

培训第二十六天(slave写入数据解决与GTIDS主从复制搭建)

上午 1、web01与web02服务器搭建 ip:10.0.0.11systemctl stop filewalldsystemctl disable firewalldsetenforce 0vim /etc/selinux/configSELINUXdisabledyum -y install nginxecho "web----------01" > /usr/share/nginx/html/index.htmlnginxip:10.0.0.12syst…

Android Settings 跳转流程

我们知道在Settings中&#xff0c;各模块之间的Fragment基本都继承了DashboardFragment&#xff0c;当有点击事件时&#xff0c;就会回调DashboardFragment中的onPerferenceTreeClick()方法。 在onPreferenceTreeClick()方法中可以根据preference的key做事件拦截&#xff0c;如…

Servlet的三种写法

一、什么是Servlet&#xff1a; Java Servlet&#xff08;服务端小应用程序&#xff09;是一种基于 Java 的技术&#xff0c;用于处理来自 Web 客户端的 HTTP 请求&#xff0c;并生成相应的响应。Servlet 可以看作是服务器端的 Java 应用程序组件&#xff0c;它们扩展了 Web 服…

数字孪生技术框架:从数据到决策的桥梁

随着科技的飞速发展&#xff0c;数字孪生技术作为一种创新的信息化手段&#xff0c;正逐步渗透到各个行业领域&#xff0c;成为推动数字化转型的重要力量。数字孪生技术框架&#xff0c;作为支撑这一技术体系的核心架构&#xff0c;以其独特的层级结构&#xff0c;实现了从数据…

HarmonyOS(51) 应用沙箱目录和Context获取文件路径

文件目录 应用沙箱目录沙箱目录的分类应用文件目录结构应用文件路径详细说明ApplicationContext获取应用文件路径通过AbilityStageContext、UIAbilityContext、ExtensionContext获取HAP级别的应用文件路径切换el1和el2AreaMode简介 参考资料 应用沙箱目录 沙箱目录的分类 如下…