Compare EC2 instances families without querying AWS API
Project description
ec2-compare
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
- Downland the latest info
aws ec2 describe-instance-types | jq '.InstanceTypes' > aws_ec2.json
- repack
python3 repack.py
Thank you
- https://github.com/actions/ for an awesome github actions
- mypy for doing all dirty work for us
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
ec2_compare-1.0.0a5.tar.gz
(173.5 kB
view hashes)
Built Distribution
ec2_compare-1.0.0a5-py3-none-any.whl
(282.5 kB
view hashes)
Close
Hashes for ec2_compare-1.0.0a5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0bd2275c1817ff2bcbf0b0b3016aca7f67c7860137ae819391614ed3ebcc8b89 |
|
MD5 | 2b792c62196d7cb0cd2f4cad1ec0e22a |
|
BLAKE2b-256 | e7e9638611a17d78e92b9f63bd2a17d6766fa44d8651825982aeda2218b95d8d |