learning aws

网店包括动态内容(如产品及其价格)和静态内容(如公司标志)。将它们分开可减轻服务器负载,通过内容传递网络(CDN)传送静态内容来提高性能
由于AWS采用API驱动,可实现一切自动化:编写代码创建网络、启动虚拟机集群或部署关系型数据库
系统依赖越多就变得越复杂。人类很容易失去全局视角,而计算机能处理任意规模的相互连接系统。在计算机根据蓝图解析所有这些依赖关系以创建系统时,应专注于人类擅长的任务——如描述一个系统
谷歌云平台(GCP)专注于希望构建复杂分布式系统的开发人员。谷歌将他们全球基础设施结合起来,提供可扩展且容错性强的服务(如Google Cloud负载均衡)。GCP更关注原生于云端的应用程序,而不是将本地托管应用迁移到云端
- EC2—Virtual machines
- ECS and Fargate—Running and managing containers
- Lambda—Executing functions
- S3—Object store
- Glacier—Archiving data
- EBS—Block storage for virtual machines
- EFS—Network filesystem
- RDS—SQL databases
- DynamoDB—NoSQL database
- ElastiCache—In-memory key-value store
- VPC—Virtual network
- ELB—Load balancers
- Simple Queue Service—Distributed queues
- CodeDeploy—Automating code deployments
- CloudWatch—Monitoring and logging
- CloudFormation—Automating your infrastructure
- IAM—Restricting access to your cloud resources
使用以下五个AWS服务将旧基础架构复制到AWS:
- ELB- AWS提供负载均衡器作为一项服务。负载均衡器将流量分发给一组虚拟机,并且默认情况下具有高可用性。只要虚拟机的健康检查成功,请求就会路由到虚拟机上。您将使用应用程序负载均衡器(ALB),它在第7层(HTTP和HTTPS)上运行。
- EC2- 提供了虚拟机。您将使用一个名为Amazon Linux的优化发行版的Linux机器来安装Apache、PHP和WordPress。您不仅限于Amazon Linux;还可以选择Ubuntu、Debian、Red Hat或Windows。虚拟机可能会失败,因此您至少需要两台虚拟机。负载均衡器将在它们之间分配流量。如果某个虚拟机失败,负载均衡器将停止向该失败的VM发送流量,并且剩余的VM需要处理所有请求,直到替换掉故障的VM。
- RDS用于MySQL - WordPress依赖于广受欢迎的MySQL数据库。AWS通过其RDS提供MySQL支持。您可以选择数据库大小(存储、CPU、RAM),而RDS将接管操作任务,如创建备份和安装补丁和更新。RDS还可以使用复制提供高可用性的MySQL数据库。
- EFS- WordPress本身由PHP和其他应用程序文件组成。用户上传的内容(例如添加到文章中的图像)也存储为文件。通过使用网络文件系统,您的虚拟机可以访问这些文件。EFS使用NFSv4.1协议提供可扩展、高可用性和持久性的网络文件系统。
- 安全组 ——使用防火墙控制虚拟机、数据库或负载均衡器的进出流量。例如,可以使用一个允许来自互联网的HTTP流量进入负载均衡器80端口的安全组。或者限制对运行Web服务器的虚拟机上3306端口的数据库进行网络访问。
使用一个名为AWS CloudFormation的服务,只需点击几下即可完成所有操作
AWS的一个关键概念就是自动化。你可以将一切都自动化。在背后,你的云基础设施是根据蓝图创建的
弹性文件系统(EFS)用于存储文件并从多个虚拟机访问它们。EFS是通过NFS协议访问的存储服务
以下因素可能会影响您实际使用此基础设施的程度:
- 负载均衡器处理的流量-预计在12月和夏季人们度假时,浏览您的博客的成本会下降。
- 数据库所需存储空间-如果公司增加了博客中内容的数量,则数据库将增长,因此存储成本也会增加。
- NFS上所需存储空间-用户上传、插件和主题会增加NFS上所需存储空间的数量,这也会增加成本。
- 所需虚拟机数量-虚拟机按秒计费。如果两台虚拟机无法满足白天所有流量,请考虑第三台机器。在这种情况下,您将消耗更多秒数来使用虚拟机。
AWS中,操作系统与预安装软件捆绑在一起,形成了一个称为Amazon Machine Image (AMI)的包
AMI是您虚拟机启动的基础。AMI由AWS、第三方提供商和社区提供。AWS提供了Amazon Linux AMI,它基于Red Hat Enterprise Linux,并针对EC2进行了优化
虚拟设备是包含操作系统和预配置软件镜像的虚拟机映像。当hypervisor启动新VM时会使用虚拟设备。由于虚拟设备包含固定状态,在基于虚拟设备启动VM时每次都会得到完全相同结果。您可以根据需要复制虚拟设备,这样就可以节省安装和配置复杂软件堆栈所需费用
AMI是一种特殊类型的虚拟设备,用于EC2服务。从技术上讲,AMI包含一个只读文件系统,其中包括操作系统、附加软件和配置。您也可以使用AMI在AWS上部署软件,但AMI不包含操作系统的内核。内核是从Amazon Kernel Image (AKI)加载的。
现在,AWS使用一种称为Nitro的虚拟化技术。Nitro将基于KVM的超级监视器与定制硬件(ASIC)相结合,旨在提供与裸金属机器无异的性能。
目前,在AWS上运行的VM采用硬件辅助虚拟化。这项技术被称为硬件虚拟机(HVM)。基于HVM的AMI运行的虚拟机使用完全虚拟化的硬件集,并且可以利用扩展功能快速访问底层硬件。