How to apply cost saving patterns for Atlassian Data Center on AWS deployments

Goal

You want to facilitate the Atlassian Data Center on AWS quick starts for performance and functional testing without breaking the bank.

~75% cost savings over regular usage

Challenges

  1. AWS (and other cloud providers) offer significant cost saving options, but this usually requires some proficiency

  2. Atlassian does not seem to be overly concerned with paying more for AWS usage than necessary

    • likely remedied by large scale user discounts and purchasing options (reserved instances)

    •  also applies to JPT I think

  3. Diverging quick start branches complicate collaboration

    • this will hopefully get resolved down the road

Quick start branches



Cost | Features

Landing page

Repositories

Cost saving options / status

Option / Status

AWS
(official)

Atlassian
(upstream)

Utoolity
(fork)

Notes

Option / Status

AWS
(official)

Atlassian
(upstream)

Utoolity
(fork)

Notes

Resource configuration









Facilitate current instance types

  • those are usually more cost-efficient

Default to inexpensive parameters

  • many tests do not require production oriented environments (e.g. multi-az)

 Facilitate EC2 spot instances ('use spot')

 | 

Resource utilization









Reuse/Disable optional components

  • e.g. NAT gateways and bastion hosts

 Stop cluster during off-hours ('cold standby')

 |  

Terminate cluster during off-hours (fully automated backup/restore)

  • savings potential depends on MTTR goals (non-trivial)

Reserved instances

N/A

N/A

N/A

  • for savvy AWS users only

AWS  regularly releases new features that can further increase the scope and efficiency of these cost saving patterns, e.g. just recently:

Step-by-step guide

TBD

Document step-wise introduction of cost saving patterns – @Steffen Opel [Utoolity] (feel free to contact me for assistance)