To celebrate the release of Tomasz Łakomy's new AWS course Build an App with the AWS Cloud Development Kit.
We hosted an AWS Q&A on Twitter. The egghead web developer community on Twitter was able to ask questions, and Tomasz provided some great answers.
Absolutely! DynamoDB is an AWS-exclusive NoSQL database (or key-value store if you'd like to be really accurate) but for instance.
You can use Amazon RDS (Relational Database Service) to use MySQL, PostgreSQL, MariaDB, Oracle (if you need to) and Amazon Aurora
Amazon Aurora is another type of database built for the cloud, unlike DynamoDB it's a MySQL and PostgreSQL-compatible relational database
When it comes to getting actual experience: start experimenting
- Use S3 to backup your photos
- Use Lambda to build an API for your website
- Use DynamoDB as a todo list
- Use SageMaker to appear incredibly smart because machine learning is magic
He also added going through the AWS Certified Cloud Practitioner prep might be a good idea because the purpose of the exam is to get you familiar with AWS Cloud
The Code Pixi and Vaibhav asked: "What are your recommendations for someone who's a total beginner with AWS?"
First, start with AWS Lambda - you don't have to become an expert, but you can start using it in order to (for instance) build your own serverless APIs
It doesn't have to be a really deep dive, IMHO experimenting is an excellent way to learn (and you're not going to get charged anything on a new account thanks to the free tier - a million free requests per month).
IMHO this egghead lesson WTF is AWS Lambda by yours truly is a great place to start:
Secondly, consider checking out some of the AWS Certified Cloud Practitioner courses - it's the easiest AWS certification exam and the goal of it is to show that you "have the knowledge and skills necessary to effectively demonstrate an overall understanding of the AWS Cloud"
This course is also a great introduction into the world of serverless/AWS:
Develop A Serverless Backend Using Node JS on AWS Lambda
Something more official:
Aengus asked "What sort of use cases would best be served by using AWS vs something like Netlify or Heroku? When would it be overkill?"
"As with all great questions in programming, the answer is: "It depends"
Netlify, Heroku, AWS Amplify solve similar problems when it comes to building web apps and they are amazing at that. My personal site uses Netlify, but all of our infrastructure at OLX Tech lives on AWS since we have a lot of traffic.
Of course, to get started with AWS you don't have to be a huge company, thanks to their free tier (my last bill was $5 though). Even if you use Netlify, IMHO there's a great value of getting to know serverless technologies a bit better.
I wanted to say that serverless is the future, but it's not entirely true serverless is here now and it'll stay for a while"
Kranthiasks "Is it possible to build complex applications completely using AWS lambda/serverless?" and "Can you refer to any resources related to architecting fully serverless applications?"
Yup! It definitely requires a shift in perspective when it comes to thinking about your architecture (you don't have a server running your monolith 24/7).
For example, at OLX Tech we're running serverless services which are built on top of multiple lambdas + DynamoDB
For resources read and watch everything that @theburningmonk has even written/recorded. As well as this eggheadio course:
Building Serverless Web Applications With React AWS Amplify
IMHO it is - it's an excellent way of getting and solidifying your knowledge about AWS Cloud. Having a concrete list of services that you need to understand is better than "I'm going to learn all of it!".
I wrote a bit more about my experience in this post: Passing AWS Solutions Architect Associate exam
Absolutely! For instance, I considered S3 to be an actual 'simple' service: "just buckets that store files, how hard can that be". While that's true on a surface level, S3 has much more to offer when it comes to features like versioning, encryption, different storage tiers
Another thing, I had this idea that since DynamoDB is a NoSQL database it's really flexible and you don't need to think about your access patterns before you start using it. As Alex DeBrie (@alexbdebrie) explains in his excellent "DynamoDB Book", this is not true
Tyler asks, "What are some features you wish AWS would add or possibly features that are coming out that you are excited about?"
I'd love to see a CloudWatch console visual overhaul, currently, it's not exactly intuitive and it could definitely use some love. Apart from that (it's a common complaint, I'm not exactly unique in that regard) AWS docs are famously... not approachable for beginners (Which is actually part of the motivation behind my course. I went through all of that so you don't have to!).
I'd also love to see more educational content from AWS featured in the Console - for instance when you go to DynamoDB console for the first time.
And yes, there are various conference talks, webinars, etc but what I feel folks are lacking are guidance when it comes to "I have all those features, which ones are going to solve my problems"
One more thing: Dear AWS, please make the SAVE button in AWS Lambda Console bigger, make it blink, jump, or whatever when I have unsaved changes in the editor. Don't make me debug code that is not even saved :(
These were some really great questions and Tomasz provided some great insight on how to get started learning AWS!
His course Build an App with the AWS Cloud Development Kit is available now!