معرفی شرکت ها


aws-ec2-pricing-0.1.9


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

CLI tool to build SQLite table from AWS EC2 prices.
ویژگی مقدار
سیستم عامل -
نام فایل aws-ec2-pricing-0.1.9
نام aws-ec2-pricing
نسخه کتابخانه 0.1.9
نگهدارنده ['vduseev']
ایمیل نگهدارنده ['vagiz@duseev.com']
نویسنده vduseev
ایمیل نویسنده vagiz@duseev.com
آدرس صفحه اصلی https://github.com/vduseev/aws-ec2-pricing
آدرس اینترنتی https://pypi.org/project/aws-ec2-pricing/
مجوز Apache-2.0
# aws-ec2-pricing ![Table of AWS EC2 prices in SQL](/docs/example-query.png) Collect AWS EC2 prices from AWS API to SQL table to analyze them. <a href="https://pypi.org/project/aws-ec2-pricing/"><img alt="PyPI" src="https://img.shields.io/pypi/v/aws-ec2-pricing?logo=pypi&color=blue"></a> **Table of contents**: * <a href="#usage">Usage</a> * <a href="#download">download</a> * <a href="#build">build</a> * <a href="#installation">Installation</a> * <a href="#working">Working with data</a> * <a href="#table">Table columns and meaning</a> * <a href="#queries">How to run queries</a> * <a href="#limitations">Limitations</a> * <a href="#future">Future plans</a> <a id="usage"></a> ## Usage Make sure AWS credentials are set as environment variables or are available otherwise to `boto3` library which this program uses to connect to AWS API. ```shell Usage: ec2pricing [OPTIONS] COMMAND [ARGS]... Options: --version Show the version and exit. --help Show this message and exit. Commands: build Build SQLite database with prices from given JSON download Download EC2 prices to JSON file ``` <a id="download"></a> Download all "On Demand" prices for all regions for "Shared" instances into a JSON file. ```shell ec2pricing download ``` <a id="build"></a> Build a SQLite database from that JSON file. *You can see an example of built database in `examples/prices.db` file in this repo.* ```shell ec2pricing build ``` <a id="working"></a> The resulting file is a SQLite database with a single `prices` table in it. <a id="table"></a> Resulting table `prices` in the `prices.db` file has following columns: <table> <tr><th>Name</th><th>Description</th><th>Examples</th></tr> <tr><td><b>family</b></td><td>Instace family</td><td>General purpose, Compute optimized</td></tr> <tr><td><b>type</b></td><td>Instace type group</td><td>a1, t3a, c5</td></tr> <tr><td><b>size</b></td><td>Instace size</td><td>nano, micro, xlarge, 32xlarge</td></tr> <tr><td>burst</td><td>Is instance burstable?</td><td>Yes, No</td></tr> <tr><td>base</td><td>Baseline performance of CPU (%)</td><td>5, 10, 100</td></tr> <tr><td>processor</td><td>Name of the physical CPU</td><td>AWS Graviton, AMD EPYC</td></tr> <tr><td>bit</td><td>CPU bitness</td><td>32-bit, 64-bit</td></tr> <tr><td><b>arch</b></td><td>CPU architecture</td><td>arm, x86</td></tr> <tr><td>tenancy</td><td>Instance tenancy</td><td>Shared, Dedicated, Host</td></tr> <tr><td><b>region</b></td><td>AWS Region</td><td>US East (Ohio), EU (Ireland)</td></tr> <tr><td><b>vcpu</b></td><td>Number of virtual cores</td><td>1, 2, 32</td></tr> <tr><td><b>memory</b></td><td>Amount of RAM</td><td>0.5 GiB, 128 GiB</td></tr> <tr><td>storage</td><td>Storage type</td><td>EBS only, 1x60GB NVM</td></tr> <tr><td>os</td><td>Operating System</td><td>Linux</td></tr> <tr><td>norm</td><td>Normalization scale factor (used by AWS to compare instances)</td><td>0.5, 1.0, 8.0</td></tr> <tr><td>speed</td><td>Declared CPU clock speed</td><td>2.5 GHz, Up to 3.2 Ghz. 0 GHz</td></tr> <tr><td><b>actual</b></td><td>Actual CPU clock speed multiplied by baseline</td><td>0.125 GHz, 2.5 Ghz</td></tr> <tr><td>network</td><td>Network performance</td><td>Up to 3500 MiB</td></tr> <tr><td>gen</td><td>Is it current generation of instances?</td><td>Yes, No</td></tr> <tr><td>cur</td><td>Price currency</td><td>USD, CNY</td></tr> <tr><td><b>hourly</b></td><td>Hourly price</td><td>0.0255</td></tr> <tr><td><b>montly</b></td><td>Monthly price (hourly * 24 * 30)</td><td>3.844</td></tr> <tr><td>starting</td><td>Date from which Amazon offers this price</td><td>2021-09-01T00:00:00Z</td></tr> </table> <a id="queries"></a> The built database can be opened in any SQL IDE, for example, DBeaver (open source SQL editor) or in any other way. You can then run queries in it. **Show cheapest x86-64 virtual machines**: ```sql SELECT * FROM prices WHERE arch = 'x86' ORDER BY monthly; ``` **Show cheapest ARM machines in Ireland**: ```sql SELECT * FROM prices WHERE arch = 'arm' AND region = "EU (Ireland)" ORDER BY monthly; ``` **Sort all machines alpabetically by their family, type and power**: ```sql SELECT * FROM prices ORDER BY family, type, norm; ``` <a id="limitations"></a> ## Limitations Currently, downloaded prices are limited to instances with: * "Shared" tenancy * "Linux" operating system * Support for VPC networking * Only "On Demand" pricing, no reserved instances or saving plans * "Used" capacity reservation All these are default settings for EC2 instances when you check prices for them on AWS pricng website. <a id="installation"></a> ## Installation This program is written in Python and can be installed via `pip`. ```shell pip install aws-ec2-pricing ``` ## Build it and run it yourself ### Set up via pip and virtual environemnt * Create a virtual environment ```shell python3 -m venv .venv source ./.venv/bin/activate ``` * Install requirements into it ```shell pip install -r requirements.txt ``` * Run the program ```shell python3 ec2pricing/__init__.py download ``` ### Set up via poetry * Tell poetry which version of python available in your system to use ```shell poetry env use 3.9.7 ``` * Install dependencies and create virtual environment ```shell poetry install ``` * Run program ```shell poetry run ec2pricing download ``` <a id="future"></a> ## Feature plans * [ ] Static website that displays the table along with the filters * [ ] Add search filters as key-value pairs for initial price download * [ ] Search for instances other than shared or Linux based * [ ] Support saving plans, reserved instances, free tier ## Copyright & License * This program is distributed under Apache 2 License. * All AWS and Amazon related trademarks or symbols are not mine. * Prices obtained through this program are not an offer and should not be treated as official.


نیازمندی

مقدار نام
>=1.18.40,<2.0.0 boto3
>=8.0.1,<9.0.0 click
>=2.2.0,<3.0.0 prettytable


زبان مورد نیاز

مقدار نام
>=3.9,<4.0 Python


نحوه نصب


نصب پکیج whl aws-ec2-pricing-0.1.9:

    pip install aws-ec2-pricing-0.1.9.whl


نصب پکیج tar.gz aws-ec2-pricing-0.1.9:

    pip install aws-ec2-pricing-0.1.9.tar.gz