Skip to main content
Norah Klintberg Sakal
AI Consultant & Developer

AI consultant and developer specializing in AI-powered search and AI agents. Focused on building smarter retrieval systems, chatbots, and e-commerce AI with practical, hands-on guides.

View all authors

Day 13: Build your secure backend trigger

Β· 37 min read
Norah Klintberg Sakal
AI Consultant & Developer

Build your secure backend trigger

What you'll learn

How to build a secure Lambda backend with API Gateway and Cognito authorization to trigger AI calls

Why you need a secure trigger​

Day 12: You build a protected frontend

Today: We build the secure backend that triggers calls

Here's the critical security issue:

Remember your ALB endpoint we built on Day 9 β†—?

https://ai-caller.yourdomain.com

If we add a /make-call endpoint directly to Fargate:

POST https://ai-caller.yourdomain.com/make-call
β†’ Publicly accessible
β†’ Anyone can trigger calls
β†’ Could rack up *huge* OpenAI/Twilio bills
β†’ Even with frontend auth, the endpoint is exposed

This is not acceptable.

Day 12: Deploy your frontend (with authentication)

Β· 50 min read
Norah Klintberg Sakal
AI Consultant & Developer

Deploy your frontend (with authentication)

What you'll learn

How to build a secure frontend with Vite, React and Cognito authentication, then deploy it to S3 + CloudFront

Protect your app from unauthorized use​

Days 9-11: You built the infrastructure

Today: We build the protected frontend

Here's the critical security issue:

When you deploy your AI calling agent:

https://app.yourdomain.com
β†’ Publicly accessible
β†’ Anyone can use it
β†’ Could rack up huge OpenAI/Twilio bills

This is not acceptable.

What you need:

Day 11: Add HTTPS (SSL certificate)

Β· 24 min read
Norah Klintberg Sakal
AI Consultant & Developer

Add HTTPS (SSL Certificate)

What you'll learn

How to request a free SSL certificate from AWS and enable HTTPS on your Application Load Balancer

Make it secure​

Day 10: You got a custom domain

Today: We make it secure with HTTPS

Here's the situation:

Your app is accessible at:

http://ai-caller.yourdomain.com

Browser says: ⚠️ "Not secure":

Browser says: 'Not secure'

Browser says: ⚠️ "Not secure"

The problem:
❌ Data transmitted in plain text
❌ Anyone can intercept traffic
❌ Users don't trust it
❌ Browser shows scary warnings
❌ Can't use modern web features (WebRTC, microphone access)

What you need:

Day 10: Get your custom domain (real URLs)

Β· 23 min read
Norah Klintberg Sakal
AI Consultant & Developer

Get your custom domain (real URLs)

What you'll learn

How to set up a custom domain with Route 53 and point it to your Application Load Balancer.

No more default URLs​

Day 9: You built the front-yard house (ALB)

Today: We give it a real address

Here's the situation: Your ALB has a public endpoint:

fargate-alb-1234567890.us-east-1.elb.amazonaws.com

This works, but:
❌ Impossible to remember
❌ Looks unprofessional
❌ Hard to share
❌ Can't use for SSL certificate (Day 11)

What you want:

ai-caller.yourdomain.com

Clean. Professional. Memorable.

Solution: Route 53 + Custom Domain

Day 9: Create your Application Load Balancer (the front door)

Β· 25 min read
Norah Klintberg Sakal
AI Consultant & Developer

Create your Application Load Balancer (the front door)

What you'll learn

How to create an Application Load Balancer that accepts internet traffic and routes it to your private containers

Your network needs a front-yard house​

Day 8: You tested and validated your network

Today: We build the front door (Application Load Balancer)

Here's the setup:

Day 8: Test your network (prove it works)

Β· 26 min read
Norah Klintberg Sakal
AI Consultant & Developer

Test your network (prove it works)

What you'll learn

How to validate your VPC infrastructure by launching a test instance and verifying connectivity

Trust, but verify​

Days 3-7: You built the entire network infrastructure

Today: We prove it actually works

Here's the situation:

You've built:
βœ… VPC with Internet Gateway
βœ… Public and private subnets
βœ… NAT Gateway
βœ… Route Tables
βœ… Security Groups

But you haven't actually tested any of it.

What if:

  • NAT Gateway isn't running correctly?
  • Route tables have the wrong associations?
  • Secure Groups are blocking traffic?
  • Something is misconfigured?

You'd fund out after deploying your containers (painful debugging)

Solution: Test first, deploy second.

Day 7: Create security groups (add the smart locks)

Β· 22 min read
Norah Klintberg Sakal
AI Consultant & Developer

Create Security Groups (add the smart locks)

What you'll learn

How to create Security Groups that control exactly who can talk to your load balancer and AI agent Containers

Your network needs smart locks​

Day 6: You built the roads (route tables)

Today: We add the smart locks (Security Groups)

Here's the problem:

Your routing works, traffic can flow.

But there's NO security layer yet.

Right now:

  • Anyone can try to connect to your containers
  • No firewall rules
  • No access control

That's a security issue.

Solution: Security Groups

Day 6: Build your route tables (connect the roads)

Β· 20 min read
Norah Klintberg Sakal
AI Consultant & Developer

Build your route tables (connect the roads)

What you'll learn

How to create route tables that connect private subnets to NAT Gateway and public subnets to Internet Gateway

Your gates need directions​

Day 5: You built the back gate (NAT Gateway)

Today: We build the roads that connect everything

Here's the problem:

You have:

βœ… Neighborhood front gate (Internet Gateway)
βœ… Back gate (NAT Gateway)
βœ… Front yards (public subnets)
βœ… Back yards (private subnets)

But nothing is connected yet.

Day 4: Create subnets (front yards vs back yards)

Β· 16 min read
Norah Klintberg Sakal
AI Consultant & Developer

Create subnets (front yards vs back yards)

What you'll learn

How to create 4 subnets (2 public, 2 private) in different availability zones for high availability

Your neighborhood needs houses​

Day 1: Your AI agent's first phone call Day 1 β†—
Day 2: Give your AI agent a real-world mission Day 2 β†—
Day 3: You claimed your territory (VPC) Day 3 β†—

Today: We'll build our neighborhood with subnets