Bulk Email Sending System with AWS SES, ECS Fargate, SQS, Glue, Redshift, and S3

Project Overview

I was responsible for the design and deployment of a large-scale bulk email sending system using AWS services such as SES (Simple Email Service), ECS Fargate, SQS (Simple Queue Service), Glue, Redshift, and S3. The system enabled website clients to upload CSV files containing email data, which were processed and stored in AWS Redshift. A Glue job would retrieve the data, create personalized email content using templates stored in S3, and initiate the bulk email-sending process through ECS Fargate and SQS, leveraging AWS SES for high-volume email delivery.

Technologies and Services Used

  • Amazon SES (Simple Email Service): Used for sending bulk emails in batches.

  • Amazon ECS Fargate: Serverless container orchestration to process email sending.

  • Amazon SQS (Simple Queue Service): For handling and processing batches of email data in a distributed manner.

  • AWS Glue: ETL job for data processing, creating email content, and preparing email templates.

  • Amazon Redshift: For storing uploaded customer email data from CSV files.

  • Amazon S3: For storing uploaded CSV files and email templates used in email generation.

  • AWS Lambda: Triggered ECS Fargate tasks and managed the lifecycle of SQS queues for batch email processing.

Key Responsibilities:

  • Architected the Bulk Email System: Designed and deployed a scalable architecture to manage large-scale email campaigns efficiently using AWS services.

  • CSV File Upload and Data Processing: Integrated client-side CSV upload functionality that allowed website users to upload CSV files. These files were stored in Amazon S3 and processed to upload the data into AWS Redshift.

  • AWS Glue Job for Email Generation: Developed and managed AWS Glue jobs to retrieve email data from Redshift, process it, and create personalized email content using predefined templates stored in S3.

  • Email Batch Processing: Configured ECS Fargate to be triggered by AWS Lambda, which retrieved batches of email data from SQS, and sent emails in parallel batches using Amazon SES.

  • SQS for Queuing Email Batches: Utilized SQS to queue and process bulk email data in batches, ensuring a smooth and organized flow of emails without overwhelming the SES limits.

  • Serverless Processing: Leveraged AWS Lambda and ECS Fargate to achieve a serverless architecture that minimized infrastructure management while ensuring high scalability.

  • Monitoring and Error Handling: Implemented error handling and logging mechanisms across the architecture to ensure email delivery reliability and to retry failed emails.

Project Flow

  • CSV Upload: Clients upload a CSV file with email details via a web interface. The CSV file is stored in Amazon S3.

  • Data Upload to Redshift: The back-end service processes the CSV data and uploads it to Amazon Redshift for storage and further processing.

  • Glue Job Processing: AWS Glue extracts the email data from Redshift, combines it with email templates from S3, and prepares personalized email content for each recipient.

  • ECS Fargate Triggered by Lambda: Once the data is ready, AWS Lambda triggers ECS Fargate tasks that send email batch data to SQS.

  • SQS Batch Processing: ECS Fargate consumes the email batch data from SQS and processes emails in batches, sending them one by one using Amazon SES.

Project Outcomes

  • Scalable Email Delivery: Achieved a highly scalable solution capable of sending bulk emails to thousands of users with minimal manual intervention, leveraging the power of AWS SES and ECS Fargate.

  • Automation: Automated the entire process from CSV upload to email sending using serverless components like AWS Lambda, SQS, and Glue.

  • Cost Efficiency: Minimized infrastructure costs by using a serverless architecture with ECS Fargate and Lambda, scaling automatically based on demand.

  • Data Integrity: Ensured data integrity by securely processing email data from client uploads, storing it in Redshift, and handling errors or retries in case of failures during email sending.

  • Seamless Email Campaign Management: Provided a seamless experience for clients to upload email data, process it, and send personalized emails, all in a streamlined and automated manner.

Latest Projects

Things I do

CLOUD

Amazon Web Services

AZURE Cloud

Google Cloud Platform

IBM Cloud

DevOps Tools

Jenkins

Ansible for software provisioning

Packer for automated machine images

AWS CodePipeline

AWS CodeDeploy

Azure Pipelines

Chef

Github Actions

GitLab CI/CD

CircleCI

Microservices

Kubernetes

Docker

AWS ECS

AWS EKS

AKS

Azure Container Apps

Monitoring and Alerting

Telegraf

Prometheus

Grafana

Pagerduty

Infrastructure as Code

CloudFormation

Terraform

AWS CDK (Python & Typescript)

Operating System

Most of Linux Server Distributions

Window Server 2019/2022

Databases

MySQL

MariaDB

MongoDB

PostgreSQL

MSSQL

Scripting

Shell Scripting

Python

YAML

PowerShell

My Certifications

EMAIL: RAJ412214@GMAIL.COM

Let's Talk

Book a call to talk regarding the current vacancy at your organization.