StateVoicesNational / Spoke

mass-contact text/SMS distribution tool
Other
466 stars 410 forks source link

How much does Spoke cost to host? #1997

Open schuyler1d opened 3 years ago

schuyler1d commented 3 years ago

This is currently somewhat documented here (might be OUTDATED):

This info is subject to change when vendors change their pricing, so dates should be recorded for estimates.

General Performance guidelines for cost estimates (2021-05-11)

Estimates for good 'napkin calculations'

schuyler1d commented 3 years ago

Amazon Lambda Deployment

Pricing sheets (note that these vary by-region):

Choosing between Aurora serverless and 'classic' RDS has some subtle pros/cons depending on your org's (tech staff's) ability to ramp up/down manually depending on each day's planned scale of texting. Amazon advertises Aurora as having the ability to 'auto-scale' however, in-practice with the Spoke application if/when Aurora 'autoscales' during texting ramp up (your thundering herd of texters), Spoke is observed to 'lock up' right at the worst moment. So IF you choose Aurora, it's better to 'peg' it for your anticipated scale of contacts for the day -- before your texters 'arrive'. Most often, campaigns will know what scale of texting will occur for the week or day -- if your internal workflow can accomodate technical staff having the capacity and reliably informed by your campaign staff what scale they will be at, then this can be very cost-effective (pay for much less when not texting, and then only ramp up costs when actively texting at the appropriate scale).

To avoid all of that, it's often possible to find out what the maximum texting campaign will be "this year" -- and then resource an RDS instance for that. This is similar to phone companies and "Mother's day" -- i.e. you plan for maximum usage rather than average usage, to avoid failures.

While Aurora (serverless or not) charges slightly more per CPU-level than RDS, at scales of > 1 million messages-per-day, we recommend Aurora anyway since it has 'limitless' IOPS (IO operations per-second) which can become a bottleneck at higher scales.