Ec2 Compare 1.0.0a9 | Coderz Repository

ec2-compare 1.0.0a9

Last updated:

0 purchases

ec2-compare 1.0.0a9 Image
ec2-compare 1.0.0a9 Images

Free

Languages

Categories

Add to Cart

Description:

ec2compare 1.0.0a9

ec2-compare




Compare EC2 instances families without querying AWS API
Example:

Getting on instances by parameters

import ec2_compare.mixin
req = ec2_compare.mixin.EmrRequestMixin().ec3__get_machines(
max_instances=5, # maximum number of machines
# reuest parameters
**{
'cpu': 40, 'ram': 786432, 'min_cpu': 8, 'min_ram': 65536,
'InstanceType': ['c4', 'c5.', 'r4', 'r5.', 'm4', 'm5.'],
'SupportedArchitectures': ['x86_64'], 'SupportedUsageClasses': 'spot'
})


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

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product: (if this is empty don't purchase this product)

Customer Reviews

There are no reviews.