Transcript from the "Wrapping Up" Lesson
>> Do you have any resources you'd recommend for learning this stuff on your own like if you want to go past this?
>> A lot of stack overflow, [LAUGH] I think part of its like figure out the thing that you wanna do, right, especially for the lambda edge stuff like I think the possibilities are super cool and I think about the last time we did this course in 2018.
[00:00:22] You were limited to like a much smaller time window and it was like you had a much fewer set of requests there's like increasingly more that you can do at the edge. I watched all the reinvent Keynotes around lambda gin Cloud Front. And it's mostly just giant improvements to performance, rather than anything around functionality.
[00:00:46] But I think a lot of the kinda core pieces in there are getting kinda better and faster as we go along. But a lot of it is like figuring out those little edge cases like once you have the problem to solve becomes a lot easier. Mark.
>> Is it better to use groups and then give access from there?
>> Yeah, in a lot of cases you have like, so this is an interesting question. So the question is basically around I am and permissions. I feel like as soon as you get to like a decent sized company, instead of putting the policies directly on a user, I have a group, I add that new user to the group, they have the policies applied to that group, right?
[00:01:35] At a certain size that totally makes sense. Would you do that on a personal project? Have I seen startups that like I don't know like have just one account that everyone logs into you see that too, right? It comes down to like I think as soon as you start taking any amount of money like yes, and you start dealing with something like that because it's about trust and stuff like that.
[00:01:56] But I think having groups adding users, that's where the tagging becomes super important like we effectively, when I worked at some of the larger companies that I've worked at, I had entire teams whose job was to manage all of that, right? We were making a user to get us started.
[00:02:13] I kind of joked that at the previous company I didn't have access to any of those alerts or billing or group creation, I filed a ticket. And if I went over my budget, April came and yelled at me, right? And there was a report put out, and that's when I learned that as my $1,000 budget, I had been spending 13 a month, right?
[00:02:33] So a lot of those things, it's a careful balance between as soon as you're doing this all yourself, you probably can kinda do the lightweight version. And then eventually getting it right is a course and a skill set on itself, and I should answer your question like there are like full AWS like certifications, right?
[00:02:52] There are none really focused on front end engineers, which was kinda the inspiration of this course, right? It's like, cool. There's solution architect, right, which is super cool and I know a bunch of friends have taken and passed that test for both associate and professional where you learn all the things, right?
[00:03:07] Shockingly even like kind of preparing for the update of this course googling that term will only get you the notes from the previous version of this course. So unfortunately, questions [LAUGH] somewhat hard to answer in this very like specific use case, but in terms of like there are full certifications and everything for AWS itself for these kinds of things, right?
[00:03:26] It's somewhat scant, and it doesn't bring me a lot of joy to say that but that is even my own realization, preparing for the update here as well.
>> Are there any other AWS products that we should have on our radar as front end engine?
>> Yeah, totally, totally, totally.
[00:03:40] All right, so let's do a few of these. So the question was other AWS stuff like future kind of directions that you could look into and explore. So the ones that we were kinda talking about before is. Amazon has a few different products with the name amplify, which is effectively will spin up some of these things.
[00:04:04] So let's talk about some of the services that it sits over. So one of the ones that you might find super useful is Cognito and if you use something like Auth zero, or Firebase Auth, or something along those lines, it'll handle like user management for you. So like permissions authorization, stuff along those lines and it's not just like log in with your Amazon account or anything like that.
[00:04:29] You can do log in with Facebook, so on and so forth. But the other really interesting part about that is you can use Cognito with S3 to do some really interesting things. So you can say like, hey user, you uploaded a photo so I wanna actually give that photo only permission for you to actually view, right?
[00:04:49] And so some of that kinda permission stuff when we were setting up the policies, for given are the roles as well for a given intro AWS service, you can actually give them a signed URL, which says like, here's a URL is good for like 24 hours, right? And stuff along those lines, you can actually mix Cognito, with some of the storing true images or videos or access management around your actual media with Cognito in a way that is really cool.
[00:05:20] Another one that is super popular and really useful, we can argue is definitely not a front end thing. But Dynamo is an incredibly scalable database. It's a no SQL database. So it's a little bit different than writing like a SQL query. There's some nuances as key value store, you work with cursors.
[00:05:40] But you can call that from a lambda edge function, right? And so if you wanted to store a small piece of data in a database or something along those lines, Dynamo can scale incredibly well, right? But even it also works for very small UCAs as well, and you can talk to that from some of your lambda@edge as well.
[00:05:59] Another cool one that I think is incredibly neat, we're writing the outline for the next version of this, or the follow up is AppSync. App sync is allows you basically spin up a GraphQL server, right? Well you write basically the schema for your data structure and then you hit a button it's like I'll make you a Dynamo DB right, that can store all that data as well as its permissions and then also like the subscription pays real time updates to WebSockets.
[00:06:32] And put a lot of that kind of in place for you as well. So yeah, basically it handles all of the infrastructure for spinning up an entire GraphQL based data store where you can just say what it should all look like. It creates the databases under the scenes, you can put some additional logic in there as well.
[00:06:53] Incredibly powerful for real time maps and rapid prototyping and stuff along those lines. Another one is Amazon location service, which is good for like if you want to add geolocation into your application. Has to be and somehow ended up in US west, so put myself back in US East one but basically if you need to add like geocoding and stuff like that into your application as well, this is a service that is accessible for you to do that.
[00:07:32] Trying to think of other ones off the top of my head. The other one that comes up a lot is amplify. And amplify is kind of there's a few kinda things that are amplified ask, they have like a set of like UI components like component library for react.
[00:07:52] There's a CLI that will like spin up some of the Cognito S3 app sync stuff for you and like if you've ever used something like Firebase or something like that kinda stuff spins a whole bunch of like services together. Amplify will do that as well. They actually believe, I haven't played around with it too much, but they have a UI builder, I think we might have to Google for it separately.
[00:08:26] There's a components, but I think there's also like a builder as well we can like put together a UI and stuff along those lines. And then they also have things like a code pipeline like kind of like a GitHub actions kinda thing code commit as well. I prefer GitHub for that stuff, but like you could theoretically you might like them better as well.
[00:08:43] So there's a bunch of like other things around just the core, deploying your application, like the actual like kinda things you might build your application on top of. We can argue whether they are kind of backend services or kind of backend services at the disposal of front end engineers.