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 caseDon’tDo
User authentication and managementBuilding own solution using libraryJust use Amazon Cognito
Orchestration of containersUsing Docker swarm or Kubeadm etcJust use ECS or EKS. For most general startups they are good.
Self-hosting MySQL or MongoDBLaunching mysql or MongoDB on EC2 or on-premiseJust use AWS Amazon DocumentDB or RDS.
CICDLaunching Jenkins on EC2Just use AWS CICD tools like Codebuild, codepipeline etc. It has native support for Jenkins as well.