Build a Serverless Email Marketing Application in 30 Minutes! | AWS Project Step-by-Step Tutorial

2024 ж. 24 Мам.
7 668 Рет қаралды

The best way to learn AWS is to actually BUILD something with it! Build something that uses several AWS services, and get all the pieces to work together. In this hands-on tutorial, I’ll walk you through how to design and build a simple serverless email marketing application from scratch. When we're done, our system will send emails on a schedule, grabbing HTML email templates and a list of contacts from an S3 bucket.
We’ll be working with five different services: Simple Email Service (SES), EventBridge, S3, Lambda, and Identity & Access Management (IAM). As we go, we’ll talk about high-level requirements for each, and then walk through how to set them up.
🌟***What you need to follow along***🌟
• Email addresses (to send to) that you can validate (can be personal email addresses)
• An email address (to send from) that you can validate (needs to be from your own domain)
• Basic knowledge of AWS
• A text editor/somewhere to write HTML code (or use mine)
🌟***CODE referenced in the video***🌟
• email_template.html: drive.google.com/file/d/1XOF6...
• contacts.csv: drive.google.com/file/d/1w9MB...
• Lambda Python code, test code, policy for execution role: docs.google.com/document/d/13...
🤓 For diagramming and checklists in this video, I used Eraser.io. Check them out! www.eraser.io
🤓 For another fun project that uses DynamoDB, API Gateway and Lambda, check out this other video: • AWS Project: Architect...
🌟***MY AWS COURSES***🌟
If you’re interested in getting AWS certifications, check out these full courses. They include lots of hands-on demos, quizzes and full practice exams. Use FRIENDS10 for a 10% discount!
• AWS Certified Cloud Practitioner: academy.zerotomastery.io/a/af...
• AWS Certified Solutions Architect Associate: academy.zerotomastery.io/a/af...
🌟***TIMESTAMPS***🌟
00:00 - Introducing the AWS project: an email marketing campaign system
00:33 - Services we’ll use: SES, Lambda, S3, EventBridge, IAM
01:05 - How much will this cost?
01:43 - Using Eraser.io to create checklists
03:15 - High-level requirements for the application
04:20 - Creating an S3 bucket to store email templates and contacts
05:10 - The HTML email template we’ll be using to send
05:57 - The CSV file with contact information to email to
06:34 - Uploading the email template and contact list to the S3 bucket
07:22 - Diagramming as code with Eraser.io
07:59 - Setting up Amazon Simple Email Service (SES) with an email address and domain
09:34 - The SES sandbox, limitations, and how to move it to production
10:32 - Sending a test email using Amazon SES
11:17 - Validating email addresses to send to (a requirement for the sandbox)
12:57 - Using Lambda to create and send personalized emails to SES
13:35 - Adding connections between nodes in Eraser.io
14:32 - Creating a new Python Lambda function for email logic
17:54 - Configuring and running a test event for the Lambda function
19:10 - GetObject operation: Access Denied error when trying to retrieve from the S3 bucket from Lambda
19:49 - Updating the Lambda execution role with appropriate permissions
20:35 - Creating a new policy with permissions for S3 and SES
22:08 - Attaching the policy to the Lambda execution role
23:28 - Testing the Lambda function again with updated permissions
24:10 - How to trigger the Lambda function to send emails on a schedule
25:15 - Creating a new schedule using EventBridge
27:29 - Testing the EventBridge schedule for sending emails
29:46 - CHALLENGE: Ideas to enhance the application!
30:40 - IMPORTANT! Deleting your resources

Пікірлер
  • Another AWS project for you with a couple services we haven't used before (EventBridge and SES)! Hope you like it! 🤓😊

    @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
    • My question is how are you supposed to make a portfolio of these projects if you have to keep deleting these projects and can't show these to companies if you keep being charged?

      @mortal1501@mortal15012 ай бұрын
    • Hi @mortal1501! 👋 If you're still in the Free Tier and want to leave it running, the cost should be minimal. But you WILL be charged at some point, so that's why I always like to walk through how to delete things. It all comes down to whether you want to spend some money to keep things running. 😊 One other potential option would be to create a short video of what you built, then upload that video somewhere (like KZhead, Vimeo) and share that instead of the live project. Not the best option, but it would save money. Hope that helps!

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
  • I love this channel. It's easy to follow along. One request: Could you please come up with at least 1 project video per week trying to cover all the important AWS services?

    @santoshkkumar1763@santoshkkumar17632 ай бұрын
    • I would LOVE to do a project video each week!! Not sure there are enough hours in the day, but I'll do as many as I can. 😊 Thanks for supporting the channel!! 🙏

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
  • I've been following along with your playlists. All of them are great and easy to follow. I can say that your channel is the one getting me to know AWS and would like to learn more. Thank you so much. 😃😃😃

    @aditheppruekpitakpong3847@aditheppruekpitakpong38472 ай бұрын
    • Oh my gosh, this is the nicest comment EVER!!! Thanks so much! 🥰🙏🌟 I'm so glad the videos are helping.

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
  • Love your tutorials & the way you explain things😊

    @khalidelgazzar@khalidelgazzarАй бұрын
    • Glad you like them! Thanks so much for watching! 🙏🤓🌟

      @TinyTechnicalTutorials@TinyTechnicalTutorialsАй бұрын
  • Love the moments where you barely stopped you're from laughing out of excitement. Positive vibes.

    @123arskas@123arskas2 ай бұрын
    • Ha! This actually made me laugh out loud. Thanks for that!! 😂

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
  • Thank you for yet another amazing tutorial. Loving your videos lately. Enrolled into your ZTM course on Solution Architect Associate Certification. 🙂

    @rupamgogoi3471@rupamgogoi34712 ай бұрын
    • Great to hear, Rupam!! Thanks for all the support!!! 🤓🌟🙏

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
  • Super helpful! Thank you so much

    @whoisholloway@whoisholloway2 ай бұрын
    • So glad! Thanks for watching!! 🙏🤓🌟

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
  • Very good tutorial. Got struck near allocating domain name but skipped the SES and managed to do with smtplib in lambda function and finally done.

    @javeedma2764@javeedma27642 ай бұрын
    • Nice work! 💪 Glad you were able to work around the SES part. Thanks so much for watching!! 🙏🤓🌟

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
  • Thank you Amber!!❤

    @eiwlhunter@eiwlhunter2 ай бұрын
    • Thank YOU for watching!!! 🥰

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
  • Thank you for these amazing tutorials. You are yhe only person I have seen addressing the IAM and cost optimization while creation your projects and those are the areas I worry about the most. I will definitely be trying the enhanced features. Could you do a video covering an Amplify web app that uses Cognito hosted UI to sign up and create a user pool that we can use to make this email list.

    @neilbrown8612@neilbrown86122 ай бұрын
    • Thanks for the kind words, Neil! 🙏 I'm really glad you're enjoying the videos (and yes, costs are always top-of-mind for me as well!!). You might have already found this video, but it's another project video to build a web app using Amplify and Cognito for a user pool: kzhead.info/sun/rdmEpZSOfZutlKs/bejne.html. But I like the idea of doing a video where Cognito could be used as an email list or as a backend for people to subscribe to a newsletter, something like that. I'll add this to my list for future videos. Thanks for the suggestion! 🔥🤓

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
  • Awesome gonna add this to my resume . Would also love to see them using Terraform :)

    @sujanshah7442@sujanshah7442Ай бұрын
    • Awesome work! 💪 And I'll add Terraform to my list for future videos. Thanks for watching! 🙏🤓🌟

      @TinyTechnicalTutorials@TinyTechnicalTutorialsАй бұрын
  • Wow this is dope!

    @Selome7@Selome72 ай бұрын
    • LOL! I'm so glad!! 😂 Thanks for watching!

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
  • easy to follow

    @gregorydelacruz7315@gregorydelacruz73152 ай бұрын
    • Yay! I'm so glad. Thanks for watching! 🙏🌟🤓

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
  • Thank you so much for this video! I was wondering can I just attach the policies created by AWS directly instead of creating new ones? Like FullAccess to S3? What would be the benefit for creating a customised one?

    @Pavng@Pavng2 ай бұрын
    • Thanks for watching, Pavel! 🙏🤓🌟 Yes, you can use one of the existing/templated policies. The benefit of creating a custom one is that you can more easily apply the principle of least privilege (i.e., only give the minimum permissions required). In this example, since we only need the GetObject permission for S3, we can just specify that rather than granting full access. But yes, multiple ways to do things in AWS! 😊

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
    • @@TinyTechnicalTutorials you are the best!

      @Pavng@Pavng2 ай бұрын
  • Hey this is a great video! However, I'm still showing access denied at the 23:50 mark of your video. I have followed every step very closely, any advice?

    @xavieralmonte5404@xavieralmonte54044 күн бұрын
  • Great video, very informative. Quick question, what tool do you use to create your visual diagrams ?

    @mugendinjue3744@mugendinjue37442 ай бұрын
    • Thanks so much, Mugendi! 🙏🌟🤓 Glad it was helpful. On this video, I was using Eraser.io: www.eraser.io. It lets you do "diagrams as code," which is pretty cool! Way faster than manually finding all the icons, etc.

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
    • @@TinyTechnicalTutorials Thanks

      @mugendinjue3744@mugendinjue37442 ай бұрын
  • Exellent.....

    @JavierHernandez-xo5nb@JavierHernandez-xo5nb2 ай бұрын
    • You're very kind...thanks so much! 🙏🤓🌟

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
  • Thank you for all your effort with teaching us the AWS Services with projects. But can I request you to do AWS Cloud Resume Challenge please (if not already done). Thank you once again.

    @rodscletus@rodscletus2 ай бұрын
    • Thanks for the kind words, Cletus! 🥰 This video isn't exactly the same as the Cloud Resume Challenge, but the first part is similar (static website hosting, Route 53, etc.): kzhead.info/sun/gc18irecjqeZjX0/bejne.html I'd like to do the full challenge at some point. Hopefully this one will help in the meantime! 🤓🌟

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
  • I want to use the p3.8xlarge instance for its 64 GB GPU memory. However, it has 4 GPUs, each with 16 GB of memory, totaling 64 GB. So, my question is: Can I use the entire 64 GB to train my LLM model, or is only 16 GB available for training?

    @abhinav__pm@abhinav__pm2 ай бұрын
    • Hey Abhinav! 👋 I'm not totally sure on that...I think it depends on your architecture and GPU. Check out Page 16 here: pages.awscloud.com/rs/112-TZM-766/images/AL-ML%20for%20Startups%20-%20Select%20the%20Right%20ML%20Instance.pdf. And that whole presentation is probably good to review. I don't want to give you a bad answer! 🤓

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
    • @@TinyTechnicalTutorials ok thank you 😊

      @abhinav__pm@abhinav__pm2 ай бұрын
  • I want to add some AWS projects link in my resume but unfortunately if I will not delete some aws services then it will leads to increase cost, so what should I do to add aws project on my resume

    @darjidhruv2665@darjidhruv26652 ай бұрын
    • Hi dhruv! 👋 Yeah, I know costs are always a concern. You might consider creating a short video of what you built instead. You could even talk about things you learned or any cool features you implemented. Then upload it to KZhead or Vimeo and share the video instead of the live project. It's not quite the same, but it would be free. 😊

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
    • @@TinyTechnicalTutorials that's really good opinion

      @darjidhruv2665@darjidhruv26652 ай бұрын
    • Hi. Should this video include all the steps of our project or just the final product that we created? Thank you so much for sharing this project.

      @muratucak6689@muratucak66892 ай бұрын
    • It's kind of up to you. I'd at least talk about/briefly show the major components of the app (maybe in a diagram?). You want to highlight that you can integrate multiple services, which is a little hard to do if you just see the final product. So maybe overview the architecture and then show the final working app that sends email? Something like that! 😊

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
    • Can you use screenshots to document in e.g. GitHub of steps instead of a video? I also want to not have to get charged after the free tier

      @dedejoey3414@dedejoey34142 ай бұрын
  • Thanks for your valuable information. I need a information about how to clear the solution architecture associate exam video mam. I just need a roadmap to clear that exam

    @madhantruth7932@madhantruth79322 ай бұрын
    • Hi Madhan! 👋 You probably already found it, but check out the official exam prep page: aws.amazon.com/certification/certified-solutions-architect-associate/. There's some good info there about how to prepare. I've also got a course on Zero to Mastery (you can use code FRIENDS10 for 10% off): academy.zerotomastery.io/a/aff_464yrtnn/external?affcode=441520_lm7gzk-d Hope that helps! Good luck! 💪🤓

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
  • Please make a video on ML model deployed from SageMaker and called on Lamda code

    @123arskas@123arskas2 ай бұрын
    • Oooh, interesting! I'll add it to my list. Thanks for the suggestion! 💪🔥

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
  • It is showing email sent.but when checked in inbox, thers isn't any mail received

    @bramaramutte@bramaramutteАй бұрын
    • Hi bramara! 👋 Sorry for the slow response! Were you able to figure this out? Maybe it went to a spam folder?

      @TinyTechnicalTutorials@TinyTechnicalTutorials21 күн бұрын
  • Can you make a step by step guide to write cloudformation template from beginner to advanced.?

    @Selome7@Selome72 ай бұрын
    • Ooh, this is a great idea! I'll add it to my list. Thanks for the suggestion! 🙏🌟🤓

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
  • i dont have my own domain what to do?

    @user-lh1fi6vt3t@user-lh1fi6vt3tАй бұрын
    • Hi sivatharun! 👋 If you don't have your own domain, you won't be able to actually send emails. You can purchase a domain using Route 53 if you'd like (they're usually about $10/year). The only other option is to just watch that part of the video without following along. 😊

      @TinyTechnicalTutorials@TinyTechnicalTutorialsАй бұрын
  • 🙏👍

    @rishiraj2548@rishiraj25482 ай бұрын
    • Thanks for watching! 🙏🌟🤓

      @TinyTechnicalTutorials@TinyTechnicalTutorials2 ай бұрын
  • Watched the video until the word "Python". Bye...

    @youtubevideos415@youtubevideos41519 күн бұрын
    • 🥹

      @TinyTechnicalTutorials@TinyTechnicalTutorials7 күн бұрын
KZhead