AWS(LAMP部署)

AWS亚马逊云

一、背景

在这里插入图片描述

 你是一名云计算运维工程师,现在需要为某电商企业构建交易网站(LAMP架构)。通过多次沟通交流,最后此单位决定在AWS云的中国区域中部署此网站。现在,需要为客户实现高可用性和高弹性的架构,同时正确部署LAMP应用。已知的要求有:

  • 将基于LAMP架构的应用上线运营,对外发布的网站的端口为8001
  • 创建全新的VPC及网络架构
  • 使用负载均衡、弹性伸缩、EC2、Amazon Aurora等组件构建资源栈
  • 实现配置弹性伸缩
  • 系统会根据需要,自动添加、配置新的实例,无须手动操作
  • 通过使用子网、安全组等技术保护业务的安全
  • 通过多可用区部署、群集技术等避免单点故障
  • 通过其它必要的技术来应对数据损坏、丢失等意外事件的发生
  • EC2实例类型为t2.micro,8GB磁盘
  • RDS为Amazon Aurora,db.t3.medium,磁盘80GB
  • 为减少Web应用的压力, CSS、图片等文件放置到公开的S3中
  • 用户上传的文件需要放置到EFS存储中
  • 架构图中组件不能有单点故障
  • 设置必要的资源标签

二、部署流程

 1.VPC及子网
 2.NAT Gateway
 3.DB
 4.EC2
 5.部署应用
 6.EFS
 7.S3
 8.AMI
 9.ELB
 10.Auto Scaling
 11.Cloud Watch

三、部署

(一)VPC
VPC及子网概念
 通过Amazon Virtual Private Cloud (Amazon VPC),可以将AWS资源启动到你定义的虚拟网络中。这个虚拟网络与在传统中心中运行的传统网络极其相似。Amazon VPC 是 Amazon EC2 的网络层,初学者需要掌握以下主要概念:
 1、Virtual private cloud (VPC):仅适用于你的AWS账户的虚拟网络。
 2、子网:你的 VPC 内的一个 IP 地址范围。
 3、路由表:一组称为“路由”的规则,它们用于确定将网络流量发送到何处。
 4、互联网网关:连接到VPC的网关,用于启用VPC中的资源与互联网之间的通信。
网络规划
 VPC名称:vpc
 VPC CIDR:10.0.0.0/16

Public1App1Data1
10.0.1.0/2410.0.2.0/2410.0.3.0/24
Public2App2Data2
10.0.11.0/2410.0.12.0/2410.0.13.0/24

创建VPC、子网、NAT、GateWay
1、点击Create VPC

2、如下创建VPC及子网
(1)选择要创建的资源:VPC、子网等
(2)名称标签自动生成:vpc
(3)IPv4 CIDR块:10.0.0.0/16
(4)可用区(AZ):2个
(5)自定义可用区:第一个可用区为us-east-1a;第二个可区为us-east-1b
(6)公有子网的数量:2个
(7)私有子网的数量:4个
(8)NAT网关:每个可用区1个
(9)VPC终端节点暂时不设置,选择无
(10)其余默认
在这里插入图片描述
3、检查修改路由表
(1)修改VPC、路由表及各子网名称
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)两个Public子网路由指向IGW
在这里插入图片描述
在这里插入图片描述
(3)App子网指向各自的NAT网关
在这里插入图片描述
在这里插入图片描述
(4)创建一个local路由表,删除自动创建的两个Data路由表,使两个Data子网指向local路由
1)创建local 路由表:
在这里插入图片描述
2)删除自动创建的两个Data路由表:略(编辑两个路由表的子网关联,取消关联即可删除)
3)使两个Data子网指向local路由表:编辑local路由表的子网关联,将Data子网添加即可
在这里插入图片描述
(二)创建数据库
1、创建安全组
(1)创建ec2实例的安全组备用
安全组名称:ec2
描述:ec2
VPC:选择之前创建的vpc-vpc
入站规则:规则一,选择“ssh”类型,源选择“我的IP”;规则二,选择“自定义TCP”,端口选择计划对外开放的“8001”端口,源选择“任何位置-IPv4”
出站规则:默认
在这里插入图片描述
(2)创建数据库安全组
安全组名称:rds
描述:rds
VPC:选择之前创建的vpc-vpc
入站规则:类型为“MYSQL/Aurora”,源为刚刚创建的“ec2”安全组
出站规则:默认
在这里插入图片描述
2、创建数据库的子网组
名称:db
描述:db
VPC:选择之前创建的“vpc-vpc”
添加子网:选择创建VPC时选择的可用区,子网选择两个Data子网
在这里插入图片描述
3、创建数据库
名称:rds
凭证设置:用户名自己设置,这里设置:“admin” ,密码自己设置,这里设置:“zhangaoyun”
数据库实例类:可突增类
多可用区部署:在不同的可用区中创建Aurora副本或读取器节点
VPC:选择之前创建的“vpc-vpc”
子网组:刚刚创建的“db”子网组
安全组:“rds”安全组
其他默认
在这里插入图片描述
(三)ec2
1、创建密匙对
在这里插入图片描述
2、创建ec2实例
名称;test
系统镜像:Amazon Linux aws
实例类型:t2.micro
密匙对:key58
VPC:选择之前创建的“vpc-vpc”
子网:Public1
自动分配公有IP:启用
安全组:“ec2”安全组
其他配置默认
在这里插入图片描述
(四)部署应用
1、使用PuTTY连接实例
在这里插入图片描述
在这里插入图片描述
2、登录ec2-user
在这里插入图片描述
3、为root用户添加密码,切换到root用户,修改/etc/ssh/sshd_conf文件

PermitRootLogin yes
PasswordAuthentication yes

4、安装php、php-mysql、mariadb、httpd(LAMP)
开启httpd:systemctl start httpd
设置开机自启动:systemctl enable httpd
5、修改http配置文件,修改端口:vi /etc/httpd/conf/httpd.conf
Listen 80 修改为 Listen 8001
6、下载test项目包到/var/www/html/并解压:unzip bookstore2.zip
7、浏览器输入实例的公有IP端口为8001,测试Web服务使用正常
在这里插入图片描述
8、登录数据库写入节点,写入数据
在这里插入图片描述
在这里插入图片描述
创建bookstore数据库:create database bookstore;
进入bookstore数据库:use bookstore;
创建books表:

CREATE TABLE `books` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `price` decimal(10,2) NOT NULL,
  `author` varchar(100) NOT NULL,
  PRIMARY KEY (`id`)
) AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4;

插入数据:

INSERT INTO `books` VALUES (1, 'PHP项目实践', 56.00, '明');
INSERT INTO `books` VALUES (2, 'Java基础', 88.00, '强');
INSERT INTO `books` VALUES (3, 'Python数据分析', 66.00, '飞');

检查创建是否正确:select * from books;
在这里插入图片描述
9、修改php文件:vi /var/www/html/index.php
在这里插入图片描述
在这里插入图片描述
10、下载压力测试文件包到/var/www/html下
解压:unzip cpload.zip
浏览器输入:实例IP:8001/status.php
在这里插入图片描述
(五)EFS
1、创建EFS安全组
安全组名称:efs
描述:efs
VPC:vpc-vpc
入站规则:类型为“NFS”;源为“ec2安全组”
其余默认
在这里插入图片描述
2、创建EFS
(1)点击创建EFS
(2)选择自定义
在这里插入图片描述
名称:EFS
VPC:vpc-vpc
可用区:创建子网时选择的两个可用区
子网:两个Data子网
安全组:efs安全组
其它默认
在这里插入图片描述
3、配置EFS
(1)连接实例,安装amazon-efs-untils:yum install -y amazon-efs-utils
(2)创建EFS的挂载目录:mkdir /efs
(3)挂载EFS:sudo mount -t efs -o tls efs-id /efs
注:点击创建好的EFS,点击右上角的连接可找到“使用EFS挂载帮助程序”,注意命令中挂载目录是否需要更改,这里是使用的挂载目录是“/efs”。
在这里插入图片描述
(4)设置EFS开机自动挂载:vi /efs/fstab
注:用户指南中可找到命令,例如:fs-0b342a43a636748c1:/ /efs efs _netdev,tls 0 0
在这里插入图片描述
(5)创建一个efs.conf: vi /etc/httpd/conf.d/efs.conf

Alias "/efs" "/efs"
<Directory "/efs">
Require all granted
</Directory>

(6)将2.jpg放到/efs目录下:cp /var/www/html/efsimags/2.jpg /efs/
(7)测试是否成功
在这里插入图片描述
(六)AMI
1、使用test实例创建AMI
名称:ami
描述:ami
其它默认
在这里插入图片描述
(七)ELB
1、创建目标群组
选择目标类型:实例
目标组名称:target
协议:HTTP
端口:8001
VPC:vpc-vpc
其它默认
注册目标:选择test
在这里插入图片描述
3、创建elb安全组
安全组名称:elb
描述:elb
VPC:vpc-vpc
入站规则:类型为“自定义TCP”;端口为“8001”;源为“任何位置-IPv4”
其余默认
在这里插入图片描述
4、创建负载均衡器
负载均衡器类型:ALB
负载均衡器名称:ELB
模式:面向互联网
IP地址类型:IPv4
VPC:vpc-vpc
映射:两个可用区及两个Public子网
安全组:elb
侦听器和路由:协议为“HTTP”;端口为“8001”;默认操作转发至“target”
其余默认
在这里插入图片描述
注:网络负载均衡器
目标组创建的时候协议选择TCP,其余均与创建应用负载均衡器一致
在这里插入图片描述
(八)Auto Scaling
1、创建启动模板
启动模板名称:launch
模板版本说明:launch
系统映像:我的AMI“ami”
实例类型:t2.micro
密匙对:key58
安全组:ec2安全组
其余默认
在这里插入图片描述
2、创建Auto Scaling
名称:Auto
启动模板:launch
VPC:vpc-vpc
可用区及子网:App1和App2
负载均衡:附加到现有的负载均衡器
现有的负载均衡器目标组:target
运行状态检查:60秒
组大小:所需容量:2;最小容量:2;最大容量:4;
其余默认
在这里插入图片描述
3、测试:在浏览器输入负载均衡器域名端口为8001,多刷新几次发现服务器地址在变化
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(九)CloudWatch
1、创建警报
(1)CPU利用率过高增加实例
指标:选择指标->EC2->按Auto Scaling组->Auto Scaling CPUUtilization
周期:1分钟
每当CPUUitlization为…:大于/等于70
通知:删除
警报名称:addec2
在这里插入图片描述
(2)CPU利用率较低减少实例
指标:选择指标->EC2->按Auto Scaling组->Auto Scaling CPUUtilization
周期:1分钟
每当CPUUitlization为…:小于/等于20
通知:删除
警报名称:reduceec2
在这里插入图片描述
2、附加到Auto Scaling
选择Auto Scaling中的弹性伸缩,创建动态扩展策略
在这里插入图片描述
(1)CPU利用率过高增加实例
在这里插入图片描述
(2)CPU利用率较低减少实例
在这里插入图片描述

Putty对Linux上传下载文件或者文件夹

一、方法一:pscp命令
在Windows命令行中上传文件:

pscp [Windows上的路径,可绝对可相对] [Linux用户]@[Linux的IP地址或网络内唯一主机名]:[Linux上存放地址,绝对路径

例如:pscp f:/ss.zip root@54.166.254.58:/
二、方法二:psftp命令
注意:如若不行,修改实例中ssh配置文件试试(本文档部署应用中)

put 上传文件,目录需要加-r
get 下载文件,目录需要加-r
mput 上传多个文件
mget 下载多个文件
cd 服务器端移动路径
pwd 显示服务器端当前所在路径
lcd 本地端移动路径
lpwd 显示本地端当前所在路径

实例:

C:Usersxuefei>psftp root@192.168.0.11
Using username "root".
root@192.168.0.11's password:
Remote working directory is /root
psftp> lcd Desktop    //调整本地端路径
New local directory is C:UsersxuefeiDesktop
psftp> put extundelete-0.2.4    //可以看到但有put是不行的
local: unable to open extundelete-0.2.4
psftp> mput extundelete-0.2.4    //mput一样不行
local: unable to open extundelete-0.2.4
psftp> put -r extundelete-0.2.4    //只有put -r才可以上传目录
  • 18
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
AWS(亚马逊服务)是一种云计算平台,而微服务是一种软件架构风格。将这两者结合起来,AWS为微服务部署提供了强大的支持和灵活性。 在AWS上,可以使用多种服务来部署和管理微服务架构。以下是一种常见的AWS微服务部署架构: 1. 服务器(EC2):使用EC2实例来托管和运行每个微服务。每个微服务可以单独的运行在不同的EC2实例上,这样可以实现松耦合和独立扩展。 2. 负载均衡(ELB):使用ELB分发流量到每个微服务的多个实例上,以实现高可用性和负载均衡。ELB可以将流量均匀地分配到EC2实例上,当某个EC2实例宕机时,流量会自动被重新路由到其他可用的实例上。 3. 自动扩展(Auto Scaling):使用Auto Scaling来自动调整EC2实例的数量,以根据流量的变化来自动扩容或收缩微服务的容量。Auto Scaling可以通过定义规则和指标来触发实例的自动扩容和收缩,以确保每个微服务始终具有足够的容量来处理流量。 4. 容器服务(ECS或EKS):使用ECS(Elastic Container Service)或EKS(Elastic Kubernetes Service)来管理和部署微服务的容器化应用。这些服务可以自动托管和运行容器,并处理容器的调度、监控和伸缩等任务。 5. 服务发现和路由(Route 53):使用Route 53来进行微服务的服务发现和路由。Route 53可以提供DNS解析和负载均衡功能,以确保流量被正确地路由到每个微服务。 通过以上的AWS服务,可以搭建一个高度可靠、高度可伸缩的微服务部署架构。这样的架构可以帮助开发人员更好地管理和部署微服务,并能够应对不同流量和负载的挑战。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值