Skip to content
Shantanu Sen Gupta
← All writing

Hereco | AWS: The Infrastructure Behind Our Services

Hereco uses Amazon Web Services (AWS) across its infrastructure to support applications, APIs, storage, authentication, content delivery, email, and background workloads. From EC2 and VPC to CloudFront, S3, Cognito, Lambda, SES, SNS, SQS, and Route 53, we use different AWS services together to build, optimize, and scale the technology behind Hereco.

As Hereco grows, so does the infrastructure that powers our services. Amazon Web Services (AWS) is our preferred platform for implementing various services that power our applications, APIs, storage, authentication, content delivery, communication, and background workloads.

Our current AWS stack consists of Amazon EC2, Amazon VPC, Amazon Route 53, Amazon CloudFront, Amazon S3, Amazon Cognito, AWS Lambda, Amazon SES, Amazon SNS, and Amazon SQS.

We favor using multiple services over a monolithic approach to address specific business needs.

Our AWS Infrastructure

Amazon EC2 hosts our server-side applications and background processes while Amazon VPC creates a network environment for our AWS infrastructure.

We use Amazon Route 53 for domain name and traffic routing and Amazon CloudFront for content delivery and static site hosting. They help us avoid hosting all our static content inside our application servers. In addition, we use Amazon S3 to store our content and media files.

Amazon Cognito helps us manage authentication and authorization by letting our applications hosts talk to AWS about users without building the infrastructure for it ourselves.

For work loads that do not require server hosting, we use AWS Lambda. It also helps us host our event-driven architecture workloads. Amazon SNS helps us decouple our application further by letting our application publish events to a queue. Amazon SQS can store these events and let our lambda functions consume them asynchronously.

Amazon SES helps us send emails to our users. The AWS services listed in the picture above are only a subset of more than 200 services that AWS offers.

A more distributed architecture

The AWS services listed above allow us to decouple our application components and achieve more by using various tools provided by AWS. For example, we can create an event-driven workload by combining Amazon SNS and SQS. We can also let our application consume content from Amazon S3 and deliver it to our users over CloudFront instead of having our application hosts deliver it.

This approach also helps us optimize our infrastructure by letting us tailor our application infrastructure according to the specific needs of each component.

Optimizing Hereco

We believe that optimization should happen when a specific need arises, not at the time of initial implementation. Sometimes, that means deploying an application closer to the user with CloudFront. It might also involve moving some parts of the application to other AWS services such as SQS, to optimize utilization, or using EC2 to scale our infrastructure up and down based on demand. Or perhaps using Lambda to run an event-driven workload in favor of a server-hosted process.

With these optimizations, we can continue to iterate on Hereco without overhauling the entire infrastructure.

Looking Ahead

Hereco is a growing project, and we expect its infrastructure to continue evolving as our application and workloads continue to grow and mature. We will always look for ways to optimize our infrastructure to favor performance, reliability, security, and infrastructure costs.

The AWS infrastructure allows us to do that by providing the tools and services to host, optimize, and experiment with our application without building everything from scratch.

We are committed to building Hereco for today while preparing it for tomorrow.