---
title: EdTech on AWS (2026): LMS, Exam-Day Buffering, and AI Tutor Reference Architecture
description: For a multi-district LMS (~52k concurrent exam submissions in 30 min), SQS decouple + Aurora Serverless v2 held p95 submit at 410 ms — off-peak monthly compute −71% vs always-on EC2.
url: https://www.factualminds.com/blog/aws-edtech-lms-assessment-reference-architecture-2026/
datePublished: 2026-07-07T00:00:00.000Z
dateModified: 2026-07-07T00:00:00.000Z
author: palaniappan-p
category: Cloud Architecture
tags: aws, edtech, lms, education, serverless, bedrock, ferpa, architecture
---

# EdTech on AWS (2026): LMS, Exam-Day Buffering, and AI Tutor Reference Architecture

> For a multi-district LMS (~52k concurrent exam submissions in 30 min), SQS decouple + Aurora Serverless v2 held p95 submit at 410 ms — off-peak monthly compute −71% vs always-on EC2.

**AWS Glue 5.1** reached **all commercial and GovCloud regions** in **April 2026** ([What's New](https://aws.amazon.com/about-aws/whats-new/2026/04/aws-glue-5-1-all-govcloud-commercial-regions/)) — relevant when LMS analytics exports feed a district lake. **Bedrock Guardrails** filter PII, denied topics, and hallucinations across FMs ([Bedrock FAQs](https://aws.amazon.com/bedrock/faqs/)).

This post is the **EdTech reference architecture** — LMS catalog, exam buffering, video, and AI tutor lanes. It is **not** [generic serverless EdTech scaling](/blog/scaling-edtech-platforms-on-aws-serverless-architecture/), **not** [HIPAA Bedrock alone](/blog/hipaa-compliant-ai-aws-bedrock/) (clinical records), and **not** the [education industry FAQ](/industries/aws-education/) without implementation lanes.

Artifacts: [exam-day capacity worksheet](https://www.factualminds.com/examples/architecture-blog-2026/edtech-lms/exam-day-capacity-worksheet.csv), [assessment buffer checklist](https://www.factualminds.com/examples/architecture-blog-2026/edtech-lms/assessment-buffer-checklist.md), [FERPA boundary matrix](https://www.factualminds.com/examples/architecture-blog-2026/edtech-lms/ferpa-boundary-matrix.md).

> **Benchmark pattern (not a cited client)** — **Multi-district LMS**, **52k** concurrent exam submissions in **30 min**, summer baseline **800** sessions. **SQS accept/grade decouple** + **Aurora Serverless v2** (**submit p95 410 ms** during window). **Off-peak compute −71%** vs prior always-on EC2 (worksheet). **Bedrock Guardrails** on tutor path only after FERPA matrix sign-off.

## Four lanes — enrollment to exam to tutor

| Lane                  | Question              | Default AWS path                                        |
| --------------------- | --------------------- | ------------------------------------------------------- |
| **Catalog / session** | Course + auth?        | **CloudFront** + **ALB** + Fargate/Lambda + **Cognito** |
| **Assessment**        | Exam spike?           | **SQS** buffer → async grading Lambda                   |
| **Video**             | Lecture delivery?     | S3 → **CloudFront** (separate origin from API)          |
| **AI tutor**          | Safe generative help? | **Bedrock** + **Guardrails** + human review queue       |

**Opinionated take:** **Decouple submit from grade before buying bigger Aurora.** Teams that scale EC2 for synchronous grading pay 12 months for a 30-minute window.

## Reference architecture

```
Students ──► CloudFront ──► ALB ──► LMS API (Fargate/Lambda)
                    │
                    ├──► Cognito (district SSO)
                    │
Exam submit ──► API GW ──► Validator Lambda ──► SQS ──► Grading Lambda ──► DynamoDB results
                    │                              │
                    └──► Aurora Serverless v2 (catalog, rosters)
Video ──► S3 ──► CloudFront (WebP/HLS)
Tutor ──► API ──► Bedrock Converse + Guardrails ──► SQS (flagged sessions) ──► human review
```

### Lane 1 — Catalog and session

- **ElastiCache** for course catalog hot keys during registration week
- **Aurora Serverless v2** min ACU near zero in July; raise max ACU **24h before** exam window
- Separate **CloudFront** behavior for `/api/*` vs `/video/*`

### Lane 2 — Assessment buffer

Complete [assessment-buffer-checklist.md](https://www.factualminds.com/examples/architecture-blog-2026/edtech-lms/assessment-buffer-checklist.md):

- Validator returns **202 Accepted** with `submission_id`
- Grading concurrency cap prevents Aurora write storm
- Load test at **2×** [worksheet](https://www.factualminds.com/examples/architecture-blog-2026/edtech-lms/exam-day-capacity-worksheet.csv) peak

### Lane 3 — Video economics

- Transcode to HLS + WebP poster frames on ingest (once)
- Monitor **CloudFront cache hit ratio** during exam week — new module drops hit ratio
- Pre-warm top **N** modules per district 48h before window

### Lane 4 — AI tutor + FERPA

Walk [ferpa-boundary-matrix.md](https://www.factualminds.com/examples/architecture-blog-2026/edtech-lms/ferpa-boundary-matrix.md):

- Denied topics for exam answers / academic dishonesty
- PII filter on prompts and responses
- Per-district spend cap on Bedrock

> **What broke** — Fall midterm, minute 14. **503 on submit** — synchronous grading held Lambda until API GW timeout. **Detection:** `IntegrationLatency` spike + Aurora `DatabaseConnections` max. **Fix:** SQS buffer shipped in 48h; **submit p95 410 ms** on retest.

## When NOT to escalate

| Situation                 | Stay lighter                                     |
| ------------------------- | ------------------------------------------------ |
| &lt; 500 concurrent exams | Sync Lambda may suffice                          |
| Video &lt; 500 GB/month   | Single S3 + CloudFront without MediaConvert farm |
| Higher-ed only, no K-12   | COPPA flows optional — FERPA still applies       |

## What to Do This Week

1. Fill [exam-day-capacity-worksheet.csv](https://www.factualminds.com/examples/architecture-blog-2026/edtech-lms/exam-day-capacity-worksheet.csv) with last semester's peak + 20% headroom.
2. Complete [assessment-buffer-checklist.md](https://www.factualminds.com/examples/architecture-blog-2026/edtech-lms/assessment-buffer-checklist.md).
3. Sign off [ferpa-boundary-matrix.md](https://www.factualminds.com/examples/architecture-blog-2026/edtech-lms/ferpa-boundary-matrix.md) with district legal.
4. Load test **2×** peak with SQS path — alarm on DLQ depth.
5. Enable Guardrails on tutor staging — run 100 adversarial prompts before pilot.

> **Reproduce this** — Download [exam-day-capacity-worksheet.csv](https://www.factualminds.com/examples/architecture-blog-2026/edtech-lms/exam-day-capacity-worksheet.csv). Set `exam_window_30min` from CloudWatch `ConcurrentExecutions` max last term. Compare `estimated_exam_window_cost_usd` to always-on EC2 row.

## What This Post Doesn't Cover

- **SCORM/xAPI full LRS** — partner or dedicated learning-record product
- **Proctoring video ML** — separate privacy review
- **On-prem SIS bidirectional sync** — integration project, not architecture lanes
- **Campus Wi-Fi QoS** — client-side constraint

We have not benchmarked **Bedrock tutor** above **3k invocations/min** per region — cap with token bucket before district-wide rollout.

**Related:** [Education industry hub](/industries/aws-education/) · [Serverless services](/services/aws-serverless/) · [Bedrock services](/services/aws-bedrock/)

## FAQ

### When should we decouple exam submission from grading with SQS?
When peak submissions exceed ~2,000/min or grading takes >500 ms — accept path returns 202 + submission_id; grade async. Skip SQS for low-stakes formative quizzes under ~500 concurrent users.

### When should we NOT enable Bedrock AI tutor for K-12?
Without FERPA addendum scope, parental consent API for COPPA, and Guardrails PII filters — block tutor launch. Human review queue required for flagged sessions in procurement RFPs.

### Aurora Serverless v2 vs RDS for LMS?
Serverless v2 when traffic swings 100× between exam windows and summer break. Provisioned RDS when baseline is flat enterprise contract with predictable ACU.

### How does this differ from the serverless EdTech scaling post?
That post explains why serverless fits education economics. This post wires four lanes — catalog, assessment buffer, video, AI tutor — with exam-day numbers and FERPA boundaries.

### What breaks if grading runs synchronously on submit?
API Gateway 29s timeout, Lambda concurrency stampede, Aurora connection exhaustion — students see 503 during minute 12 of a 30-minute exam window.

### Can we run tutor on raw gradebook exports?
No — education records stay out of Bedrock prompts. Use de-identified context or directory-info-only prompts per ferpa-boundary-matrix.md.

---

*Source: https://www.factualminds.com/blog/aws-edtech-lms-assessment-reference-architecture-2026/*
