Level Up
← AWS Migration Assessment

Example Assessment

Acme Manufacturing

A fictional but realistic mid-size manufacturer with a plant network, a corporate network, and a mixed Linux/Windows estate. The numbers below are an example assessment, not a customer engagement.

The public repository is coming soon. This example shows the artifact shape the assessment produces, including examples/acme-manufacturing.

Overview

examples/acme-manufacturing/summary.yaml

Servers
47
Applications
8
Databases
5
Environments
3
Network zones
2
Replatform
7
Rehost
4
Retain
2
Refactor
1
Retire
1
Waves
4
Engineering tasks
93
Terraform candidates
31
Ansible candidates
44

Evidence coverage: inventory 94%, dependencies 78%, utilization 51%.

Inventory

examples/acme-manufacturing/inventory.json

HostOSRoleZoneEnvWorkload
erp-db-01RHEL 8Oracle 19c primarycorpprodERP (Infor LN)
erp-db-02RHEL 8Oracle 19c standbycorpprodERP (Infor LN)
erp-app-01RHEL 8Infor app nodecorpprodERP (Infor LN)
wms-db-01RHEL 9PostgreSQL 15plantprodWarehouse Management
wms-app-01RHEL 9WMS appplantprodWarehouse Management
mes-app-01Windows Server 2019MES appplantprodManufacturing Execution
mes-db-01Windows Server 2019SQL Server 2019plantprodManufacturing Execution
crm-db-01Ubuntu 22.04PostgreSQL 14corpprodCRM
ad-dc-01Windows Server 2022Domain controllercorpprodActive Directory
fs-01Windows Server 2019SMB file servercorpprodFile servers
edi-01RHEL 8SFTP gatewaycorpprodEDI Gateway
dwh-01RHEL 8Warehouse nodecorpprodData Warehouse

Showing 12 of 47 discovered servers from the example inventory.

Workload map

examples/acme-manufacturing/workloads.yaml

ERP (Infor LN)

Replatform

6 servers · Wave 4 · Confidence High

Target: EC2 + Amazon RDS for Oracle, later evaluated for Aurora

Evidence: Oracle 19c, 1.8 TB, standard connections, no unsupported features detected

Manufacturing Execution

Rehost

5 servers · Wave 3 · Confidence Medium

Target: EC2 in plant-adjacent VPC, low-latency path to OT network

Evidence: Windows + SQL Server, shop-floor integrations, 12 ms plant RTT required

Warehouse Management

Replatform

3 servers · Wave 3 · Confidence High

Target: ECS + Amazon RDS for PostgreSQL

Evidence: PostgreSQL 15, 380 GB, no unsupported extensions detected

CRM

Replatform

3 servers · Wave 4 · Confidence High

Target: Amazon RDS for PostgreSQL + ECS

Evidence: Self-managed PostgreSQL 14, 120 GB, standard extensions only

Intranet / SharePoint

Retain

2 servers · Wave n/a · Confidence High

Target: Remain on-premises pending M365 decision

Evidence: Business owner freeze; license renewal in 14 months

Quality Management

Rehost

2 servers · Wave 3 · Confidence High

Target: EC2 + Amazon FSx for Windows

Evidence: Vendor-supported Windows app, file-share dependency only

EDI Gateway

Replatform

2 servers · Wave 2 · Confidence Medium

Target: Transfer Family + Lambda + S3

Evidence: SFTP + scheduled file exchange; no custom protocol extensions

Data Warehouse

Refactor

4 servers · Wave 4 · Confidence Medium

Target: Amazon Redshift Serverless + S3 + Glue

Evidence: Nightly ETL, 6 TB historical, 14 downstream reports

Active Directory

Rehost

4 servers · Wave 1 · Confidence High

Target: EC2 domain controllers + AWS Managed Microsoft AD evaluation

Evidence: Required identity source for 6 workloads

File servers

Replatform

4 servers · Wave 2 · Confidence High

Target: Amazon FSx for Windows File Server

Evidence: SMB shares, 9.4 TB, DFS namespace, QMS + intranet consumers

Print services

Retire

2 servers · Wave 2 · Confidence High

Target: Decommission after plant print move to vendor SaaS

Evidence: 14% CPU, 3 remaining queues, replacement already purchased

Backup system

Replatform

3 servers · Wave 2 · Confidence High

Target: AWS Backup + S3 + existing vendor cloud connector

Evidence: On-prem backup catalog, 38 TB, already has S3 plugin

Nagios monitoring

Replatform

2 servers · Wave 1 · Confidence High

Target: Amazon CloudWatch + Grafana on ECS

Evidence: 1,200 checks, 80% are ICMP/HTTP/process, 20% custom scripts

Bastion / jump hosts

Rehost

2 servers · Wave 1 · Confidence High

Target: AWS Systems Manager Session Manager

Evidence: SSH/RDP jump boxes; no privileged workflow beyond admin access

Legacy reporting

Retain

3 servers · Wave n/a · Confidence Medium

Target: Remain until data warehouse cutover

Evidence: Crystal Reports against ERP replica; owners not ready to rewrite

Dependency graph

examples/acme-manufacturing/dependencies.json

  • ERP (Infor LN)Active Directoryidentity

    Kerberos auth observed on erp-app-01

  • Manufacturing ExecutionERP (Infor LN)data

    Nightly order export, 02:15 plant local

  • Warehouse ManagementERP (Infor LN)runtime

    SOAP inventory API, 4,200 calls/day

  • Warehouse ManagementManufacturing Executionruntime

    Pick-complete events over AMQP

  • Quality ManagementFile serversruntime

    UNC path \\fs-01\qms

  • Quality ManagementActive Directoryidentity

    LDAP bind from qms-app-01

  • CRMERP (Infor LN)data

    Customer master sync, inferred from cron + JDBC

  • EDI GatewayERP (Infor LN)data

    Inbound 850/855 files landed on erp-app-01

  • Data WarehouseERP (Infor LN)data

    Oracle Data Pump + nightly ETL

  • Data WarehouseCRMdata

    PostgreSQL logical replica slot

  • Legacy reportingERP (Infor LN)data

    Read replica connection string

  • Intranet / SharePointFile serversruntime

    Content library on DFS share

  • Manufacturing ExecutionActive Directoryidentity

    Service account MES_PROD

  • Bastion / jump hostsActive Directoryidentity

    Admin group membership required

AWS target architecture

examples/acme-manufacturing/architecture.md

WorkloadDispositionTarget
ERP (Infor LN)ReplatformEC2 + Amazon RDS for Oracle, later evaluated for Aurora
Manufacturing ExecutionRehostEC2 in plant-adjacent VPC, low-latency path to OT network
Warehouse ManagementReplatformECS + Amazon RDS for PostgreSQL
CRMReplatformAmazon RDS for PostgreSQL + ECS
Intranet / SharePointRetainRemain on-premises pending M365 decision
Quality ManagementRehostEC2 + Amazon FSx for Windows
EDI GatewayReplatformTransfer Family + Lambda + S3
Data WarehouseRefactorAmazon Redshift Serverless + S3 + Glue

Cost analysis

examples/acme-manufacturing/costs.yaml

Estimated monthly AWS run rate $15,750. Assumptions and uncertainty are first-class fields — low-confidence lines are not presented as facts.

CategoryMonthlyConfidenceNotes
Compute (EC2/ECS)$6,400MediumRightsized from 30-day CPU/RAM samples where available
Managed databases$4,150HighRDS Oracle + PostgreSQL using observed storage and connections
Storage and backup$2,280MediumFSx + S3 + AWS Backup; 38 TB backup assumed warm
Data warehouse$1,620LowRedshift Serverless based on current ETL window; usage uncertain
Networking and transfer$890LowPlant-to-AWS latency path not yet measured on Direct Connect
Observability and identity$410HighCloudWatch, SSM, Managed AD evaluation

Risk register

examples/acme-manufacturing/risks.yaml

R1

Plant latency for MES

High

Manufacturing Execution · Keep MES in a regionally adjacent AZ and validate OT RTT before wave 3.

R2

Oracle license mobility

High

ERP (Infor LN) · Confirm BYOL terms before RDS for Oracle commit; flag as human decision.

R3

Inferred CRM ↔ ERP sync

Medium

CRM · Confirm job owner and failure mode before wave 4 cutover.

R4

Warehouse historical load

Medium

Data Warehouse · Pilot 90 days of history in Redshift before full 6 TB move.

R5

Print retirement dependency

Low

Print services · Retire only after vendor SaaS queues are in production.

Migration waves

examples/acme-manufacturing/waves.yaml

  1. Wave 1

    Foundation

    Identity, access, and observability that every later wave depends on.

  2. Wave 2

    Shared services

    Move shared platforms and retire unused print before line-of-business apps.

  3. Wave 3

    Plant operations

    Warehouse, quality, and MES after latency and identity are proven.

  4. Wave 4

    Core systems

    ERP, CRM, and warehouse refactor once dependencies are already in AWS.

Engineering backlog

examples/acme-manufacturing/backlog.yaml

Sample of 15 representative tasks from 93 generated items. Terraform and Ansible candidates are tagged so execution can start from the same dataset.

  • T-001

    Create landing-zone accounts, VPCs, and plant connectivity

    Wave 1 · terraform

  • T-002

    Deploy IAM Identity Center and break-glass roles

    Wave 1 · terraform

  • T-003

    Stand up domain controllers and validate replication

    Wave 1 · ansible

  • T-004

    Replace jump hosts with Systems Manager Session Manager

    Wave 1 · terraform

  • T-005

    Export Nagios checks and recreate in CloudWatch / Grafana

    Wave 1 · ansible

  • T-018

    Provision FSx and DFS namespace cutover runbook

    Wave 2 · terraform

  • T-019

    Enable AWS Backup and vendor S3 connector

    Wave 2 · terraform

  • T-024

    Build Transfer Family + Lambda EDI ingest

    Wave 2 · terraform

  • T-025

    Decommission print queues after SaaS acceptance

    Wave 2 · engineering

  • T-041

    Provision RDS PostgreSQL for WMS and validate extensions

    Wave 3 · terraform

  • T-042

    Ansible-cutover WMS app config, secrets, and health checks

    Wave 3 · ansible

  • T-055

    Rehost MES VMs and measure plant RTT

    Wave 3 · engineering

  • T-071

    RDS for Oracle sizing decision with license review

    Wave 4 · engineering

  • T-072

    Terraform ERP target VPC, RDS, and security groups

    Wave 4 · terraform

  • T-088

    Pilot Redshift Serverless with 90-day history

    Wave 4 · engineering

Evidence

examples/acme-manufacturing/evidence/

Fact → inference → recommendation

Observed on wms-db-01: PostgreSQL 15, 380 GB, standard connections, no unsupported extensions. Inference: managed PostgreSQL is compatible. Recommendation: replatform Warehouse Management to Amazon RDS for PostgreSQL. Human decision still required for cutover window and extension review.

Use the example, or run the assessment on your estate.

This is the output shape a completed assessment produces. The open-source project is coming soon. Level Up can operate the assessment, review the exceptions, and execute the backlog.

Request an AssessmentView on GitHub · Coming soon