Slightly improved version of AWS Spot Advisor
Project description
aws-spot-advisor-sejto
Sejto aims to provide a bit better filtering capabilities of AWS Spot instances than AWS Spot Advisor's website. What's missing there for me? Filtering in general.
Imagine yourself in your low-tech company running workloads on AWS Spot instances and you notice that those Spot instances are being interrupted more than usual. That's nothing unusual since availability of Spot instances changes over time. You need to find a suitable alternative within budget. You don't need bare metal machine or huge VM, just something with similar specification for a reasonable price. Perhaps you cannot run your workload on Graviton instances, therefore these are off the table as well.
Despite AWS Spot Advisor is a good tool, it will happily show you instances that you don't want and need right now. And that's where Sejto comes in since it offers the same capabilities as AWS Spot Advisor with some additional features.
AWS Spot Advisor features:
- filter by min vCPU
- filter by min memory
- filter EMR-only
- filter by OS
- filter by region
on top of that Sejto enables you to:
- filter by max vCPU
- filter by max memory
- filter by min/max interrupts
- filter by min/max savings
- filter out either bare metal or VM instances
- filter by series, generation or options, eg. include/exclude Graviton, AMD, Intel, Trainium, 7th generation etc.
- output in text, CSV and JSON format
Example usage
Example usage for Linux instances:
$ aws_spot_advisor_sejto \
--region us-east-1 \
--os Linux \
--savings-min 60 \
--inters-max=15 \
--exclude-metal \
--vcpu-min 2 \
--mem-max 64
instance_type=t3.nano vcpus=2 mem_gb=0.5 savings=90% interrupts=<5%
instance_type=c8g.large vcpus=2 mem_gb=4.0 savings=87% interrupts=<5%
instance_type=inf2.xlarge vcpus=4 mem_gb=16.0 savings=85% interrupts=<5%
[...]
instance_type=m8g.2xlarge vcpus=8 mem_gb=32.0 savings=88% interrupts=5-10%
instance_type=m8g.large vcpus=2 mem_gb=8.0 savings=85% interrupts=5-10%
instance_type=c8g.4xlarge vcpus=16 mem_gb=32.0 savings=85% interrupts=5-10%
instance_type=m8g.xlarge vcpus=4 mem_gb=16.0 savings=85% interrupts=5-10%
instance_type=c7gn.large vcpus=2 mem_gb=4.0 savings=85% interrupts=5-10%
instance_type=c7gn.2xlarge vcpus=8 mem_gb=16.0 savings=81% interrupts=5-10%
[...]
And example usage for Windows instances:
$ aws_spot_advisor_sejto \
--region us-east-1 \
--os Windows \
--savings-min 60 \
--inters-max=15 \
--exclude-metal \
--vcpu-min 2 \
--mem-max 64
instance_type=t2.2xlarge vcpus=8 mem_gb=32.0 savings=77% interrupts=<5%
instance_type=i3en.xlarge vcpus=4 mem_gb=32.0 savings=64% interrupts=<5%
instance_type=t3.medium vcpus=2 mem_gb=4.0 savings=62% interrupts=<5%
instance_type=r6idn.large vcpus=2 mem_gb=16.0 savings=61% interrupts=<5%
instance_type=g4ad.xlarge vcpus=4 mem_gb=16.0 savings=61% interrupts=<5%
instance_type=g5.xlarge vcpus=4 mem_gb=16.0 savings=76% interrupts=5-10%
instance_type=g4dn.xlarge vcpus=4 mem_gb=16.0 savings=67% interrupts=5-10%
instance_type=d3en.4xlarge vcpus=16 mem_gb=64.0 savings=67% interrupts=5-10%
instance_type=r7iz.large vcpus=2 mem_gb=16.0 savings=60% interrupts=5-10%
Possible planned features
- show cost/pricing
- web UI
Data structures
Spot Advisor
Example:
>>> data["global_rate"]
'<10%'
>>> data['instance_types']['r8g.24xlarge']
{'emr': True, 'cores': 96, 'ram_gb': 768.0}
>>> data['ranges']
[
{'index': 0, 'label': '<5%', 'dots': 0, 'max': 5},
{'index': 1, 'label': '5-10%', 'dots': 1, 'max': 11},
[...]
]
>>> data['spot_advisor']['us-east-1']['Linux']['r5.16xlarge']
{'s': 82, 'r': 4}
global_rate- global rate of interruptions(I guess)instance_types- list of AWS instances and their parametersemr- whether instance supports EMRcores- number of vCPUsram_gb- amount of RAM in GB
ranges- lookup/aggregation table forspot_advisorspot_advisor- approximate savings and interruptions in given region, for given OS and AWS instances- savings in percentr- interrupt range, lookup inranges
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aws_spot_advisor_sejto-0.0.3.tar.gz.
File metadata
- Download URL: aws_spot_advisor_sejto-0.0.3.tar.gz
- Upload date:
- Size: 25.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1555040d8a0ea2aea89fad36e31204013df423ba5a4c2ed3832a42d884af7a60
|
|
| MD5 |
2270b6bf9b571d2333d739688b3c85a2
|
|
| BLAKE2b-256 |
da1490f2b98a859f109e7c9b2efca811a85ea06028497ace2f571a1b409009d8
|
Provenance
The following attestation bundles were made for aws_spot_advisor_sejto-0.0.3.tar.gz:
Publisher:
release.yml on zstyblik/aws-spot-advisor-sejto
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aws_spot_advisor_sejto-0.0.3.tar.gz -
Subject digest:
1555040d8a0ea2aea89fad36e31204013df423ba5a4c2ed3832a42d884af7a60 - Sigstore transparency entry: 234056584
- Sigstore integration time:
-
Permalink:
zstyblik/aws-spot-advisor-sejto@533dc90d5917753451050f8f90e7ab3520f0dc1d -
Branch / Tag:
refs/tags/v0.0.3 - Owner: https://github.com/zstyblik
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@533dc90d5917753451050f8f90e7ab3520f0dc1d -
Trigger Event:
release
-
Statement type:
File details
Details for the file aws_spot_advisor_sejto-0.0.3-py3-none-any.whl.
File metadata
- Download URL: aws_spot_advisor_sejto-0.0.3-py3-none-any.whl
- Upload date:
- Size: 17.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b31060c9c74712f2739fa807b9fc85813433f884a44f97ad3f271f7f86a856bf
|
|
| MD5 |
dde4ed3adad4e59c8b2c733a505bd904
|
|
| BLAKE2b-256 |
0d4e3a0f034d4082287b802a63602a301a94cc52ecb7823df41828564803ea8f
|
Provenance
The following attestation bundles were made for aws_spot_advisor_sejto-0.0.3-py3-none-any.whl:
Publisher:
release.yml on zstyblik/aws-spot-advisor-sejto
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aws_spot_advisor_sejto-0.0.3-py3-none-any.whl -
Subject digest:
b31060c9c74712f2739fa807b9fc85813433f884a44f97ad3f271f7f86a856bf - Sigstore transparency entry: 234056589
- Sigstore integration time:
-
Permalink:
zstyblik/aws-spot-advisor-sejto@533dc90d5917753451050f8f90e7ab3520f0dc1d -
Branch / Tag:
refs/tags/v0.0.3 - Owner: https://github.com/zstyblik
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@533dc90d5917753451050f8f90e7ab3520f0dc1d -
Trigger Event:
release
-
Statement type: