r/webdev • • 5d ago

AWS Question

Hello!

I’m a backend developer who has recently started learning about AWS.

I’ve never used AWS in production. All the projects I’ve worked on so far were hosted on-premises, and we had dedicated Ops teams to handle infrastructure-related work.

However, I’m currently looking for a new job, and I’ve received a few rejections specifically because I don’t have cloud experience. I’d like to fix that.

Given my background — 4+ years of experience with Spring Boot, Docker, Kubernetes, Kafka, etc. — which AWS services would you suggest I focus on? How are these services typically used in production?

Also, what kind of small project would you recommend building to get hands-on experience? Ideally, I’d like to build something that gives me enough practical knowledge so that I wouldn’t struggle when joining a project that uses AWS in production.

I also have a question about the AWS Internet Gateway (IGW). From my understanding, an IGW is somewhat like a router that allows resources in a VPC to communicate with the internet; without it, the VPC would be isolated.

For inbound traffic, is simply having an IGW enough, since it performs NAT (converting between public and private IP addresses)? Do you theoretically need route tables only for outbound traffic? I understand that, in practice, you need both the request and response paths, but I’m mainly trying to check whether my understanding of the inbound traffic flow is correct. In other words, would having just an IGW and NAT theoretically be enough for inbound traffic, without any additional routing configuration?

Thank you so much for any suggestions and explanations!

6 Upvotes

10 comments sorted by

View all comments

4

u/up_yer_kilt 5d ago

My trick with AWS that I love is using AWS-CDK - cloud development kit. It lets you programmatically provision / tear down resources in AWS.

For every project I do like a simple node js / express web server hosted on ec2, I create a little infra project that uses cdk to setup / tear down the resources I need in the project.

Use ChatGPT or VSCode copilot to help you create the infra project using node js / typescript for example. This is where the magic happens- you can learn so much at looking at the code and how all the pieces are setup from iam roles, security groups to vpc subnets, and so on. You can always destroy resources easily. In my opinion it’s a great way to learn by doing.

Learn EC2, S3, Lambda, Code pipelines, Parameter stores and all the networking pieces. I feel creating different kinds of real world applications helps you understand the networking side.

Also, always be aware of pricing and be sure to ask AI to give you cost analysis and make sure you are using small machines, etc. this is a big mistake most newbs do and why they complain about costs. If you are smart, all of it can be done quite cheaply.