Wednesday, 5 July 2017

How do I get started with AWS with no experience with cloud computing?

  1. Learn some basic shell commands in Linux like sshscpcdmvmkdirrmtouch and so on on. Make sure you know atleast vim or such a similar editor.
  2. Start using the AWS Free Tier
  3. The first thing you should understand is AWS is huge. It's HUGE! EC2, S3, Route 53, CloudFront, Lambda, SNS, SQS, EFS, ELB, EBS, Elasticache and loads more.
  4. Start with an EC2 instance. Use an AMI you prefer. Learn how to install various packages. Once you figure that out, write a script to automate it.
  5. Build a simple web app with both static and dynamic content. You can use any server side language you prefer - PHP, Nodejs, GO, Java and so on. Just install the required stuff. You don't have to register a domain. Just use the AWS long public name. It should be working now.
  6. Move the static content over to S3. But keep the dynamic content in EC2. You can also add CloudFront as a CDN.
  7. Switch to RDS for database (instead of running SQL on EC2)
  8. The architecture should be running fine for moderate traffic. Let's learn to scale it up.
  9. Add another EC2 instance. Use your script to automate all the installation and code deployment. Now you have 2 EC2 instances running. Add ELB(load balancer), so that ELB will choose either of the EC2 instances based on the load. Use an Elastic IP.
  10. Switch over to Elastic Beanstalk to automate all the load balancing and scaling up based on the traffic.
  11. Switch to a NoSQL solution (like DynamoDB), if that's better for your use case.
  12. Start using SNS and/or SQS, for notifications and job queuing (like a worker pool).
  13. Add a Memcached or Redis layer (ElastiCache) before your database layer.
  14. Switch some of your event-driven functionalities to Lambda. They are basically serverless. You do not have to bother about setting up the server. Just deploy the code. And better yet, 1000 requests to your lambda, will spawn 1000 lambdas.
  15. Use CloudWatch for logging.
  16. Register a custom domain using Route 53.

Tada! You have covered most of the AWS you shall ever need to know. And you have a well functioning web app that will scale up!

There are still plenty of products that AWS provides. But once you reach this stage, learning them all won't be much of a challenge.

No comments:

Post a Comment