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

Поділитися
Вставка
  • Опубліковано 11 чер 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
  • Наука та технологія

КОМЕНТАРІ • 64

  • @TinyTechnicalTutorials
    @TinyTechnicalTutorials  3 місяці тому +11

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

    • @mortal1501
      @mortal1501 3 місяці тому +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  3 місяці тому +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 UA-cam, Vimeo) and share that instead of the live project. Not the best option, but it would save money. Hope that helps!

  • @santoshkkumar1763
    @santoshkkumar1763 3 місяці тому +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  3 місяці тому +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 13 днів тому +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 2 місяці тому +2

    Love your tutorials & the way you explain things😊

  • @123arskas
    @123arskas 3 місяці тому

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

  • @aditheppruekpitakpong3847
    @aditheppruekpitakpong3847 3 місяці тому +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  3 місяці тому +1

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

  • @rupamgogoi3471
    @rupamgogoi3471 3 місяці тому +1

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

  • @whoisholloway
    @whoisholloway 3 місяці тому

    Super helpful! Thank you so much

  • @eiwlhunter
    @eiwlhunter 3 місяці тому +1

    Thank you Amber!!❤

  • @javeedma2764
    @javeedma2764 2 місяці тому

    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  2 місяці тому +1

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

  • @neilbrown8612
    @neilbrown8612 3 місяці тому

    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  3 місяці тому +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: ua-cam.com/video/zuKu0VFiwas/v-deo.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 3 місяці тому

    Wow this is dope!

  • @gregorydelacruz7315
    @gregorydelacruz7315 3 місяці тому

    easy to follow

  • @sujanshah7442
    @sujanshah7442 2 місяці тому

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

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  2 місяці тому +1

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

  • @JavierHernandez-xo5nb
    @JavierHernandez-xo5nb 3 місяці тому

    Exellent.....

  • @mugendinjue3744
    @mugendinjue3744 3 місяці тому

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

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  3 місяці тому

      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 3 місяці тому +1

      @@TinyTechnicalTutorials Thanks

  • @xavieralmonte5404
    @xavieralmonte5404 22 дні тому

    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 3 місяці тому +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  3 місяці тому +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 3 місяці тому

      @@TinyTechnicalTutorials you are the best!

  • @rodscletus
    @rodscletus 3 місяці тому

    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  3 місяці тому

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

  • @madhantruth7932
    @madhantruth7932 3 місяці тому +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  3 місяці тому +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 3 місяці тому +1

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

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  3 місяці тому

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

  • @123arskas
    @123arskas 3 місяці тому +1

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

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  3 місяці тому +1

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

  • @abhinav__pm
    @abhinav__pm 3 місяці тому +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  3 місяці тому

      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 3 місяці тому

      @@TinyTechnicalTutorials ok thank you 😊

  • @bramaramutte
    @bramaramutte Місяць тому +1

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

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  Місяць тому

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

  • @darjidhruv2665
    @darjidhruv2665 3 місяці тому +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  3 місяці тому +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 UA-cam or Vimeo and share the video instead of the live project. It's not quite the same, but it would be free. 😊

    • @darjidhruv2665
      @darjidhruv2665 3 місяці тому +1

      @@TinyTechnicalTutorials that's really good opinion

    • @muratucak6689
      @muratucak6689 3 місяці тому +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  3 місяці тому

      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 3 місяці тому +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 2 місяці тому +1

    i dont have my own domain what to do?

    • @TinyTechnicalTutorials
      @TinyTechnicalTutorials  2 місяці тому

      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 3 місяці тому

    🙏👍

  • @youtubevideos415
    @youtubevideos415 Місяць тому

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