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

Sdílet
Vložit
  • čas přidán 12. 06. 2024
  • 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
  • Věda a technologie

Komentáře • 64

  • @TinyTechnicalTutorials
    @TinyTechnicalTutorials  Před 3 měsíci +11

    Another AWS project for you with a couple services we haven't used before (EventBridge and SES)! Hope you like it! 🤓😊

    • @mortal1501
      @mortal1501 Před 3 měsíci +2

      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?

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  Před 3 měsíci +2

      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 CZcams, Vimeo) and share that instead of the live project. Not the best option, but it would save money. Hope that helps!

  • @santoshkkumar1763
    @santoshkkumar1763 Před 3 měsíci +6

    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?

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  Před 3 měsíci +5

      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!! 🙏

  • @hemanth8169
    @hemanth8169 Před 14 dny +1

    Great project! Looking forward to seeing more of your excellent work and helping you navigate the path to becoming a cloud engineer.

  • @khalidelgazzar
    @khalidelgazzar Před 2 měsíci +2

    Love your tutorials & the way you explain things😊

  • @123arskas
    @123arskas Před 3 měsíci

    Love the moments where you barely stopped you're from laughing out of excitement. Positive vibes.

  • @aditheppruekpitakpong3847
    @aditheppruekpitakpong3847 Před 3 měsíci +1

    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. 😃😃😃

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  Před 3 měsíci +1

      Oh my gosh, this is the nicest comment EVER!!! Thanks so much! 🥰🙏🌟 I'm so glad the videos are helping.

  • @rupamgogoi3471
    @rupamgogoi3471 Před 3 měsíci +1

    Thank you for yet another amazing tutorial. Loving your videos lately. Enrolled into your ZTM course on Solution Architect Associate Certification. 🙂

  • @whoisholloway
    @whoisholloway Před 3 měsíci

    Super helpful! Thank you so much

  • @eiwlhunter
    @eiwlhunter Před 3 měsíci +1

    Thank you Amber!!❤

  • @javeedma2764
    @javeedma2764 Před 2 měsíci

    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.

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  Před 2 měsíci +1

      Nice work! 💪 Glad you were able to work around the SES part. Thanks so much for watching!! 🙏🤓🌟

  • @neilbrown8612
    @neilbrown8612 Před 3 měsíci

    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.

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  Před 3 měsíci +1

      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: czcams.com/video/zuKu0VFiwas/video.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! 🔥🤓

  • @Selome7
    @Selome7 Před 3 měsíci

    Wow this is dope!

  • @gregorydelacruz7315
    @gregorydelacruz7315 Před 3 měsíci

    easy to follow

  • @sujanshah7442
    @sujanshah7442 Před 2 měsíci

    Awesome gonna add this to my resume . Would also love to see them using Terraform :)

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  Před 2 měsíci +1

      Awesome work! 💪 And I'll add Terraform to my list for future videos. Thanks for watching! 🙏🤓🌟

  • @JavierHernandez-xo5nb
    @JavierHernandez-xo5nb Před 3 měsíci

    Exellent.....

  • @mugendinjue3744
    @mugendinjue3744 Před 3 měsíci

    Great video, very informative.
    Quick question, what tool do you use to create your visual diagrams ?

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  Před 3 měsíci

      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.

    • @mugendinjue3744
      @mugendinjue3744 Před 3 měsíci +1

      @@TinyTechnicalTutorials Thanks

  • @xavieralmonte5404
    @xavieralmonte5404 Před 23 dny

    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?

  • @Pavng
    @Pavng Před 3 měsíci +1

    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?

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  Před 3 měsíci +2

      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! 😊

    • @Pavng
      @Pavng Před 3 měsíci

      @@TinyTechnicalTutorials you are the best!

  • @rodscletus
    @rodscletus Před 3 měsíci

    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.

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  Před 3 měsíci

      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.): czcams.com/video/NiCZSdWucZE/video.html I'd like to do the full challenge at some point. Hopefully this one will help in the meantime! 🤓🌟

  • @madhantruth7932
    @madhantruth7932 Před 3 měsíci +1

    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

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  Před 3 měsíci +1

      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! 💪🤓

  • @Selome7
    @Selome7 Před 3 měsíci +1

    Can you make a step by step guide to write cloudformation template from beginner to advanced.?

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  Před 3 měsíci

      Ooh, this is a great idea! I'll add it to my list. Thanks for the suggestion! 🙏🌟🤓

  • @123arskas
    @123arskas Před 3 měsíci +1

    Please make a video on ML model deployed from SageMaker and called on Lamda code

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  Před 3 měsíci +1

      Oooh, interesting! I'll add it to my list. Thanks for the suggestion! 💪🔥

  • @abhinav__pm
    @abhinav__pm Před 3 měsíci +1

    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?

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  Před 3 měsíci

      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! 🤓

    • @abhinav__pm
      @abhinav__pm Před 3 měsíci

      @@TinyTechnicalTutorials ok thank you 😊

  • @bramaramutte
    @bramaramutte Před měsícem +1

    It is showing email sent.but when checked in inbox, thers isn't any mail received

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  Před měsícem

      Hi bramara! 👋 Sorry for the slow response! Were you able to figure this out? Maybe it went to a spam folder?

  • @darjidhruv2665
    @darjidhruv2665 Před 3 měsíci +1

    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

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  Před 3 měsíci +1

      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 CZcams or Vimeo and share the video instead of the live project. It's not quite the same, but it would be free. 😊

    • @darjidhruv2665
      @darjidhruv2665 Před 3 měsíci +1

      @@TinyTechnicalTutorials that's really good opinion

    • @muratucak6689
      @muratucak6689 Před 3 měsíci +1

      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.

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  Před 3 měsíci

      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! 😊

    • @dedejoey3414
      @dedejoey3414 Před 3 měsíci +1

      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

  • @user-lh1fi6vt3t
    @user-lh1fi6vt3t Před 2 měsíci +1

    i dont have my own domain what to do?

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  Před 2 měsíci

      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. 😊

  • @rishiraj2548
    @rishiraj2548 Před 3 měsíci

    🙏👍

  • @youtubevideos415
    @youtubevideos415 Před měsícem

    Watched the video until the word "Python". Bye...