AWS has more than 200 instance types under EC2. It's very tricky to select appropriate ec2-instance types and surely AWS docs can be daunting.
You can check the official doc here: https://aws.amazon.com/ec2/instance-types/
ec2-instance-selector is an open-source project by AWS. It is a CLI tool to helps you select compatible instance types.
Check out the repo here,
Features
You can filter AWS Instance types using criteria like vcpu, memory, network performance, etc.
You can use this project as a Go library to embed this functionality into your Golang projects, I will surely embed this in awsctl.
Installing ec2-instance-selector
- On Mac
brew tap aws/tap
brew install ec2-instance-selector
On Linux & Windows, you can download the binary from the release page.
verify installation
ec2-instance-selector --version
v2.4.1
Usage
- Lookup all the instance type details interactively
ec2-instance-selector -o interactive
- Not all regions have all the instance types, so you can pass the region of your choice via
--region
flag
ec2-instance-selector --region eu-west-2
- If you are looking for a specific vcpu or memory count, you can pass flags as shown below,
ec2-instance-selector --vcpus 4 --memory 16
g4ad.xlarge
g4dn.xlarge
g5.xlarge
im4gn.xlarge
...
...
- you can also print in tabular format,
➜ ec2-instance-selector --vcpus 4 --memory 16 -o table
Instance Type VCPUs Mem (GiB)
------------- ----- ---------
g4ad.xlarge 4 16
g4dn.xlarge 4 16
g5.xlarge 4 16
im4gn.xlarge 4 16
...
...
➜ ec2-instance-selector --vcpus 4 --memory 16 -o table-wide
Instance Type VCPUs Mem (GiB) Hypervisor Current Gen Hibernation Support CPU Arch Network Performance ENIs GPUs GPU Mem (GiB) GPU Info On-Demand Price/Hr Spot Price/Hr (30d avg)
------------- ----- --------- ---------- ----------- ------------------- -------- ------------------- ---- ---- ------------- -------- ------------------ -----------------------
g4ad.xlarge 4 16 nitro true false x86_64 Up to 10 Gigabit 2 1 8 AMD Radeon Pro V520 $0.44271 $0.25325
g4dn.xlarge 4 16 nitro true false x86_64 Up to 25 Gigabit 3 1 16 NVIDIA T4 $0.615 $0.21569
g5.xlarge 4 16 nitro true false x86_64 Up to 10 Gigabit 4 1 24 NVIDIA A10G $1.277 $0.3831
im4gn.xlarge 4 16 nitro true false arm64 Up to 25 Gigabit 4 0 0 none $0.42209 $0.24382
m4.xlarge 4 16 xen false true x86_64 High 4 0 0 none $0.232 $0.11175
...
...
These are just a few examples of ec2-instance-selector
but you can do much more such as finding instances by prices, CPU architecture, EBS, etc.
You can find this information in the help section,
ec2-instance-selector --help
If you find any useful commands with ec2-instance-selector
, do let me know in the comment section.
Have a lovely day :)