Build a Serverless Email Marketing Application in 30 Minutes! | AWS Project Step-by-Step Tutorial
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
Another AWS project for you with a couple services we haven't used before (EventBridge and SES)! Hope you like it! 🤓😊
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?
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!
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?
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!! 🙏
Great project! Looking forward to seeing more of your excellent work and helping you navigate the path to becoming a cloud engineer.
I'm so glad you liked it! Thanks for watching! 🤓🌟🙏
Love your tutorials & the way you explain things😊
Glad you like them! Thanks so much for watching! 🙏🤓🌟
Love the moments where you barely stopped you're from laughing out of excitement. Positive vibes.
Ha! This actually made me laugh out loud. Thanks for that!! 😂
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. 😃😃😃
Oh my gosh, this is the nicest comment EVER!!! Thanks so much! 🥰🙏🌟 I'm so glad the videos are helping.
Thank you for yet another amazing tutorial. Loving your videos lately. Enrolled into your ZTM course on Solution Architect Associate Certification. 🙂
Great to hear, Rupam!! Thanks for all the support!!! 🤓🌟🙏
Super helpful! Thank you so much
So glad! Thanks for watching!! 🙏🤓🌟
Thank you Amber!!❤
Thank YOU for watching!!! 🥰
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.
Nice work! 💪 Glad you were able to work around the SES part. Thanks so much for watching!! 🙏🤓🌟
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.
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! 🔥🤓
Wow this is dope!
LOL! I'm so glad!! 😂 Thanks for watching!
easy to follow
Yay! I'm so glad. Thanks for watching! 🙏🌟🤓
Awesome gonna add this to my resume . Would also love to see them using Terraform :)
Awesome work! 💪 And I'll add Terraform to my list for future videos. Thanks for watching! 🙏🤓🌟
Exellent.....
You're very kind...thanks so much! 🙏🤓🌟
Great video, very informative.
Quick question, what tool do you use to create your visual diagrams ?
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 Thanks
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?
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?
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 you are the best!
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.
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! 🤓🌟
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
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! 💪🤓
Can you make a step by step guide to write cloudformation template from beginner to advanced.?
Ooh, this is a great idea! I'll add it to my list. Thanks for the suggestion! 🙏🌟🤓
Please make a video on ML model deployed from SageMaker and called on Lamda code
Oooh, interesting! I'll add it to my list. Thanks for the suggestion! 💪🔥
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?
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 ok thank you 😊
It is showing email sent.but when checked in inbox, thers isn't any mail received
Hi bramara! 👋 Sorry for the slow response! Were you able to figure this out? Maybe it went to a spam folder?
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
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. 😊
@@TinyTechnicalTutorials that's really good opinion
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.
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! 😊
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
i dont have my own domain what to do?
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. 😊
🙏👍
Thanks for watching! 🙏🌟🤓
Watched the video until the word "Python". Bye...
🥹