Founders first moves to start building on AWS: situation and solution
Move #1 : Deciding Budgets and over-utilisation alarms
Situation:
Budget is always a constraint for startups
With founders wearing multiple hats, it’s easy to lose the track of cost. Common resources are unattached EBS volumes, Elastic IPs, Bastion hosts, Instances for ML model trainings etc.
You wake up with surprise bills
AWS provides billing predictions which helps to plan runway
Solution
AWS Billing provides budget planning and tracking features
You can create billing alarms to track unused resources and outlier costs
Alerts can be created on forecasted costs or actual costs
AWS recommends following two approaches:
Proactive approach: AWS Instance Scheduler This approach involves using tags to resources like EC2/RDS instances and then create schedule to start or stop.
Reactive approach: AWS Budgets - This is the most basic and must do approach which involves creating email alerts when monthly AWS spend exceeds the budget threshold.
Move #2 : Deciding Infrastructure as Code (IAC)
Infrastructure as Code enables programmatic provisioning and management of cloud resources. It help to improve the efficiency, reliability, and scalability of your infrastructure, while also reducing costs and increasing flexibility.
Situation
As startup grows services grow and scale increases. It becomes difficult to track resources and configurations.
With increasing user demands need to deploy additional server in a different availability zones or region increases which is difficult to replicate in absence of IAC.
Once the “Too small to be be notices” phase ends for a company attackers can create security nightmares. Implementing security policies and best practices are consistently applied across the infrastructure is difficult in absence of IAC.
As startup budget is always a constraint. IAC reduces time-consuming and error-prone manual tasks and brings automation and hence cost saving.
Solutions:
AWS CloudFormation: AWS CloudFormation is a good choice for organizations already using AWS, but it only supports AWS. This is a free tool and low learning curve. This is specially useful for startups to experiment faster.
Terraform: Terraform is a good choice for organizations looking to support multiple cloud providers. But that has steeper compared to other Cloudformation and its complexity is higher as well.
Generally speaking for startup cloudformation is easier option to start with because of easiness to adopt, low learning curve and simplicity.
Move #3 :Choosing managed AWS services
AWS managed services can help organizations achieve greater scalability, reliability, security, and cost-effectiveness. Managed services are always updated to the latest cloud technologies and best practices in the industry.
Situation
Self managed services have high cost and require more efforts in maintenance. So, to reduce cost and human efforts you should always use the correct AWS managed services.
As a startup you should ways focus on your niche and innovate around that. Managing cloud is just a side hassle to be always avoided.
As a startup you can never scale to match the level of experts of the domain like AWS and its engineers. So best idea is to just use the innovation at scale.
Managed services have built-in features such as automated backups, disaster recovery, and security controls. You just need to plug and play.
Solution
Just use the right managed services.
Here is a table comparing self-managed solution with an AWS managed service.
Use case | Don’t | Do |
User authentication and management | Building own solution using library | Just use Amazon Cognito |
Orchestration of containers | Using Docker swarm or Kubeadm etc | Just use ECS or EKS. For most general startups they are good. |
Self-hosting MySQL or MongoDB | Launching mysql or MongoDB on EC2 or on-premise | Just use AWS Amazon DocumentDB or RDS. |
CICD | Launching Jenkins on EC2 | Just use AWS CICD tools like Codebuild, codepipeline etc. It has native support for Jenkins as well. |