AWS-101 · Lesson 12 of 12 · 18 min

Case study: moving a small business to the cloud

▶ Video coming soon A video version of this lesson is on the way.

On November 10, 2026, six weeks after their first session, Gwen asks Mateo to present the complete migration plan to the steering group: Lorraine, Dr. Kaur, Hannah, Andre and Kwame. He has twenty minutes and one rule from Gwen: every decision must have a reason the group can repeat to someone else. This lesson follows his presentation section by section. It is also a review of the whole course, because each section draws on one or more of the earlier lessons, and it shows how the cloud concepts in the first exam domain fit together in a real decision.

1. Why we are moving

Mateo opens with the business, not the technology, following the CAF's business perspective (lesson 8). The board set four goals in September: no repeat of the July 18 outage at the emergency hospital; faster access to images for vets; an online booking system that copes with the spring rush; and no more large hardware purchases, starting with the storage array due for replacement in 2027. He links each goal to one of the six advantages from lesson 2: stop spending money running and maintaining data centres; go global in minutes, here meaning a distant recovery Region; stop guessing capacity; and trade fixed expense for variable expense.

2. What the cloud changes and what it does not

Next he reminds the group what the cloud is (lesson 1) and what stays with Cascade Ridge (lesson 3). AWS will run the facilities, the hardware and the managed services. Cascade Ridge will still decide who can see client records, configure its servers and networks, patch the Windows servers it runs on EC2, and own its data. Hannah nods; she wrote the security of and security in phrase into her policy last week.

Responsibilities after the move, summarized for the steering group.
AreaAWS responsibleCascade Ridge responsible
Server room, power, coolingYesNo longer needed
Hardware failuresYesNo
Windows patches on EC2 serversNoYes
Database engine patches on RDSYesChoose the maintenance window
Who can read client recordsNoYes
Backups and their retentionProvides the serviceConfigures and tests it

3. Where it will run

The Region decision (lessons 4 and 5) comes next. Compliance came first: the board's rule keeps client data in Canada. Within that rule, all required services were available, and latency and price decided the rest. Canada West (Calgary), ca-west-1, will be the primary Region, a few milliseconds from head office. Canada (Central), ca-central-1, will hold the recovery copy, most of a continent away. Inside the primary Region, every important system will run across two Availability Zones.

Target design: users in clinics connect over encrypted links to a primary Region with two Availability Zones, each holding a VetLedger application server and the BookVet servers behind load balancers; an RDS primary and standby span the zones; an S3 bucket holds images; backups and image copies flow to a recovery Region.
Cascade Ridge's target design: two Availability Zones in the primary Region and copies in a distant recovery Region.

4. How it is designed

Mateo walks through the design using the Well-Architected pillars (lesson 6) and the failure-aware patterns from lesson 7. VetLedger's application servers run on two EC2 instances in two zones behind a load balancer. Its database runs on Amazon RDS for SQL Server in a Multi-AZ deployment. Images live in Amazon S3, which stores them redundantly across zones. BookVet runs in an Auto Scaling group with a minimum of two and a maximum of eight instances. AWS Backup copies database backups and important data to the recovery Region. The recovery objectives agreed with Dr. Kaur are an RTO of five minutes and an RPO near zero for a zone failure, and an RTO of four hours and an RPO of one hour for a Regional disaster.

Dr. Kaur asks the question she asked in lesson 4: what happens at 3 a.m. if a zone fails? Mateo answers without notes: the database fails over to its standby in a minute or two, the load balancer stops sending requests to the affected zone, images are unaffected, and staff may need to retry one screen. She asks to see it happen at the game day, and he confirms she is invited.

5. How each system moves

The migration plan (lesson 9) lists every system with its strategy. Mateo summarizes it in one sentence per strategy and asks Andre to read the plan back from the clinic side.

  • Retire the intranet wiki; three useful pages move to the staff portal.
  • Retain the pharmacy dispensing PC and the SaaS email, phones and payroll.
  • Rehost VetLedger's application servers with AWS Transform MGN, and BookVet for now.
  • Replatform VetLedger's database to Amazon RDS for SQL Server, using AWS DMS to keep the copy in sync until a short cutover.
  • Move the image archive into Amazon S3 with AWS DataSync over about two weeks of evenings and weekends.
  • Repurchase the tape backup system as AWS Backup.
  • Refactor BookVet to a serverless design in phase 2.

6. What it will cost

Lorraine's section (lesson 10) shows the three-year total cost of ownership comparison: AWS is cheaper overall, but by a moderate amount, and the strongest arguments are reduced risk, no 2027 storage purchase and the hours returned to Mateo. The cloud estimate assumes licence-included SQL Server on RDS, rightsizing after the first month, and test servers that run only during working hours. A monthly cost review will start in December, and every resource will carry tags showing its system and clinic so costs can be attributed.

Python Example
# Illustrative first-year monthly cost estimate (currency units), with rightsizing from month 3
# and the image archive growing each month.
base = {"VetLedger compute": 900, "VetLedger database": 1400, "BookVet": 350,
        "backups and copies": 250, "data transfer": 120}
image_storage_start, growth_per_month = 520, 80
months = []
for m in range(1, 13):
    compute = base["VetLedger compute"] * (0.75 if m >= 3 else 1.0)   # rightsizing saving
    storage = image_storage_start + growth_per_month * (m - 1)
    total = compute + base["VetLedger database"] + base["BookVet"] + base["backups and copies"] + base["data transfer"] + storage
    months.append(round(total))
print("Month by month:", months)
print("First-year total:", sum(months))
Output
Month by month: [3540, 3620, 3475, 3555, 3635, 3715, 3795, 3875, 3955, 4035, 4115, 4195]
First-year total: 45510

What this code does

It builds an illustrative month-by-month cost estimate for the first year, starting from fixed monthly costs for each system. Compute drops by a quarter from month 3 when servers are rightsized, and image storage grows by a fixed amount each month. It prints each month's total and the first-year sum, showing how one saving and steady growth combine over time.

7. Who does what

Mateo closes the plan with the people side, following the CAF perspectives. Each perspective has an owner on the steering group: business with the board and Lorraine, people with Hannah and Andre, governance with Lorraine and Gwen, platform with Gwen and Kwame, security with Hannah, and operations with Mateo. Andre's training plan for receptionists is scheduled for the two weeks before each cutover. Mateo will build monitoring, alerting and runbooks before the spring move, and he plans to sit the Cloud Practitioner exam in February 2027.

8. The timeline

Everything from here is a plan, and Mateo presents it that way. The CAF's phases (lesson 8) give the shape.

The migration timeline presented on November 10, 2026.
PhaseWhen (planned)What
EnvisionSeptember 2026 (done)Board goals and approval
AlignOctober to November 2026 (done)Owners, Regions, design, migration strategies, business case
LaunchDecember 2026 to January 2027Accounts and network built from templates; BookVet pilot; first cost review
ScaleFebruary to May 2027Image archive copy; game day; VetLedger database and servers cut over; server room emptied
ReviewJune 2027Second Well-Architected review; rightsizing; plan for phase 2 refactor
Python Example
# Check the plan's key dates against the storage array's end of support.
from datetime import date
end_of_support = date(2027, 6, 30)
milestones = {
    "BookVet pilot live": date(2026, 12, 14),
    "Image archive copied": date(2027, 3, 12),
    "Game day": date(2027, 3, 24),
    "VetLedger cut over": date(2027, 4, 18),
    "Server room emptied": date(2027, 5, 28),
}
for name, d in milestones.items():
    margin = (end_of_support - d).days
    print(f"{name:22} {d}  {margin:4} days before end of support")
Output
BookVet pilot live     2026-12-14   198 days before end of support
Image archive copied   2027-03-12   110 days before end of support
Game day               2027-03-24    98 days before end of support
VetLedger cut over     2027-04-18    73 days before end of support
Server room emptied    2027-05-28    33 days before end of support

What this code does

It compares each milestone date in the migration plan with the date the old storage array loses support. Subtracting one date from the other gives the number of days of margin for each milestone. The printout lists the milestones with their margins, showing every step finishes before support ends.

How the case maps to the exam

Gwen closes the session by pointing out that Mateo has just answered, in his own words, most of what the first exam domain asks. Task 1.1, the benefits of the AWS Cloud, is sections 1 and 3. Task 1.2, design principles and the Well-Architected Framework, is section 4. Task 1.3, migration benefits and strategies, including the AWS CAF and database replication, is sections 5 and 7. Task 1.4, cloud economics, is section 6. The domain carries a weight of 24 out of every 100 scored points on the exam, and the other three domains are the subjects of AWS-102, AWS-103 and AWS-104.

She also reminds him of the exam's basic facts, which AWS-109 covers in detail: 90 minutes, 65 questions of which 50 are scored and 15 are unscored and not identified, multiple-choice and multiple-response questions, a scaled score from 100 to 1,000 with 700 needed to pass, no penalty for guessing, and a fee of 100 US dollars, taken at a Pearson VUE testing centre or online.

Common mistakes

  • MistakePresenting the plan as a list of AWS services.

    InsteadStart from business goals and give each technical choice a reason tied to them.

  • MistakeDescribing planned events as if they had happened.

    InsteadKeep a clear line between decisions made and work still to come.

  • MistakeLeaving people and operations to the end of the project.

    InsteadTraining, support and monitoring must be ready before each cutover.

  • MistakeTreating the business case as final.

    InsteadCosts depend on rightsizing and discipline; review them monthly and update the plan.

Questions from the steering group

After the presentation, each member of the steering group asks one question, and Mateo's answers show how far he has come in six weeks.

  • Lorraine asks what would make the bill higher than the estimate. Mateo lists resources left running, servers never rightsized, unexpected data transfer and growth in image storage, and says the monthly review and the sandbox budget alerts are designed to catch each one.
  • Hannah asks how she will know that client data has stayed in the approved Regions. Mateo answers that policies will block other Regions, that backups are configured to copy only to the recovery Region, and that she will review the configuration at each wave.
  • Andre asks what clinic staff will notice on cutover day. Mateo describes the new sign-in screen, the support number and the paper fallback for the first morning, and promises a one-page guide for each clinic.
  • Kwame asks when he can start the serverless redesign. Mateo says after VetLedger is stable, so that the team is not running two major changes at once.
  • Dr. Kaur asks who will be called at night if something fails. Mateo says he will, with Gwen as backup for the first three months, and that alarms will page them both.

Gwen tells him afterwards that the answers mattered more than the slides. Each one connected a concern to a design choice, an owner or a control, which is exactly what the cloud concepts domain is trying to teach.

Worked problem

Answering a board member

A board member asks why, if AWS is so reliable, Cascade Ridge needs a second Region at all.

Show solution
  1. Multi-AZ design in the primary Region protects against the failure of a data centre or a zone, which is the most likely large event.
  2. A whole Region being unavailable is very rare, but the emergency hospital cannot run safely without VetLedger, so the business accepted a modest extra cost to protect against it.
  3. The recovery copy also protects against mistakes, such as accidental deletion, because backups are stored separately.
  4. The second Region is chosen to meet the same data residency rule as the first.

Answer: The second Region is insurance against a rare but serious event, sized to the business impact, and it respects the residency rule.

The steering group approves the plan. Lorraine asks for the cost review in December; Dr. Kaur asks again about the game day; Andre asks for the training dates in writing. Mateo walks out with a full calendar and, for the first time since July, no worry about the air conditioner. AWS-102 picks up the story in December, when Hannah and Gwen begin setting up identities, permissions and encryption for the new accounts.

Summary and key terms

  • A cloud migration plan starts with business goals and ties every technical choice to them.
  • Cascade Ridge's plan uses the six advantages to explain why, the shared responsibility model to clarify duties, the four Region factors to choose ca-west-1 and ca-central-1, the Well-Architected pillars and Multi-AZ patterns to design for failure, the 7 Rs to decide how each system moves, a total cost of ownership comparison to justify the cost, and the CAF perspectives and phases to organize people and time.
  • The first exam domain, cloud concepts, carries a weight of 24 out of 100.
Business case
The reasoned argument, with costs and benefits, for a project.
Target design
The planned architecture after migration.
Cutover
The moment a system switches from the old environment to the new one.
Game day
A planned exercise that rehearses failures and recovery.
Steering group
The leaders who oversee a program's direction, risks and spending.
Domain weight
The share of an exam's scored content that a domain represents.

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. Which lesson's ideas justify keeping two Availability Zones in the primary Region?

    Show answer

    Designing for failure (lesson 7), backed by the reliability pillar of the Well-Architected Framework (lesson 6).

  2. Which migration strategy applies to the VetLedger database, and which service keeps it in sync until cutover?

    Show answer

    Replatform, with AWS Database Migration Service.

  3. How many questions on the Cloud Practitioner exam are scored?

    Show answer

    50 of the 65.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz