The ec2-price-finder Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The ec2-price-finder Reference Manual

This is the ec2-price-finder Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Wed Jun 15 04:28:49 2022 GMT+0.

Table of Contents


1 Introduction

EC2 Price Finder

EC2 Price Finder helps you quickly find the cheapest EC2 instances for your needs. Also allows you to compare an instance's price across different AWS regions in one go.

Installation

Until the project is added to quicklisp, the easiest way to install it is to clone the repo, create a symlink to the project directory inside ~/quicklisp/local-projects/, or add the project's directory to ASDF:*CENTRAL-REGISTRY*, then run:

(ql:quickload "ec2-price-finder")

You will also need to download the bulk pricing CSV for EC2 from AWS. It is available at the following URL (warning: 1.2 GB file):

https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/index.csv

Usage

Load the previously downloaded pricing file in your Lisp image:

(ec2-price-finder:load-pricing-file "/path/to/index.csv")

After this, you can start the Hunchentoot server.

(ec2-price-finder:start-server 8080)

Now open http://localhost:8080 in the browser to find your instance!

After you are done, simply stop the server as follows:

(ec2-price-finder:stop-server)

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 ec2-price-finder

Quickly find the cheapest EC2 instance that you need across regions

Author

Chaitanya Gupta <mail@chaitanyagupta.com>

License

BSD-3-Clause

Dependencies
  • read-csv (system).
  • parse-float (system).
  • hunchentoot (system).
  • spinneret (system).
  • easy-routes (system).
  • lass (system).
  • local-time (system).
  • wu-decimal (system).
Source

ec2-price-finder.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp   [Contents][Index]

3.1.1 ec2-price-finder/ec2-price-finder.asd

Source

ec2-price-finder.asd.

Parent Component

ec2-price-finder (system).

ASDF Systems

ec2-price-finder.


3.1.2 ec2-price-finder/package.lisp

Source

ec2-price-finder.asd.

Parent Component

ec2-price-finder (system).

Packages

ec2-price-finder.


3.1.3 ec2-price-finder/loader.lisp

Dependency

package.lisp (file).

Source

ec2-price-finder.asd.

Parent Component

ec2-price-finder (system).

Public Interface
Internals

3.1.4 ec2-price-finder/server.lisp

Dependency

loader.lisp (file).

Source

ec2-price-finder.asd.

Parent Component

ec2-price-finder (system).

Internals

3.1.5 ec2-price-finder/main.lisp

Dependency

server.lisp (file).

Source

ec2-price-finder.asd.

Parent Component

ec2-price-finder (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

4.1 ec2-price-finder

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Public Interface


5.1.1 Ordinary functions

Function: build-image ()
Package

ec2-price-finder.

Source

main.lisp.

Function: load-pricing-file (path)
Package

ec2-price-finder.

Source

main.lisp.

Function: start-server (port)
Package

ec2-price-finder.

Source

main.lisp.

Function: stop-server ()
Package

ec2-price-finder.

Source

main.lisp.


5.1.2 Standalone methods

Method: initialize-instance :after ((object instance-def) &rest initargs)
Source

loader.lisp.

Method: print-object ((object instance-price) stream)
Source

loader.lisp.

Method: print-object ((object instance-def) stream)
Source

loader.lisp.

Method: print-object ((object document) stream)
Source

loader.lisp.


5.2 Internals


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.1 Constants

Constant: +ec2-price-limit+

Price of an EC2 instance won’t go beyond this - this is needed for MIN comparisons.

Package

ec2-price-finder.

Source

server.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.2 Special variables

Special Variable: *acceptor*
Package

ec2-price-finder.

Source

main.lisp.

Special Variable: *aws-instance-purposes*
Package

ec2-price-finder.

Source

loader.lisp.

Special Variable: *aws-operating-systems*
Package

ec2-price-finder.

Source

loader.lisp.

Special Variable: *aws-region-groups*
Package

ec2-price-finder.

Source

loader.lisp.

Special Variable: *aws-regions*
Package

ec2-price-finder.

Source

loader.lisp.

Special Variable: *cache-buster*
Package

ec2-price-finder.

Source

server.lisp.

Special Variable: *css-beautifier*
Package

ec2-price-finder.

Source

server.lisp.

Special Variable: *default-region-codes*
Package

ec2-price-finder.

Source

server.lisp.

Special Variable: *document*
Package

ec2-price-finder.

Source

loader.lisp.


5.2.3 Ordinary functions

Function: app-css ()
Package

ec2-price-finder.

Source

server.lisp.

Function: aws-region-belongs-to-group (region group)
Package

ec2-price-finder.

Source

loader.lisp.

Function: aws-region-code (region)
Package

ec2-price-finder.

Source

loader.lisp.

Function: aws-region-code-to-name (code)
Package

ec2-price-finder.

Source

loader.lisp.

Function: aws-region-group-name (region-group)
Package

ec2-price-finder.

Source

loader.lisp.

Function: aws-region-group-prefix (region-group)
Package

ec2-price-finder.

Source

loader.lisp.

Function: aws-region-name (region)
Package

ec2-price-finder.

Source

loader.lisp.

Function: aws-region-name-to-code (name)
Package

ec2-price-finder.

Source

loader.lisp.

Function: aws-region-names (region)
Package

ec2-price-finder.

Source

loader.lisp.

Function: aws-region-short-name (region)
Package

ec2-price-finder.

Source

loader.lisp.

Function: family-for-instance-type (instance-type)
Package

ec2-price-finder.

Source

loader.lisp.

Function: find-aws-region (code)
Package

ec2-price-finder.

Source

loader.lisp.

Function: find-aws-region-group (prefix)
Package

ec2-price-finder.

Source

loader.lisp.

Function: find-cheapest (&key document v-cpu memory operating-system region-codes instance-family)
Package

ec2-price-finder.

Source

loader.lisp.

Function: find-def-for-instance-type (instance-type defs)
Package

ec2-price-finder.

Source

loader.lisp.

Function: find-instances ()
Package

ec2-price-finder.

Source

server.lisp.

Package

ec2-price-finder.

Source

server.lisp.

Function: head-common ()
Package

ec2-price-finder.

Source

server.lisp.

Function: home ()
Package

ec2-price-finder.

Source

server.lisp.

Function: instance-family-groups-from-defs (defs)
Package

ec2-price-finder.

Source

loader.lisp.

Function: lispify-header-name (string &optional package)
Package

ec2-price-finder.

Source

loader.lisp.

Function: main ()
Package

ec2-price-finder.

Source

main.lisp.

Function: not-found ()
Package

ec2-price-finder.

Source

server.lisp.

Function: parse-float-with-junk (string)
Package

ec2-price-finder.

Source

server.lisp.

Function: parse-integer-with-junk (string)
Package

ec2-price-finder.

Source

server.lisp.

Function: parse-memory (string)
Package

ec2-price-finder.

Source

loader.lisp.

Function: parse-memory-with-junk (string)
Package

ec2-price-finder.

Source

loader.lisp.

Function: process-row (row field-names defs)
Package

ec2-price-finder.

Source

loader.lisp.

Function: read-pricing-file (path &key progress-fn)
Package

ec2-price-finder.

Source

loader.lisp.

Function: render-find-form (&key document open-sections v-cpu memory operating-system region-codes instance-family more-specs price-per autofocus)
Package

ec2-price-finder.

Source

server.lisp.

Function: render-instance-type-form (&key document)
Package

ec2-price-finder.

Source

server.lisp.

Function: render-memory (memory)
Package

ec2-price-finder.

Source

server.lisp.

Function: show-instance (instance-type)
Package

ec2-price-finder.

Source

server.lisp.

Function: string-or-nil (string)
Package

ec2-price-finder.

Source

server.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.4 Generic functions

Generic Reader: defs (object)
Package

ec2-price-finder.

Methods
Reader Method: defs ((document document))

automatically generated reader method

Source

loader.lisp.

Target Slot

defs.

Generic Reader: ecu (object)
Package

ec2-price-finder.

Methods
Reader Method: ecu ((instance-def instance-def))

automatically generated reader method

Source

loader.lisp.

Target Slot

ecu.

Generic Reader: hourly (object)
Package

ec2-price-finder.

Methods
Reader Method: hourly ((instance-price instance-price))

automatically generated reader method

Source

loader.lisp.

Target Slot

hourly.

Generic Reader: instance-family (object)
Package

ec2-price-finder.

Methods
Reader Method: instance-family ((instance-def instance-def))

automatically generated reader method

Source

loader.lisp.

Target Slot

instance-family.

Generic Reader: instance-family-groups (object)
Package

ec2-price-finder.

Methods
Reader Method: instance-family-groups ((document document))

automatically generated reader method

Source

loader.lisp.

Target Slot

instance-family-groups.

Generic Reader: instance-purpose (object)
Package

ec2-price-finder.

Methods
Reader Method: instance-purpose ((instance-def instance-def))

automatically generated reader method

Source

loader.lisp.

Target Slot

purpose.

Generic Reader: instance-type (object)
Package

ec2-price-finder.

Methods
Reader Method: instance-type ((instance-price instance-price))

automatically generated reader method

Source

loader.lisp.

Target Slot

instance-type.

Reader Method: instance-type ((instance-def instance-def))

automatically generated reader method

Source

loader.lisp.

Target Slot

instance-type.

Generic Reader: memory (object)
Package

ec2-price-finder.

Methods
Reader Method: memory ((instance-def instance-def))

automatically generated reader method

Source

loader.lisp.

Target Slot

memory.

Generic Reader: network-performance (object)
Package

ec2-price-finder.

Methods
Reader Method: network-performance ((instance-def instance-def))

automatically generated reader method

Source

loader.lisp.

Target Slot

network-performance.

Generic Reader: operating-system (object)
Package

ec2-price-finder.

Methods
Reader Method: operating-system ((instance-price instance-price))

automatically generated reader method

Source

loader.lisp.

Target Slot

operating-system.

Generic Reader: physical-processor (object)
Package

ec2-price-finder.

Methods
Reader Method: physical-processor ((instance-def instance-def))

automatically generated reader method

Source

loader.lisp.

Target Slot

physical-processor.

Generic Reader: prices (object)
Package

ec2-price-finder.

Methods
Reader Method: prices ((document document))

automatically generated reader method

Source

loader.lisp.

Target Slot

prices.

Generic Reader: publication-date (object)
Package

ec2-price-finder.

Methods
Reader Method: publication-date ((document document))

automatically generated reader method

Source

loader.lisp.

Target Slot

publication-date.

Generic Reader: region-code (object)
Package

ec2-price-finder.

Methods
Reader Method: region-code ((instance-price instance-price))

automatically generated reader method

Source

loader.lisp.

Target Slot

region-code.

Generic Reader: storage (object)
Package

ec2-price-finder.

Methods
Reader Method: storage ((instance-def instance-def))

automatically generated reader method

Source

loader.lisp.

Target Slot

storage.

Generic Reader: v-cpu (object)
Package

ec2-price-finder.

Methods
Reader Method: v-cpu ((instance-def instance-def))

automatically generated reader method

Source

loader.lisp.

Target Slot

v-cpu.

Generic Reader: version (object)
Package

ec2-price-finder.

Methods
Reader Method: version ((document document))

automatically generated reader method

Source

loader.lisp.

Target Slot

version.


Previous: , Up: Internals   [Contents][Index]

5.2.5 Classes

Class: document
Package

ec2-price-finder.

Source

loader.lisp.

Direct methods
Direct slots
Slot: publication-date
Initargs

:publication-date

Readers

publication-date.

Writers

This slot is read-only.

Slot: version
Initargs

:version

Readers

version.

Writers

This slot is read-only.

Slot: defs
Initargs

:defs

Readers

defs.

Writers

This slot is read-only.

Slot: prices
Initargs

:prices

Readers

prices.

Writers

This slot is read-only.

Slot: instance-family-groups
Initargs

:instance-family-groups

Readers

instance-family-groups.

Writers

This slot is read-only.

Class: instance-def
Package

ec2-price-finder.

Source

loader.lisp.

Direct methods
Direct slots
Slot: instance-type
Initargs

:instance-type

Readers

instance-type.

Writers

This slot is read-only.

Slot: instance-family
Readers

instance-family.

Writers

This slot is read-only.

Slot: purpose
Initargs

:purpose

Readers

instance-purpose.

Writers

This slot is read-only.

Slot: v-cpu
Initargs

:v-cpu

Readers

v-cpu.

Writers

This slot is read-only.

Slot: ecu
Initargs

:ecu

Readers

ecu.

Writers

This slot is read-only.

Slot: memory
Initargs

:memory

Readers

memory.

Writers

This slot is read-only.

Slot: storage
Initargs

:storage

Readers

storage.

Writers

This slot is read-only.

Slot: network-performance
Initargs

:network-performance

Readers

network-performance.

Writers

This slot is read-only.

Slot: physical-processor
Initargs

:physical-processor

Readers

physical-processor.

Writers

This slot is read-only.

Class: instance-price
Package

ec2-price-finder.

Source

loader.lisp.

Direct methods
Direct slots
Slot: instance-type
Initargs

:instance-type

Readers

instance-type.

Writers

This slot is read-only.

Slot: region-code
Initargs

:region-code

Readers

region-code.

Writers

This slot is read-only.

Slot: operating-system
Initargs

:operating-system

Readers

operating-system.

Writers

This slot is read-only.

Slot: hourly
Initargs

:hourly

Readers

hourly.

Writers

This slot is read-only.


Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts


Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   A   B   D   E   F   G   H   I   L   M   N   O   P   R   S   V  
Index Entry  Section

A
app-css: Private ordinary functions
aws-region-belongs-to-group: Private ordinary functions
aws-region-code: Private ordinary functions
aws-region-code-to-name: Private ordinary functions
aws-region-group-name: Private ordinary functions
aws-region-group-prefix: Private ordinary functions
aws-region-name: Private ordinary functions
aws-region-name-to-code: Private ordinary functions
aws-region-names: Private ordinary functions
aws-region-short-name: Private ordinary functions

B
build-image: Public ordinary functions

D
defs: Private generic functions
defs: Private generic functions

E
ecu: Private generic functions
ecu: Private generic functions

F
family-for-instance-type: Private ordinary functions
find-aws-region: Private ordinary functions
find-aws-region-group: Private ordinary functions
find-cheapest: Private ordinary functions
find-def-for-instance-type: Private ordinary functions
find-instances: Private ordinary functions
footer: Private ordinary functions
Function, app-css: Private ordinary functions
Function, aws-region-belongs-to-group: Private ordinary functions
Function, aws-region-code: Private ordinary functions
Function, aws-region-code-to-name: Private ordinary functions
Function, aws-region-group-name: Private ordinary functions
Function, aws-region-group-prefix: Private ordinary functions
Function, aws-region-name: Private ordinary functions
Function, aws-region-name-to-code: Private ordinary functions
Function, aws-region-names: Private ordinary functions
Function, aws-region-short-name: Private ordinary functions
Function, build-image: Public ordinary functions
Function, family-for-instance-type: Private ordinary functions
Function, find-aws-region: Private ordinary functions
Function, find-aws-region-group: Private ordinary functions
Function, find-cheapest: Private ordinary functions
Function, find-def-for-instance-type: Private ordinary functions
Function, find-instances: Private ordinary functions
Function, footer: Private ordinary functions
Function, head-common: Private ordinary functions
Function, home: Private ordinary functions
Function, instance-family-groups-from-defs: Private ordinary functions
Function, lispify-header-name: Private ordinary functions
Function, load-pricing-file: Public ordinary functions
Function, main: Private ordinary functions
Function, not-found: Private ordinary functions
Function, parse-float-with-junk: Private ordinary functions
Function, parse-integer-with-junk: Private ordinary functions
Function, parse-memory: Private ordinary functions
Function, parse-memory-with-junk: Private ordinary functions
Function, process-row: Private ordinary functions
Function, read-pricing-file: Private ordinary functions
Function, render-find-form: Private ordinary functions
Function, render-instance-type-form: Private ordinary functions
Function, render-memory: Private ordinary functions
Function, show-instance: Private ordinary functions
Function, start-server: Public ordinary functions
Function, stop-server: Public ordinary functions
Function, string-or-nil: Private ordinary functions

G
Generic Function, defs: Private generic functions
Generic Function, ecu: Private generic functions
Generic Function, hourly: Private generic functions
Generic Function, instance-family: Private generic functions
Generic Function, instance-family-groups: Private generic functions
Generic Function, instance-purpose: Private generic functions
Generic Function, instance-type: Private generic functions
Generic Function, memory: Private generic functions
Generic Function, network-performance: Private generic functions
Generic Function, operating-system: Private generic functions
Generic Function, physical-processor: Private generic functions
Generic Function, prices: Private generic functions
Generic Function, publication-date: Private generic functions
Generic Function, region-code: Private generic functions
Generic Function, storage: Private generic functions
Generic Function, v-cpu: Private generic functions
Generic Function, version: Private generic functions

H
head-common: Private ordinary functions
home: Private ordinary functions
hourly: Private generic functions
hourly: Private generic functions

I
initialize-instance: Public standalone methods
instance-family: Private generic functions
instance-family: Private generic functions
instance-family-groups: Private generic functions
instance-family-groups: Private generic functions
instance-family-groups-from-defs: Private ordinary functions
instance-purpose: Private generic functions
instance-purpose: Private generic functions
instance-type: Private generic functions
instance-type: Private generic functions
instance-type: Private generic functions

L
lispify-header-name: Private ordinary functions
load-pricing-file: Public ordinary functions

M
main: Private ordinary functions
memory: Private generic functions
memory: Private generic functions
Method, defs: Private generic functions
Method, ecu: Private generic functions
Method, hourly: Private generic functions
Method, initialize-instance: Public standalone methods
Method, instance-family: Private generic functions
Method, instance-family-groups: Private generic functions
Method, instance-purpose: Private generic functions
Method, instance-type: Private generic functions
Method, instance-type: Private generic functions
Method, memory: Private generic functions
Method, network-performance: Private generic functions
Method, operating-system: Private generic functions
Method, physical-processor: Private generic functions
Method, prices: Private generic functions
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, publication-date: Private generic functions
Method, region-code: Private generic functions
Method, storage: Private generic functions
Method, v-cpu: Private generic functions
Method, version: Private generic functions

N
network-performance: Private generic functions
network-performance: Private generic functions
not-found: Private ordinary functions

O
operating-system: Private generic functions
operating-system: Private generic functions

P
parse-float-with-junk: Private ordinary functions
parse-integer-with-junk: Private ordinary functions
parse-memory: Private ordinary functions
parse-memory-with-junk: Private ordinary functions
physical-processor: Private generic functions
physical-processor: Private generic functions
prices: Private generic functions
prices: Private generic functions
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
process-row: Private ordinary functions
publication-date: Private generic functions
publication-date: Private generic functions

R
read-pricing-file: Private ordinary functions
region-code: Private generic functions
region-code: Private generic functions
render-find-form: Private ordinary functions
render-instance-type-form: Private ordinary functions
render-memory: Private ordinary functions

S
show-instance: Private ordinary functions
start-server: Public ordinary functions
stop-server: Public ordinary functions
storage: Private generic functions
storage: Private generic functions
string-or-nil: Private ordinary functions

V
v-cpu: Private generic functions
v-cpu: Private generic functions
version: Private generic functions
version: Private generic functions

Jump to:   A   B   D   E   F   G   H   I   L   M   N   O   P   R   S   V  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *   +  
C   D   E   H   I   M   N   O   P   R   S   V  
Index Entry  Section

*
*acceptor*: Private special variables
*aws-instance-purposes*: Private special variables
*aws-operating-systems*: Private special variables
*aws-region-groups*: Private special variables
*aws-regions*: Private special variables
*cache-buster*: Private special variables
*css-beautifier*: Private special variables
*default-region-codes*: Private special variables
*document*: Private special variables

+
+ec2-price-limit+: Private constants

C
Constant, +ec2-price-limit+: Private constants

D
defs: Private classes

E
ecu: Private classes

H
hourly: Private classes

I
instance-family: Private classes
instance-family-groups: Private classes
instance-type: Private classes
instance-type: Private classes

M
memory: Private classes

N
network-performance: Private classes

O
operating-system: Private classes

P
physical-processor: Private classes
prices: Private classes
publication-date: Private classes
purpose: Private classes

R
region-code: Private classes

S
Slot, defs: Private classes
Slot, ecu: Private classes
Slot, hourly: Private classes
Slot, instance-family: Private classes
Slot, instance-family-groups: Private classes
Slot, instance-type: Private classes
Slot, instance-type: Private classes
Slot, memory: Private classes
Slot, network-performance: Private classes
Slot, operating-system: Private classes
Slot, physical-processor: Private classes
Slot, prices: Private classes
Slot, publication-date: Private classes
Slot, purpose: Private classes
Slot, region-code: Private classes
Slot, storage: Private classes
Slot, v-cpu: Private classes
Slot, version: Private classes
Special Variable, *acceptor*: Private special variables
Special Variable, *aws-instance-purposes*: Private special variables
Special Variable, *aws-operating-systems*: Private special variables
Special Variable, *aws-region-groups*: Private special variables
Special Variable, *aws-regions*: Private special variables
Special Variable, *cache-buster*: Private special variables
Special Variable, *css-beautifier*: Private special variables
Special Variable, *default-region-codes*: Private special variables
Special Variable, *document*: Private special variables
storage: Private classes

V
v-cpu: Private classes
version: Private classes

Jump to:   *   +  
C   D   E   H   I   M   N   O   P   R   S   V