1.6 AWS Support Plans: Developer, Business, Enterprise On-Ramp, Enterprise
Right, let’s talk about AWS Support. This is where you decide how much hand-holding you want, or more accurately, how much you’re willing to pay for someone at AWS to throw you a rope ladder when you’ve built your own trap and fallen into it. It’s not a feature; it’s an insurance policy and a concierge service mashed into one. The fundamental, often painful, truth is that the free support you get on the Basic plan is essentially “you can read the docs and use the forums, good luck.” For anything resembling a real workload, you’re going to need to open your wallet.
The Four Tiers of Panic Buttons
AWS offers four paid plans: Developer, Business, Enterprise On-Ramp, and Enterprise. The names are mostly self-explanatory, but the devil, as always, is in the details—and the response times.
Developer is the “I’m experimenting, but I’d like the option to ask a semi-intelligent human a question” tier. It’s cheap. The key thing to know here is that their target response time for a general guidance case is < 24 business hours. Let that sink in. If you’ve accidentally nuked a production database at 5 PM on a Friday, you are officially having a very bad weekend. Use this for dev/test accounts, never for production.
Business is the “Okay, this is a real company with real customers” plan. This is the minimum for any production workload. The magic phrase here is “production system impairment.” This is a severity level that gets you a target response time of < 1 hour. They also throw in a bunch of useful perks like a Trusted Advisor that actually gives you full checks (not just the 7 basic ones) and an API to create support cases, which is critical for automation.
Then you have Enterprise On-Ramp and Enterprise. These are for the big leagues. The main difference is in the response times for critical issues ("production system down"). On-Ramp targets < 30 minutes, while full-blown Enterprise targets < 15 minutes. They also assign you a Technical Account Manager (TAM), who is your personal AWS sherpa. This person is worth their weight in gold if you’re running a complex, multi-service architecture. They provide proactive guidance, help you plan deployments, and can navigate the vast AWS org on your behalf.
The Billing Quirk You Absolutely Must Understand
Here’s the absurd part that everyone misses until they get the bill: AWS Support is billed as a percentage of your total AWS spend. Not a flat fee. Not per-case. A percentage.
This is both genius and infuriating. It means if you have a massive spike in usage (say, you go viral and your S3 and CloudFront bills shoot up), your support bill spikes right along with it. The upside is that it scales with your business. The downside is it can feel like a surprise tax.
Let’s say you’re on the Business plan (10% of monthly usage, min $100). You have a crazy month and your AWS bill hits $10,000. Your support fee that month will be $1,000. Yes, you read that right.
There is no code to run for this, but here’s how you’d calculate it in Python if you were building a cost-estimation tool. This is a critical best practice.
def calculate_support_cost(aws_bill, support_plan):
"""
Calculates the monthly AWS Support cost.
aws_bill: Your total AWS bill for the month (float)
support_plan: Dictionary with 'rate' (float) and 'min' (float)
"""
calculated_cost = aws_bill * support_plan['rate']
return max(calculated_cost, support_plan['min'])
# Plan definitions (simplified)
business_plan = {'rate': 0.10, 'min': 100} # 10%, $100 minimum
enterprise_plan = {'rate': 0.03, 'min': 15000} # 3%, $15,000 minimum
last_months_bill = 8500.00
support_fee = calculate_support_cost(last_months_bill, business_plan)
print(f"Your AWS Support fee will be: ${support_fee:.2f}")
# Output: Your AWS Support fee will be: $850.00
When and How to Actually Use Support
The single biggest pitfall is not using the support you’re paying for. People are often weirdly shy about creating tickets. Don’t be. You’re paying for it.
The second pitfall is creating a ticket with the wrong severity. Be honest. If your entire user base can’t log in, that’s “Production System Down” (Critical). If a non-critical background process is failing, that’s “Production System Impaired” (Urgent). If you mis-categorize, you’ll get a slower response, and rightfully so. Here’s how you’d use the AWS CLI to create a high-severity case—a lifesaver if your GUI access is borked.
# Create a critical support case about a production outage
aws support create-case \
--subject "Production API Down - Urgent" \
--communication-body "Our primary API hosted on EC2 in us-east-1 is returning 500 errors for all requests. The instance appears to be unreachable. This is a full production outage." \
--severity-code urgent \
--category-code "service-limit-increase" \
--issue-type "customer-service"
Best practice: Be specific. Include resource IDs (e.g., i-1234567890abcdef0), error messages, and what you’ve already tried. The support engineer isn’t a mind reader, but they are very good at their job if you give them the right clues.
Ultimately, your choice is simple: If losing access for a day would be an inconvenience, Developer is fine. If it would cost you real money, get Business. If it would be a company-ending event, you need Enterprise and the direct line to the TAM that comes with it. It’s that direct. Now go make a choice before something breaks.