为什么用 AWS CLI?因为我懒得点鼠标!

打印 上一主题 下一主题

主题 854|帖子 854|积分 2562

在这篇博客中,我们一起深入探索 AWS CLI 的世界,从零开始,逐步构建在云端的家园。将介绍 AWS CLI 的根本功能和使用场景,如何创建 IAM 用户、VPC、子网、安全组、EC2 实例等,甚至还会搭建一个应用负载均衡器(ALB)。无论你是初学者还是有一定根本的用户,都能通过本指南掌握 AWS CLI 的使用本领,让你在云端操作时更加得心应手。准备好了吗?让我们一起开始这段云端之旅吧!
AWS CLI 介绍

什么是 AWS CLI

AWS CLI(命令行界面)是一个同一的工具,允许用户通过命令行管理和自动化 AWS 服务。它提供了对 AWS API 的直接访问,使用户能够在终端中执行各种操作,而无需依靠图形用户界面(GUI)。
根本功能和使用场景


  • 资源管理:创建、更新和删除 AWS 资源,如 EC2 实例、S3 存储桶和 VPC。
  • 自动化任务:通过脚本批量处理资源,支持自动化部署和管理流程。
  • 配置管理:快速配置 AWS 资源的属性,如安全组、IAM 权限等。
  • 监控和查询:使用 CLI 查询资源状态和健康状态,查看日志和指标。
  • 集成和兼容性:与其他开发工具和 CI/CD 流水线集成,提拔开发服从。
 
一、创建IAM用户并配置aws cli

 
1.打开iam服务

在搜刮框输入“iam"

 
2.创建用户

点击左侧“角色”, 右边“创建用户”

输入用户名
我这里就叫aws-cli,你随意了

3. 设置权限

我这里为了测试方便,就直接给AdministratorAccess权限了。后边我会专门写关于IAM的博客。敬请等待!
选择“直接附加计谋”,然后输入“AdministratorAccess”,选择AdministratorAccess,下一步即可

4. 查看和创建

看下权限设置是否精确,没问题的话就点击创建用户。

可以看到已经提示创建成功

 
5. 创建密钥

接下来我们来创建密钥,即accesskey
点击用户名称

点击安全凭据->创建访问密钥

选择第一个即可


设置标签
我这里还是使用aws-cli

可以看到已经创建成功,为防止忘记,建议下载.csv文件

6. 配置aws cli

aws configure, 输入刚才.csv文件中的内容即可,区域我这里使用us-west-1(美西加利福尼亚州),格式选择json.

更多信息可参考aws 管网相关内容:https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html
检查aws cli是否配置精确
  1. aws ec2 describe-instances
复制代码

有精确返回,可见aws cli配置精确。
转载请在文章开头著名原文地址:https://www.cnblogs.com/Sunzz/p/18432935
 
二、网络配置

1. 创建vpc
  1. aws ec2 create-vpc --cidr-block 10.0.0.0/16
复制代码
输出如下:

为方便辨认,给vpc设置一个名称aws-cli-vpc(可选)
  1. aws ec2 create-tags --resources vpc-0a3a6fd36df03aea6 --tags Key=Name,Value="aws-cli-vpc"
复制代码
可以在控制台看到vpc已经创建成功了vpc id为vpc-0a3a6fd36df03aea6,名字为aws-cli-vpc的vpc

2.创建子网

设置cidr

这里设置子网的网段为10.0.1.0/24
  1. aws ec2 create-subnet --vpc-id vpc-0a3a6fd36df03aea6 --cidr-block 10.0.1.0/24
复制代码
输出如下:

给子网命名

方便标识(可选)
  1. aws ec2 create-tags --resources subnet-08b88d4a329f823a9 --tags Key=Name,Value=aws-cli-subnet01
复制代码
查看控制台,可以看到,subnet id为subnet-08b88d4a329f823a9,名字为aws-cli-subnet01,cidr为10.0.1.0/24的子网已经创建

由于ALB(Application Load Balancer)必须设置多个可用区以确保高可用性和容错能力。如果一个可用区出现故障,流量会自动转发到其他可用区中的实例,从而保持服务可用性。这种配置能够淘汰单点故障的风险,提高应用的可靠性和稳固性。所以再来创建一个子网aws-cli-subnet02,cidr为10.0.2.0/24,可用区为us-west-1a
  1. aws ec2 create-subnet \
  2.   --vpc-id vpc-0a3a6fd36df03aea6 \
  3.   --cidr-block 10.0.2.0/24 \
  4.   --availability-zone us-west-1a \
  5.   --tag-specifications 'ResourceType=subnet,Tags=[{Key=Name,Value=aws-cli-subnet02}]'
复制代码
查看所有子网信息
  1. aws ec2 describe-subnets --filters "Name=vpc-id,Values=vpc-0a3a6fd36df03aea6" --query "Subnets[*].[Tags[?Key=='Name'].Value | [0], SubnetId, CidrBlock]" --output table
复制代码
-----------------------------------------------------------------
|                        DescribeSubnets                        |
+-------------------+----------------------------+--------------+
aws-cli-subnet02subnet-03dd42c387a0f3539  |  10.0.2.0/24 |
aws-cli-subnet01subnet-08b88d4a329f823a9  |  10.0.1.0/24 |
+-------------------+----------------------------+--------------+
 3. 创建网关

创建网关
  1. aws ec2 create-internet-gateway
复制代码
输出如下:

再来给起个名字,方便标识(可选)
  1. aws ec2 create-tags --resources igw-0787503762feb666c --tags Key=Name,Value=aws-cli-igw
复制代码
把网关附加到vpc
  1. aws ec2 attach-internet-gateway --internet-gateway-id igw-0787503762feb666c --vpc-id vpc-0a3a6fd36df03aea6
复制代码
这次我们通过aws 命令来查看网关和vpc附加信息
  1. aws ec2 describe-internet-gateways --internet-gateway-ids igw-0787503762feb666c
复制代码
输出如下:

4. 更新路由表

由于创建VPC 时,AWS 会自动创建一个默认的路由表
添加一条路由,将目的为 0.0.0.0/0 的流量指向您的 Internet Gateway,以便能够访问互联网。
查看路由表id
  1. aws ec2 describe-route-tables --query 'RouteTables[*].[RouteTableId, VpcId]' --output table
复制代码
输出如下:
列出来现在两个vpc id和其对应的路由表id

我这里只想查询刚才创建vpc vpc-0a3a6fd36df03aea6 的路由表ID
  1. aws ec2 describe-route-tables --filters "Name=vpc-id,Values=vpc-0a3a6fd36df03aea6" --query 'RouteTables[*].[RouteTableId]' --output table
  2. ---------------------------
  3. |   DescribeRouteTables   |
  4. +-------------------------+
  5. |  rtb-094254eb8def0f2fc  |
  6. +-------------------------+
复制代码
 更新路由表
  1. aws ec2 create-route --route-table-id rtb-094254eb8def0f2fc --destination-cidr-block 0.0.0.0/0 --gateway-id igw-0787503762feb666c
  2. {
  3.     "Return": true
  4. }
复制代码
 可用如下命令查询路由表详情
  1. aws ec2 describe-route-tables --route-table-ids rtb-094254eb8def0f2fc
复制代码
5. 创建安全组

这里创建一个名为aws-cli-sg01,运行所有IP 地址毗连22端口和ping的规则的安全组。
  1. aws ec2 create-security-group --group-name aws-cli-sg01 --description "Security group for AWS CLI demo" --vpc-id vpc-0a3a6fd36df03aea6
  2. 输出:
  3. {
  4.     "GroupId": "sg-0a986a2e312c0c947"
  5. }
复制代码
允许所有 IP 毗连 22 端口
  1. aws ec2 authorize-security-group-ingress --group-id sg-0a986a2e312c0c947 --protocol tcp --port 22 --cidr 0.0.0.0/0
复制代码
运行所有ip访问80端口
  1. aws ec2 authorize-security-group-ingress --group-id sg-0a986a2e312c0c947 --protocol tcp --port 80 --cidr 0.0.0.0/0
复制代码
允许 ICMP(ping):
  1. aws ec2 authorize-security-group-ingress --group-id sg-0a986a2e312c0c947 --protocol icmp --port -1 --cidr 0.0.0.0/0
复制代码
查看安全组信息
  1. aws ec2 describe-security-groups --filters "Name=group-name,Values=aws-cli-sg01"
复制代码
只查看安全组id
  1. aws ec2 describe-security-groups --filters "Name=group-name,Values=aws-cli-sg01" --query "SecurityGroups[*].GroupId" --output text
  2. 输出:
  3. sg-0a986a2e312c0c947
复制代码
转载请在文章开头著名原文地址:https://www.cnblogs.com/Sunzz/p/18432935
 
三、创建服务器

1. 创建密钥对

这里创建一个名为aws-cli-key的密钥对
  1. aws ec2 create-key-pair --key-name aws-cli-key --query 'KeyMaterial' --output text > aws-cli-key.pem
复制代码
 这将创建密钥对并将私钥保存到 aws-cli-key.pem 文件中。确保将此文件的权限设置为只读,以保护私钥:
  1. chmod 400 aws-cli-key.pem
复制代码
2. 创建ec2实例
  1. aws ec2 run-instances \
  2.   --image-id ami-047d7c33f6e7b4bc4 \
  3.   --count 1 \
  4.   --instance-type t2.micro \
  5.   --subnet-id subnet-08b88d4a329f823a9 \
  6.   --security-group-ids sg-0a986a2e312c0c947 \
  7.   --key-name aws-cli-key \
  8.   --block-device-mappings "[{"DeviceName":"/dev/xvda","Ebs":{"VolumeSize":10}}]" \
  9.   --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=aws-cli-ec2-instance}]' \
  10.   --associate-public-ip-address
复制代码
查看ec2实例信息
  1. aws ec2 describe-instances \
  2.   --filters "Name=instance-state-name,Values=running" \
  3.   --query "Reservations[*].Instances[*].[Tags[?Key=='Name'].Value | [0], InstanceId, State.Name, InstanceType, PublicIpAddress]" \
  4.   --output table
复制代码

3. ssh登录ec2服务器

由于使用的是amazon linux,故而登录用户命为ec2-user
  1. ssh -i aws-cli-key.pem  ec2-user@18.144.37.51
复制代码

网络测试

可以看到可以ping通,阐明安全组设置也符合预期。
4. 安装nginx

为后边创建alb做准备
  1. sudo yum install nginx -y
  2. sudo systemctl start nginx
复制代码
转载请在文章开头著名原文地址:https://www.cnblogs.com/Sunzz/p/18432935
 
四、创建负载均衡alb

1. 创建目的组

起首,需要创建一个目的组,并将其配置为将流量转发到 EC2 实例的 80 端口。
  1. aws elbv2 create-target-group \
  2.   --name aws-cli-target-group \
  3.   --protocol HTTP \
  4.   --port 80 \
  5.   --vpc-id vpc-0a3a6fd36df03aea6 \
  6.   --health-check-protocol HTTP \
  7.   --health-check-path / \
  8.   --output json
复制代码
2. 注册目的

将你的 EC2 实例注册到目的组中:
  1. aws elbv2 register-targets \
  2.   --target-group-arn arn:aws:elasticloadbalancing:us-west-1:xxxxxxxx:targetgroup/aws-cli-target-group/4c9f519307ef326f \
  3.   --targets Id=i-0ebebdb8eda7d10c9
复制代码
--target-group-arn来自创建目的组输出的内容
--targets为关联的ec2
3.创建负载均衡器
  1. aws elbv2 create-load-balancer \
  2.   --name aws-cli-load-balancer \
  3.   --subnets subnet-08b88d4a329f823a9 subnet-03dd42c387a0f3539 \
  4.   --security-groups sg-0a986a2e312c0c947 \
  5.   --scheme internet-facing \
  6.   --output json
复制代码
4.创建监听器

创建一个监听器,将 ALB 的流量转发到目的组:
  1. aws elbv2 create-listener \
  2.   --load-balancer-arn arn:aws:elasticloadbalancing:us-west-1:xxxxxx:loadbalancer/app/aws-cli-load-balancer/2626f9962b63d4d5 \
  3.   --protocol HTTP \
  4.   --port 80 \
  5.   --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-west-1:712368562757:targetgroup/aws-cli-target-group/4c9f519307ef326f
复制代码
--load-balancer-arn 值来自上一步的输出
5. 检查 ALB 状态

使用以下命令查看 ALB 状态和:
  1. aws elbv2 describe-load-balancers
复制代码
查看DNS 名称:
  1. aws elbv2 describe-load-balancers --names aws-cli-load-balancer --query "LoadBalancers[*].[DNSName]" --output table
复制代码
-----------------------------------------------------------------
|                     DescribeLoadBalancers                     |
+---------------------------------------------------------------+
aws-cli-load-balancer-961374360.us-west-1.elb.amazonaws.com  |
+---------------------------------------------------------------+
6. 访问测试


更多详细信息和资源,请查看 AWS CLI 官方文档:AWS CLI Documentation
在本篇博客中,我们已经成功使用 AWS CLI 创建了 VPC、子网、安全组、互联网网关、EC2 实例和 ALB,整个过程如同在云端进行了一次愉快的旅行。如果你对 AWS CLI 的其他功能感兴趣,欢迎在批评区留言,告诉我你想相识的内容!
记得常回来看看,云端的冒险永远不会停!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

我爱普洱茶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表