{"id":241,"date":"2026-10-15T06:38:52","date_gmt":"2026-10-15T05:38:52","guid":{"rendered":"https:\/\/arrowlancer.ma\/blog\/?p=241"},"modified":"2026-10-15T06:38:52","modified_gmt":"2026-10-15T05:38:52","slug":"aws-migration-quote-morocco-2026","status":"publish","type":"post","link":"https:\/\/arrowlancer.ma\/blog\/en\/aws-migration-quote-morocco-2026\/","title":{"rendered":"AWS migration quote Morocco 2026: what to check before you sign"},"content":{"rendered":"<p>A twelve-page AWS migration quote, with instance types, a service table and a wave-by-wave schedule, can be less reliable than a one-page one. The detail is reassuring, but it covers the part that is easiest to price: the machines. The amounts that actually break a cloud budget sit elsewhere, in lines the calculator never puts on screen.<\/p>\n<p>With a quote on your desk, the useful question is not whether it looks expensive. It is what has been left out and will be invoiced anyway. The gaps turn up in roughly the same places every time, and an hour of careful reading finds them.<\/p>\n<h2>A very detailed AWS quote can still be very incomplete<\/h2>\n<p>The format is almost always identical: assessment phase, migration phase, run phase, then a single line called \u00ab estimated AWS cost \u00bb with one monthly figure. Nothing jumps out when you read it, and that is the issue.<\/p>\n<p>The warning signs are visible straight away. The AWS region is not named. No line mentions data transfer. No volume assumption is written down. The monthly figure appears without saying whether it reflects on-demand pricing or a one-year or three-year commitment. And nothing states what happens if the real invoice lands 40% above the estimate.<\/p>\n<p>That last point tells you the most. A provider who has migrated several SMEs knows a consumption estimate is a hypothesis, not a price. They write it down, bound it, and propose a review mechanism after three months. A bare number usually means the provider has not yet lived through a client&#8217;s first invoice. The reading habits that apply to any <a href=\"https:\/\/arrowlancer.ma\/blog\/en\/it-quote-morocco-read-before-signing-2026\/\">IT quote in Morocco<\/a> apply here too, with an extra layer: usage-based billing that behaves like nothing else you buy.<\/p>\n<h2>The calculator price is not the invoice price<\/h2>\n<p>AWS Pricing Calculator is a good tool as long as it stays a tool. Trouble starts when its output becomes the \u00ab monthly cost \u00bb line of the quote directly. The calculator prices only what you ask it to price, and a consultant in a hurry asks it for EC2 instances, EBS storage and an RDS database.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/storage.googleapis.com\/arrowlancer-prod.firebasestorage.app\/blog-ma\/devis-migration-aws-maroc-2026\/1.jpg\" alt=\"AWS migration quote Morocco 2026: what to check before you sign\" loading=\"lazy\" \/><\/p>\n<p>What is missing almost every time: the AWS support plan, billed as a percentage of consumption with a monthly minimum (check the current tiers on the AWS support page), the NAT Gateway charged both per hour and per gigabyte processed, cross-availability-zone traffic, EBS snapshot growth, CloudWatch log ingestion, load balancer capacity units, Windows Server or SQL Server licensing, and the staging environments nobody counted even though they will run around the clock.<\/p>\n<p>Two specifically Moroccan lines belong here as well. Billing in a foreign currency, which puts exchange-rate exposure on a budget approved in dirhams. And the tax treatment of services bought from abroad: have your accountant confirm how VAT applies before you commit a figure to an annual budget.<\/p>\n<p>The fix is one request. Ask for the calculator export or share link, not the figure retyped into a document, together with the written assumptions: region, hours per month per environment, storage volume, outbound volume.<\/p>\n<h2>AWS egress fees, the line nobody asks to price<\/h2>\n<p>Moving data into AWS costs nothing. Moving it out is billed per gigabyte beyond a modest monthly allowance, at a rate that depends on the region and the destination. It is by far the most poorly anticipated mechanism in the quotes we are asked to review.<\/p>\n<p>The painful cases are easy to recognise in a Moroccan SME. An ecommerce site or a media outlet serving images and video from S3 to visitors in Morocco. Nightly backup replication to a NAS at head office or to another host. A hybrid setup where the ERP stays in Casablanca and talks constantly to cloud services. Daily extracts feeding an external BI tool. In those situations outbound transfer can account for a double-digit share of the monthly bill, and it grows as the business grows.<\/p>\n<p>What to demand: an estimated outbound volume in gigabytes per month, the matching cost line, and the architectural answer that goes with it (a CDN in front of object storage, compression, consolidated backups, chatty components placed in the same zone). Ask about the final exit too. AWS has a process for free data transfer when a customer leaves the platform, subject to conditions and on request. The quote should say who handles it the day you decide to leave, and where you would go.<\/p>\n<h2>On-demand priced, reserved forgotten<\/h2>\n<p>This line gets it wrong in both directions, and both versions cost you money.<\/p>\n<p>First case, everything is priced at on-demand rates. The quote looks high, you negotiate on consulting days instead of discussing commitments, and a year later you are still paying full price for servers that were never switched off. Savings Plans and reserved instances over one or three years cut the hourly cost of steady workloads significantly, and a production database or a line-of-business application server is a steady workload by definition.<\/p>\n<p>Second case, more insidious: the provider prices everything at a three-year all-upfront commitment to show an attractive monthly figure. You approve an architecture before testing it, then discover six months in that your instances are twice the size they need to be. The commitment still stands.<\/p>\n<p>The right format has two columns. On-demand cost for the first three to six months while real consumption is observed, then cost after commitment, with the review date and the name of whoever makes that call. Check which account the commitment lives in, too. Many Moroccan partners resell AWS and invoice in dirhams, which makes accounting easier. Ask in writing whether the commitment discount is passed through to you, and whether the account stays transferable to your own name.<\/p>\n<h2>Application refactoring, the phase that never appears<\/h2>\n<p>Migration quotes like to break work into infrastructure batches: so many servers, so many databases, so many days. The application appears nowhere, even though it decides whether the migration holds up.<\/p>\n<p>The classic blockers show up within half a day of reading code: sessions stored on the local disk, uploaded files written next to the code instead of object storage, scheduled jobs tied to one specific machine, hardcoded IP addresses in configuration, a PHP or Java version that is out of support, SQL Server or Oracle licensing whose terms change the moment you virtualise on third-party hardware, no health check endpoint, which makes autoscaling unusable.<\/p>\n<p>Moved as is, the application works. It simply costs more than quoted because it has to be oversized, it gains no elasticity, and the first incident gets fixed by hand on a Sunday evening. Insist on an application assessment line with a stated decision per application: rehost, replatform, refactor, replace with SaaS, or retire. Plus a separate estimate for code fixes, even a rough one. A provider who refuses to look at the code before pricing the migration is pricing thin air.<\/p>\n<h2>AWS migration quote Morocco: the real 2026 ranges<\/h2>\n<p>These orders of magnitude exist to spot an inconsistency, not to set a price. A large gap in either direction deserves a written explanation.<\/p>\n<ul>\n<li>Assessment and migration plan (inventory, dependencies, target architecture, cost estimate): 25,000 to 80,000 MAD depending on how many applications are in scope.<\/li>\n<li>Rehost-style migration, around fifteen servers and two or three databases, no rework: 150,000 to 400,000 MAD.<\/li>\n<li>Migration with replatforming (managed databases, containers, a deployment pipeline, backups and monitoring rebuilt): 400,000 MAD to more than one million dirhams.<\/li>\n<li>Monthly operations and cost management after cutover: 6,000 to 25,000 MAD per month depending on scope and availability commitments.<\/li>\n<li>AWS consumption itself, for a typical SME workload (ERP, website, a few internal services): often 5,000 to 30,000 MAD per month, heavily driven by storage and transfer.<\/li>\n<\/ul>\n<p>These markers line up with what we set out on <a href=\"https:\/\/arrowlancer.ma\/blog\/en\/cloud-migration-morocco-cost-timeline-2026\/\">cloud migration cost and timelines in Morocco<\/a> and in the <a href=\"https:\/\/arrowlancer.ma\/blog\/en\/cloud-hosting-morocco-cost-2026\/\">cloud hosting budget guide<\/a>. If a quote promises a full migration for 60,000 MAD, the application work is not in it. If it asks two million for fifteen servers, get the breakdown in person-days by profile before discussing anything else.<\/p>\n<h2>CNDP and hosting outside Morocco: what the quote must spell out<\/h2>\n<p>AWS runs no region in Morocco. Your data will therefore sit in Paris, Ireland, Frankfurt, Bahrain or elsewhere, depending on the region chosen. As soon as personal data is involved (customers, employees, applicants, patients), that transfer falls under Law 09-08 and requires a filing with the CNDP on top of declaring the processing itself. The procedure, the forms and the list of countries concerned should be checked on the CNDP website, which keeps them current.<\/p>\n<p>A serious quote names the primary region and the backup region, lists which services store data, states where backup copies land, attaches the provider&#8217;s data processing agreement, and says who prepares the CNDP file: you, the provider, or an outside adviser, and for how much. In a regulated sector such as banking, insurance or healthcare, bring your supervisor&#8217;s requirements into the conversation before picking a region rather than after.<\/p>\n<p>This is also the right moment to settle the sovereign cloud versus AWS question, instead of revisiting it six months after cutover. For some sensitive processing, a local offer or a mixed architecture makes the compliance file considerably lighter. Our <a href=\"https:\/\/arrowlancer.ma\/blog\/en\/morocco-sovereign-cloud-comparison-2026\/\">comparison of sovereign cloud options in Morocco<\/a> and the <a href=\"https:\/\/arrowlancer.ma\/blog\/en\/morocco-cndp-law-09-08-compliance-checklist-2026\/\">CNDP compliance checklist<\/a> give the decision criteria. At minimum the quote should show the trade-off was made, not sidestepped.<\/p>\n<h2>Six lines to demand before you sign<\/h2>\n<ol>\n<li>The target AWS region and the backup region, named.<\/li>\n<li>The consumption assumptions: hours per environment, gigabytes stored, gigabytes out per month, with the calculator export.<\/li>\n<li>The monthly cost in two versions, on-demand then committed, with the review date.<\/li>\n<li>The AWS support plan selected and how it is billed.<\/li>\n<li>The application assessment and the cost of code fixes, application by application.<\/li>\n<li>Compliance and reversibility: CNDP file, processing agreement, backup location, export format and lead time if you leave.<\/li>\n<\/ol>\n<p>Add a seventh request, less technical but decisive: who signs the consumption commitment, and whose name the AWS account stays in. Problems on that point never surface at signature. They surface the day you change provider.<\/p>\n<h2>Before you send the signed quote back<\/h2>\n<p>Having an AWS migration quote reviewed takes a few days and costs a fraction of the gap it prevents. It is part of what the cloud and infrastructure team at Arrowlancer does: quote audits, architecture that fits your CNDP obligations, the reserved versus on-demand call, then the migration itself once the target is clear (see our <a href=\"https:\/\/arrowlancer.ma\/en\/#services\">services<\/a>). If you have a document in hand and doubts about two or three lines, <a href=\"https:\/\/arrowlancer.ma\/en\/#contact\">send it over<\/a> and we will tell you what is missing.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A detailed AWS migration quote can still miss the lines that decide the budget: data egress, reserved pricing, application refactoring and hosting outside Morocco.<\/p>\n","protected":false},"author":0,"featured_media":242,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[119],"tags":[920,60,923,63,926],"class_list":["post-241","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cost_and_planning-en","tag-aws-migration-en","tag-cloud-en","tag-cloud-cost-morocco-en","tag-cndp-en","tag-it-quotes-en"],"_links":{"self":[{"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/posts\/241","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/comments?post=241"}],"version-history":[{"count":1,"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/posts\/241\/revisions"}],"predecessor-version":[{"id":244,"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/posts\/241\/revisions\/244"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/media\/242"}],"wp:attachment":[{"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/media?parent=241"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/categories?post=241"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arrowlancer.ma\/blog\/wp-json\/wp\/v2\/tags?post=241"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}