Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

ec2-compare

PyPI - ec2-compare PyPI - Python Version Coverage PyPI - Downloads

Compare EC2 instances families without querying AWS API

Example:

  • Getting on instances suitable for on-demand
>>> import ec2_compare.internal.on_demand
>>> ec2_compare.internal.on_demand.get_instances_dict()[0]['InstanceType']
'm5d.xlarge'

Why it's more memory & CPU efficient

1). ec2-compare

  • Memory (penalty 8.1 Mb - 8175616 bytes)
>>>
def getCurrentMemoryUsage():
    ''' Memory usage in Bytes '''
    import psutil
    import os
    process = psutil.Process(os.getpid())
    return process.memory_info().rss
>>> getCurrentMemoryUsage()
9535488
>>> import ec2_compare.ec2data
>>> getCurrentMemoryUsage()
17641472
>>> len(ec2_compare.ec2data.get_instances_dict())
341
>>> getCurrentMemoryUsage()
17711104
  • Load time:
>>> import timeit
>>> timeit.timeit('import ec2_compare.ec2data;len(ec2_compare.ec2data.get_instances_dict())', number=1)
0.0028156930000000635
>>> timeit.timeit('import ec2_compare.ec2data;len(ec2_compare.ec2data.get_instances_dict())', number=1)
0.001711632000002794
>>> timeit.timeit('import ec2_compare.ec2data;len(ec2_compare.ec2data.get_instances_dict())', number=1000)
0.8330168470000032
>>> timeit.timeit('import ec2_compare.ec2data;len(ec2_compare.ec2data.get_instances_dict())', number=1000)
0.8174298469999997

2). Reading from json file:

  • Memory (penalty 2.5 Mb - 2592768 bytes)
>>> getCurrentMemoryUsage()
9379840
>>> import json
>>> with open("./helpers/aws_ec2.json") as json_file:
...     json.load(json_file)
...
>>> getCurrentMemoryUsage()
11972608
  • Load time:
>>> import timeit
>>>
s= '''
import json
with open("./helpers/aws_ec2.json") as json_file:
    json.load(json_file)
'''
timeit.timeit(s, number=1000)
>>
4.628850890999999

Versioning

ec2_compare follows PEP 440.

How to build

python -m pip install -e ./[devel]
# or pip install -e ./[devel]

# Running tests
scripts/tests.sh

Update data Locally

  1. Downland the latest info
aws ec2 describe-instance-types | jq '.InstanceTypes' > aws_ec2.json
  1. repack
python3 repack.py

Thank you

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ec2_compare-1.0.0a5.tar.gz (173.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ec2_compare-1.0.0a5-py3-none-any.whl (282.5 kB view details)

Uploaded Python 3

File details

Details for the file ec2_compare-1.0.0a5.tar.gz.

File metadata

  • Download URL: ec2_compare-1.0.0a5.tar.gz
  • Upload date:
  • Size: 173.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6

File hashes

Hashes for ec2_compare-1.0.0a5.tar.gz
Algorithm Hash digest
SHA256 2f4e30e1c11c28f6952a7a3cbef5084a86bc5fa177e8871ed3fa487e6eb036ce
MD5 25c0c7fb1a35950b30f3ba00030d4c0f
BLAKE2b-256 82dddb38974a14d46519f3a05ecba8ca18613b25cdfa7045ff9185a85e0b7dab

See more details on using hashes here.

File details

Details for the file ec2_compare-1.0.0a5-py3-none-any.whl.

File metadata

  • Download URL: ec2_compare-1.0.0a5-py3-none-any.whl
  • Upload date:
  • Size: 282.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6

File hashes

Hashes for ec2_compare-1.0.0a5-py3-none-any.whl
Algorithm Hash digest
SHA256 0bd2275c1817ff2bcbf0b0b3016aca7f67c7860137ae819391614ed3ebcc8b89
MD5 2b792c62196d7cb0cd2f4cad1ec0e22a
BLAKE2b-256 e7e9638611a17d78e92b9f63bd2a17d6766fa44d8651825982aeda2218b95d8d

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.0a5 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page