使用 AWS CLI 自动在 Amazon EC2 实例上部署 Apache Web 服务器

"使用 AWS CLI 节省时间" 欢迎来到雲闪世界。今天,我们将利用 AWS CLI 的实际用途来提高效率并自动执行在 Amazon EC2 实例上部署 Apache Web 服务器的步骤。完成"使用 AWS CLI 节省时间"任务后,最后有一个非常有趣的秘密步骤,敬请期待! 背景 作为云工程师,您的主要任务之一是帮助您的组织更高效地运营。使用 AWS 管理控制台也可以完成工作,但点击控制台会浪费很多时间。为了提高效率并实现自动化流程的好处,使用 AWS CLI 通常是更好的选择。 您刚刚被聘为REX TECH 组织的云工程师。您注意到当前的工程师经常使用 AWS 管理控制台来完成管理 AWS 资源的任务。您还意识到他们倾向于在命令行中一次一个地运行涉及 Linux 命令的重复性任务。您想向他们展示一种更有效的方式来自动化日常流程,例如启动 Amazon EC2 Web 服务器。您决定先自己练习这些步骤,然后再向他们展示如何做到这一点。 先决条件

AWS 账户和 IAM 用户

AWS 管理控制台中的基本工作知识

您首选的 Linux CLI 中的基本 Linux 命令行知识

sudo以非 root 用户身份在 Linux 系统上拥有特权

Vim 的基本工作知识

步骤 1:检索并创建资源以启动 EC2 在启动新的 Amazon EC2 实例之前,我们必须从 AWS 账户中检索特定资源信息,我们将使用这些信息来配置我们的 EC2 实例。我们还将创建一些资源,然后才能检索更多信息。我们任务所需的资源如下所列 -

VPC ID --- 专用于您的 AWS 账户的虚拟网络的 ID

AMI ID --- 包含要启动的软件配置或 EC2 实例的特定模板的 ID

安全组 ID --- 控制 EC2 实例进出网络流量的防火墙 ID

密钥对名称--- 用于让我们以编程方式访问 AWS 资源的密钥对的名称

检索 VPC ID 要检索我们的 VPC ID,请运行以下命令 -

aws ec2 describe-vpcs 

您的屏幕应显示 VPC 的当前配置。找到并记下您将在其中启动 EC2 实例的 VPC 的" VpcId ",如下所示。

在 VPC 中创建新的安全组

我们需要在 VPC 中创建一个新的安全组,以便与 EC2 实例一起使用,以控制进出该实例的网络流量。要成功运行此命令,我们需要提供从上一个命令中检索到的组名称、组描述和VPC ID的信息。 要创建新的安全组,请运行以下命令 -

aws ec2 create-security-group --group-name [group_name] --description "[group_description]"
--vpc-id [vpc_id]

运行命令后,复制并保存 Linux CLI 中显示的安全组 ID,如下所示。

您还可以通过转到 AWS 管理控制台来验证安全组是否已创建。如下所示,名为"proj4cli"的新安全组已创建。

配置安全组的入站(入口)防火墙规则

我们需要在端口 22 上允许"ssh"流量,这样我们才能安全地连接到我们的 EC2 实例来执行任务。我们还需要在端口 80 上允许"http"流量,这样我们才能通过浏览器通过互联网连接到 EC2 实例并请求/获取数据以查看我们的网站。

要在端口 22 上允许"ssh",请运行以下命令 -

aws ec2 authorize-security-group-ingress --group-id [security_group_id] --protocol tcp --port 22 --cidr 0.0.0.0/0

要在端口 80 上允许"http" ,请运行以下命令 -

aws ec2 authorize-security-group-ingress --group-id [security_group_id] --protocol tcp --port 80 --cidr 0.0.0.0/0

通过导航到 AWS 管理控制台中的 VPC 安全组入站规则来验证端口是否配置正确。您应该看到新配置的开放端口,如下所示。

创建 SSH 密钥对

我们需要创建一个新的密钥对,用于对我们的 EC2 实例进行身份验证。 要创建新的密钥对,请运行以下命令 -

aws ec2 create-key-pair --key-name [group_name]

通过运行以下命令查看密钥对是否已创建 -

aws ec2 describe-key-pairs --key-name [group_name]

获取 Amazon 系统映像 (AMI) ID

我们将使用属于 AWS 免费套餐的 Amazon Linux 2 AMI。要找到 AMI ID,请导航到 AWS 管理控制台中的 EC2 实例仪表板,单击" AMI 目录",然后复制并保存 Amazon Linux 2 AMI 的 AMI ID,如下所示。

我们现在已经从 AWS CLI 收集了启动已配置的 EC2 实例所需的所有资源信息,即我们的VPC ID、AMI ID 安全组 ID 和密钥对名称。 现在让我们进入第 2 步。 步骤 2:创建用于引导 EC2 实例的脚本 我们需要在 EC2 实例上安装 Apache Web 服务器,使其能够通过互联网向我们的浏览器提供 HTTP 内容。为此,我们必须创建一个 bash 脚本,通过引导 EC2 实例来安装、启用和启动 Apache Web 服务器。引导是指将脚本添加到 EC2 实例的用户数据中,以便在实例启动时执行的过程。 创建存储 bash 脚本的目录 让我们创建一个新目录,然后通过分别运行以下单独的命令将当前工作目录更改为该目录

mkdir [directory_name]

cd [directory_name]

创建 bash 脚本

我们现在可以通过运行以下命令在 Vim 中创建 bash 脚本 -

sudo vim [script_name.sh]

应会出现一个文本窗口。将以下代码复制并粘贴到文本框中,然后键入:wq! 以保存并退出 Vim。

#!/bin/bash

#Update all yum package repositories
yum update -y

#Install Apache Web Server
yum install -y httpd.x86_64

#Start and Enable Apache Web Server
systemctl start httpd.service
systemctl enable httpd.service

步骤 3:使用 bash 脚本引导的 t2.micro 实例类型启动 EC2 Web 服务器 使用检索和创建的资源信息启动 EC2 Web 服务器 回顾步骤 2 中检索和创建的所有资源信息。我们现在将使用它们以及我们的 bash 脚本来最终启动我们的 EC2 Apache Web 服务器。 要启动我们的 EC2 Web 服务器,请运行以下命令 -

aws ec2 run-instances --image-id [ami_id] --count 1 --instance-type t2.micro --key-name [key_pair_name] --security-group-ids [security_group_id] --user-data file://[script_name.sh]

按下q 退出输出信息屏幕。 现在,通过导航到 AWS 管理控制台中的 EC2 实例仪表板来验证 EC2 实例是否已创建。您应该看到新启动的 EC2 Web 服务器,如下所示。等待几分钟,实例状态将变为"正在运行"。

步骤 4:通过浏览器连接到运行 Apache Web 服务器的 EC2 实例 从 Amazon EC2 仪表板"网络"选项卡中检索 EC2 实例的公共 IP 地址,将其复制并粘贴到您首选浏览器的地址栏中,然后在键盘上按" Enter "。您的浏览器应显示 Apache Web 服务器默认网页,如下所示。

成功! 您刚刚完成了"使用 AWS CLI 节省时间"任务!现在,您可以向您的工程师同事展示如何使用 AWS CLI 提高效率并自动在 Amazon EC2 实例上部署 Apache Web 服务器。

所以你已经做到了这一步,嘘......正如承诺的那样......这是秘密步骤------ 使用预配置的 EC2 Web 服务器创建 AMI 我们可以使用之前配置的 EC2 Web 服务器创建自己的 AMI。创建此 AMI 将使我们在启动具有相同配置的其他 EC2 实例时无需重复执行所有先前步骤。 让我向你展示如何实现这一目标------ 步骤 1:检索 EC2 Web 服务器实例 ID 我们需要检索 EC2 Web 服务器实例 ID,该 ID 将在命令中用于创建新 AMI。 要检索我们的 EC2 Web 服务器实例 ID,请运行以下命令 - aws ec2 描述实例 复制并保存您的 EC2 Web 服务器实例 ID。

步骤 2:从我们之前启动的 EC2 Web 服务器创建一个新的 AMI 现在我们知道了要从中创建 AMI 的 EC2 实例 ID,我们可以运行以下命令来实际创建它 -

aws ec2 create-image --instance-id [instance_id] --name "[name_of_AMI]" --description "[AMI_description]"

从 Linux CLI 显示的输出中复制并保存新创建的 AMI ID,如下所示。

通过导航到 AWS 管理控制台中的 EC2 实例仪表板,然后单击"AMI",验证是否已创建新的 AMI 。您应该会看到新创建的 AMI,如下所示。

步骤 3:从新创建的 AMI 启动 EC2 Web 服务器 要从我们新创建的 AMI 启动具有预配置配置的 EC2 Web 服务器实例,我们可以使用之前的资源信息运行以下命令 -

aws ec2 run-instances --image-id [new_ami_id] --count 1 --instance-type t2.micro --key-name [key_pair_name] --security-group-ids [security_group_id]

再次导航到 AWS 管理控制台中的 EC2 实例仪表板,验证是否已创建 EC2 实例。您应该会看到新启动的 EC2 实例,如下所示。

步骤 4:连接到从 AMI 启动的 EC2 Web 服务器 通过 EC2 实例仪表板从新的 EC2 Web 服务器检索公有 IP 地址。请注意,这将与我们之前启动的 EC2 Web 服务器的公有 IP 地址不同。 复制公网 IP 地址,将其粘贴到您首选浏览器的地址栏中,然后按键盘上的"Enter"。您的浏览器应显示 Apache Web 服务器默认网页,如下所示。

恭喜! 您刚刚完成了"使用 AWS CLI 节省时间"秘密附加步骤!您已成功从预配置的 EC2 Web 服务器创建 AMI,并从中启动了新的 EC2 Web 服务器,同时使用了 AWS CLI。 如果你已经读到这里,谢谢你的阅读!我希望这对你来说是值得的。

感谢关注雲闪世界。(Aws解决方案架构师vs开发人员&GCP解决方案架构师vs开发人员)

相关推荐
会发光的猪。3 分钟前
vue中el-select选择框带搜索和输入,根据用户输入的值显示下拉列表
前端·javascript·vue.js·elementui
旺旺大力包20 分钟前
【 Git 】git 的安装和使用
前端·笔记·git
雪落满地香37 分钟前
前端:改变鼠标点击物体的颜色
前端
ccc_9wy1 小时前
Apache Solr XXE(CVE-2017-12629)--vulhub
apache·solr·lucene·xxe·ssrf·vulhub·cve-2017-12629
余生H1 小时前
前端Python应用指南(二)深入Flask:理解Flask的应用结构与模块化设计
前端·后端·python·flask·全栈
outstanding木槿1 小时前
JS中for循环里的ajax请求不数据
前端·javascript·react.js·ajax
酥饼~1 小时前
html固定头和第一列简单例子
前端·javascript·html
一只不会编程的猫1 小时前
高德地图自定义折线矢量图形
前端·vue.js·vue
m0_748250931 小时前
html 通用错误页面
前端·html
来吧~2 小时前
vue3使用video-player实现视频播放(可拖动视频窗口、调整大小)
前端·vue.js·音视频