关于AWS云主机EC2的一些常用操作

本文介绍如何通过AWS CLI部署EC2实例的过程,包括安装配置AWS CLI、启动EC2实例、创建及挂载EBS磁盘、分配公网IP、执行网络及磁盘性能测试等关键技术步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1, 如果要通过命令行操作EC2,首先需要一台可以上网的电脑安装并配置好AWS CLI(https://aws.amazon.com/cn/cli/), 配置AWS CLI的时候需要AWS Access Key ID和Secret Access Key,这对密钥可以从AWS控制台得到。

以Linux为例,配置AWS CLI的步骤,这里的默认region选成了中国北京区。

[root@bjsconsole ~]# aws configure
AWS Access Key ID []: ****************
AWS Secret Access Key []: ***************
Default region name []: cn-north-1
Default output format [None]:

//如下对EC2操作也可以在WEB控制台中实现,也可以通过如下的命令行实现。//

2,通过命令行启动EC2虚拟机器,为了增加示例效果,我准备一个user-data的部分,它可以指定云主机在第一次启动的时候需要执行的脚本,我在AWSCLI本地放了一个文件my_script.txt,内容是一个yum命令。

[bjs@bjsconsole ~]$ cat my_script.txt

yum install telnet -y

3,通过命令启动2个EC2实例. 这里我跳过了创建相关的资源的步骤,大家可以在控制台里面找到相应资源的id,比如安全组,子网和placement  group。

[bjs@bjsconsole ~]$ aws ec2 run-instances –image-id ami-3fe13752 –count 2 –instance-type c4.8xlarge –key-name mykey-zhenyong-private –region cn-north-1 –security-group-ids sg-efcac28d  –subnet-id subnet-b2e6f2c6 –user-data file://my_script.txt –placement   “{ \”GroupName\”: \”test\” }”

4, 可以通过AWS CLI命令或者API得到虚拟机的列表

[bjs@bjsconsole ~]$ aws ec2 describe-instances –filters “Name=instance-type,Values=c4.8xlarge” “Name=instance-state-code,Values=16” | grep InstanceId

5,分别为2台云主机创建磁盘EBS,设置磁盘的IOPS为20000,并把磁盘挂在到AWS的EC2上

第一台EC2

[bjs@bjsconsole ~]$ aws ec2 create-volume –region cn-north-1 –availability-zone cn-north-1b –size 400 –volume-type io1 –iops 20000

[bjs@bjsconsole ~]$ aws ec2 attach-volume –volume-id vol-0a6cfa07828f05ddf –instance-id i-04ec9cae4f402c8ed –device /dev/sdb

第二台EC2

[bjs@bjsconsole ~]$ aws ec2 create-volume –region cn-north-1 –availability-zone cn-north-1b –size 400 –volume-type io1 –iops 20000

[bjs@bjsconsole ~]$ aws ec2 attach-volume –volume-id vol-001a4156071f183a6  –instance-id i-0d75e9a4071ffbfc0  –device /dev/sdb

6,把互联网IP地址连接到云主机上。

[bjs@bjsconsole ~]$ aws ec2 associate-address –instance-id i-04ec9cae4f402c8ed  –allocation-id eipalloc-dfe281e5

[bjs@bjsconsole ~]$ aws ec2 associate-address –instance-id i-0d75e9a4071ffbfc0 –allocation-id eipalloc-743b584e

7,登陆到云主机上,安装一些必要的软件,准备执行后续的操作。

[root@ip-10-128-2-224 ~]# yum install fio iperf -y –enablerepo=epel

//执行一些必要的性能检测//

8,网络性能检测,在一台云主机上执行iperf –s作为网络服务器。

[root@ip-10-128-2-224 ~]# iperf -s

9,另一台虚拟机上执行iperf –c, 检查网络带宽。

[root@ip-10-128-2-92 ~]# iperf -c 10.128.2.224

查看测试结果,这是两台c4.8xlarge的虚拟机,网络性能为10Gbps,可以看到网络带宽实测数据非常接近。

10,接下来在虚拟机上执行对磁盘的测试,先进行分区,然后创建文件系统

[root@ip-10-128-2-224 ~]# fdisk /dev/sdb

通过如上命令并根据提示创建sdb1分区。

[root@ip-10-128-2-224 ~]# mkfs.ext4 /dev/sdb1

对sdb1创建文件系统。

11,挂载设备到/mnt目录,通过ioping检查磁盘的延迟。可以看到延迟大约在300us(0.3ms)左右。

[root@ip-10-128-2-224 ~]# mount /dev/sdb1 /mnt/

[root@ip-10-128-2-224 ~]# ioping -c 10 /mnt/

12,使用fio进行磁盘压力测试,可以看到磁盘的IO性能非常稳定的在20000IOPS附近,带宽在340MB/s左右,注意,这是单盘的性能,通过增加EBS的数量,还可能增加并发的性能。

[root@ip-10-128-2-224 mnt]# fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=16k -size=10G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Write_Testing

12,使用cloudwatch取到EC2的监控数据。

[bjs@bjsconsole ~]$ aws cloudwatch get-metric-statistics –metric-name CPUUtilization –start-time 2017-05-24T04:00:0 –end-time 2017-05-24T04:35:0 –period 300 –namespace AWS/EC2 –statistics Average –dimensions Name=InstanceId,Value=i-04ec9cae4f402c8ed

== 其他参考==

启动EC2,指定使用EIP。

[bjs@bjsconsole ~]$ aws ec2 run-instances –image-id ami-3fe13752 –count 2 –instance-type c4.8xlarge –key-name mykey-zhenyong-private –region cn-north-1 –security-group-ids sg-efcac28d  –subnet-id subnet-b2e6f2c6 –user-data file://my_script.txt –placement   “{ \”GroupName\”: \”test\” }” –associate-public-ip-address

AWS账号对用户能够使用的资源默认有上限,通过如下命令可以查看你的服务限制是否已经到默认的上限:

[ec2-user@bjsconsole tools]$ aws support describe-trusted-advisor-check-result –language en –region us-east-1 –check-id eW7HH0l7J9

工单是用户寻求AWS技术支持的最常用渠道,除了人工在网站提交case给AWS之外,你也可以通过命令行提交工单,有了这个工具你甚至可以把你的监控报警和AWS工单对接起来。

[ec2-user@bjsconsole tools]$ aws support create-case –subject “Test” –service-code “amazon-cloudwatch” –communication-body “Test” –region us-east-1 –category-code “apis”  –severity-code “low”
{
“caseId”: “case-936200357723-muen-2017-5e8e46d0d8557d0e”
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值