AWS EC2 相关信息笔记

记录Amazon EC2 一些个人认为比较有用的信息: 比如CPU/内存/磁盘等, 并且解释一下在CUR中关于EC2字段的各类说明

CPU属性说明

术语概述

术语 表示信息 说明
Core 物理核心- Physicial Core 每个CPU的物理核心, 如常说的i5是4核, 指代4颗物理核心
Threads 超线程- Hyper Thread 也成为逻辑核心, 泛指Intel系列CPU的超线程技术, 即通过CPU调度实现在一个物理核心上产生至多2个逻辑核心
vCPU 逻辑核心总数 指代当前机型的所有逻辑核心总数, 即 $ vCPU = Cores * Threads$

EC2可调节Core及Threads

限制Cores

适用场景: 如Denodo等商用产品, 授权是针对CPU核心数量, 但是该商用产品又是内存型使用方式, 因此可以通过创建大机型, 如m5.4xlarge(8C/2Thread/64G)的资源, 并针对Cores进行限制(≤4), 进而达到不购买额外授权, 增加使用容量的目的

限制Threads

适用场景: 如HPC等超算平台的使用, 因为超线程本质上是通过CPU进行线程切换, 加宽了CPU利用率, 但是针对于超算等场景, 其核心技术点为CPU的线程调度, 反而成为劣势, 超算一般直接将进程绑定到该物理核心上以避免进程切换开销.

boto3术语对照表

boto3参数 Console显示 说明 备注
DefaultVCpus vCPUs 该实例默认情况下逻辑核心总数 泛指日常所说的 xC_yG中的C
DefaultCores Cores 该实例默认情况下物理核心总数 泛指日常所说的某某CPU是x核的核数
DefaultThreadsPerCore Threads per core 该实例默认情况下每个物理核心超线程技术产生的逻辑核心数 泛指Intel超线程技术, 一般为2
ValidCores Valid cores AWS针对该类型实例允许设置的物理CPU核心数量 指可以修改的物理核心数量, 一般以1/2为基础减半, 如m5.2xlarge(4C 8vC 32G)允许设置的值为: 2,4
ValidThreadsPerCore Valid threads per core AWS针对该类型实例允许设置的每个物理CPU的超线程数量 即超线程技术开关, 如开启则为2, 关闭则为1, 例如:m5.2xlarge(4C 8vC 32G)在不修改默认Cores数量的情况下, 开启超线程技术, 则vCPU数为8, 关闭则为4

账单字段

CUR

针对line_item_line_item_type字段值解析

字段值 表示内容 备注
Fee RI订单行 表示RI订单相关内容, 如单笔支付费用等
Tax 计税行 计税信息, 该行不包含用户标签
EdpDiscount EDP折扣行 EDP折扣信息, 改行不包含用户标签, 随机分配到各个EC2
Usage 用量行 该行包含OD/Spot用量及EBS/NAT/Transfer等, 是实际EC2用量
DiscountedUsage RI覆盖行 该行展示所有被RI覆盖的EC2用量, 包含用户标签
Credit 额外抵扣行 该行金额为负值, 为抵扣信息, 不包含用户标签
RIFee RI每小时计费行 该行包含每小时RI订单应额外收取的费用, 对于预付全费, 该行费用为0, 对于部分预付或无预付情况, 该行为周期性费用值

EBS

容量限制

针对 EBS 卷的大小和配置的限制 - Amazon Elastic Compute Cloud

分区方案 最大可寻址块数 理论最大大小(块数 x 块大小) Ext4 实现的最大大小1 XFS 实现的最大大小2 NTFS 实现的最大大小 EBS 支持的最大大小
MBR 232 2 TiB 2 TiB 2 TiB 2 TiB 2 TiB
GPT 264 64 ZiB 1 EiB =24210TiB(在 RHEL7 上认证的 50 TiB) 500 TiB(在 RHEL7 上认证) 256 TiB 64 TiB3

⚠️需要注意: MBR分区最大仅支持2TB, 因此建议使用GPT分区格式

扩容

前提条件: 卷进入 optimizing 状态

1
2
3
4
5
[ec2-user ~]$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/nvme0n1p1 xfs 8.0G 1.6G 6.5G 20% /
/dev/nvme1n1 xfs 8.0G 33M 8.0G 1% /data
...
1
2
3
4
5
6
[ec2-user ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme1n1 259:0 0 30G 0 disk /data
nvme0n1 259:1 0 16G 0 disk
└─nvme0n1p1 259:2 0 8G 0 part /
└─nvme0n1p128 259:3 0 1M 0 part
1
[ec2-user ~]$ sudo growpart /dev/nvme0n1 1

ext4

1
2
3
4
# 针对于有分区的情况
sudo resize2fs /dev/nvme0n1p1
# 针对于无分区的情况
sudo resize2fs /dev/nvme1n1

xfs

1
sudo yum install xfsprogs
1
2
3
# 参数为挂载点
[ec2-user ~]$ sudo xfs_growfs -d /
[ec2-user ~]$ sudo xfs_growfs -d /data

  1. Ext4 Howto - Ext4What are the file and file system size limitations for Red Hat Enterprise Linux? - Red Hat Customer Portal↩︎

  2. https://access.redhat.com/solutions/1532↩︎

  3. io2 Block Express 卷最高支持 64TiB 的 GPT 分区。有关更多信息,请参阅 io2 Block Express 卷↩︎