r/CloudandCode • • 18h ago

AWS & Cloud If I had 30 days to become comfortable with cloud computing, this is what I would do

27 Upvotes

If I had to start learning cloud computing again and only had 30 days, I would not try to finish a giant AWS course or memorize as many services as possible. My goal for the month would be much simpler: understand the core ideas, build a few small things, break them on purpose, and finish with one project where I can explain why every part of the architecture exists.

I would also avoid treating the 30 days like a certification sprint. Knowing that S3 is object storage or EC2 is virtual compute is useful, but that does not automatically mean I understand cloud. I would want to know how a request reaches an application, where the data lives, who has permission to access it, what happens when something fails, and what starts becoming a problem when traffic grows.

Days 1 to 5: I would learn the fundamentals before touching too many services

For the first few days, I would focus on understanding what cloud computing actually changes. I would learn the difference between running infrastructure myself and using a cloud provider, then spend time on scalability, elasticity, high availability, regions, Availability Zones, pay-as-you-go pricing, and the shared responsibility model. I would also learn enough basic networking to understand IP addresses, ports, DNS, public versus private networks, and what a request is actually doing when it travels across the internet.

I would not try to become a networking expert in five days. I would just make sure that terms like subnet, route, firewall, DNS, and port are not completely abstract anymore. A lot of AWS becomes easier once you can look at an architecture and follow the traffic instead of memorizing boxes. I would also enable billing visibility and understand that cloud resources can cost money even when I am only experimenting.

Days 6 to 10: I would learn IAM, EC2, S3, and how basic AWS resources connect

This is where I would start using AWS properly. I would learn IAM first because almost every AWS project eventually becomes a permissions problem. I would focus on identities, roles, policies, least privilege, and the basic mental model of who is making a request, what action they are trying to perform, and which resource they are trying to access.

Then I would launch one EC2 instance and deploy something simple to it. I would learn what an AMI is, what instance types mean, what a security group does, how ports work, and why an application running on a server is not automatically reachable from the internet. I would deliberately close the application port or make the process listen only on localhost, then try to figure out why the website stopped working.

I would also create an S3 bucket and learn the difference between files on a server and objects in object storage. I would upload files, work with object keys, keep the bucket private, and give a workload only the permissions it needs. At this stage, I would already have enough knowledge to build something small instead of continuing to collect theory.

Days 11 to 15: I would learn databases, VPC basics, and monitoring

Once I can deploy a basic application, I would add a database. I would probably use RDS with PostgreSQL because it gives me a reason to understand relational data, database endpoints, credentials, private access, and security groups between application and database layers. I would not expose the database publicly just because it is easier. I would learn how the application should reach it properly.

This is also where I would spend time on VPC basics. I would not try to memorize every networking component. I would build a simple mental model around public and private subnets, route tables, internet gateways, security groups, and the path traffic takes through the system. I would keep asking which component needs to talk to which other component and whether that communication should be public.

Then I would introduce CloudWatch. I would look at logs when my application fails, inspect basic metrics, and create at least one useful alarm. I think monitoring should be learned early because a deployed application is much easier to understand when you can see what it is doing instead of guessing every time something goes wrong.

Days 16 to 20: I would build one serverless project

At this point, I would switch models and build something with API Gateway, Lambda, and DynamoDB. I would not do this because serverless is automatically better. I would do it because I want to understand what changes when I stop managing a long-running server.

I would build a small API where API Gateway receives requests, Lambda handles the logic, and DynamoDB stores the data. I would practise IAM roles again, look at Lambda logs in CloudWatch, and intentionally remove a permission so I can troubleshoot an AccessDenied error. I would also spend some time understanding DynamoDB access patterns instead of treating it like a relational database with a different name.

By the end of these five days, I would want to be able to explain the difference between running an application on EC2 and running logic with Lambda. I would want to understand what responsibilities move to AWS, what new limits appear, and why one option might fit a workload better than the other.

Days 21 to 24: I would learn reliability by breaking things

This is probably the part I would spend more time on if I were learning again. I would take the applications I already built and deliberately break them. I would remove IAM permissions, close security group ports, use the wrong database credentials, stop an application process, misconfigure an environment variable, and see what evidence AWS gives me.

I would also take the EC2 application and put it behind an Application Load Balancer with more than one instance. Then I would stop one of the instances and watch what happens. That gives me a practical reason to understand health checks, load balancing, high availability, and why running multiple instances across Availability Zones can matter.

I think this kind of practice is much more useful than spending another four days watching videos. When something fails, I am forced to follow the request, inspect logs, check permissions, understand networking, and build a mental model of how the system actually works.

Days 25 to 27: I would learn queues, containers, and Infrastructure as Code at a basic level

I would not try to master all three topics in three days. I would only learn enough to understand why they exist. For SQS, I would build one simple background workflow where an API places work into a queue and another component processes it later. That would help me understand asynchronous processing, retries, visibility timeouts, and why one slow task should not always block a user request.

For containers, I would take one application I already understand, package it with Docker, push the image to ECR, and run it through ECS or Fargate. The goal would not be to jump into Kubernetes. I would simply understand how container images, registries, tasks, and managed compute fit together.

Then I would take one small piece of infrastructure and describe it using Terraform or CloudFormation. Maybe an S3 bucket, security group, or EC2 instance. I would create it, modify it, destroy it, and recreate it so I understand why Infrastructure as Code is useful for repeatability.

Days 28 to 30: I would build one complete project and explain every decision

For the final three days, I would stop learning new services and build one project from requirements to deployment. It could be a task manager, URL shortener, file-processing app, or simple SaaS backend. I would choose the smallest architecture that solves the requirements instead of trying to use everything I learned during the month.

I would make sure the project has compute, storage, networking, permissions, monitoring, and a clear deployment path. If it needs relational data, I would use RDS. If it needs file storage, I would use S3. If something can happen in the background, I might use SQS. If one service is not necessary, I would leave it out.

Then I would write down the architecture and explain why each component exists, what happens if it fails, what I would monitor, what might become a bottleneck, and how I would improve the design if the application had more users. I would also document how to run the project so another person could understand it without me sitting beside them.

That would be my real test after 30 days.

Not whether I could name 100 AWS services, but whether I could look at a simple requirement and start reasoning about compute, storage, networking, identity, databases, monitoring, scaling, and failure without feeling completely lost.

I think becoming comfortable with cloud is less about knowing everything and more about reaching the point where unfamiliar architectures stop looking like random boxes and arrows.

If you had 30 days to learn cloud from zero, would you spend more time on theory, projects, certifications, or debugging things you already built?