PD AWS MySQL for WHMCS

PD AWS MySQL — Resell Fully-Managed MySQL Databases on AWS in WHMCS

Resell fully-managed MySQL databases on AWS — provisioned, billed and managed in WHMCS

Made and supported by Projektif Digital Ltd. Runs inside PD Modules, the panel every module installs into.

Databases

PD AWS MySQL lets a hosting company sell managed MySQL databases as its own product. Your customer orders in your WHMCS cart, a dedicated MySQL database is built in your AWS account, and your customer manages it from your client area: connection details, usage graphs, snapshots and a firewall, with no AWS console and no AWS login. You set the price, AWS bills you its cost, and the difference is your margin.

It is built for hosts who want a database line that sits beside their hosting plans, without building a control panel, without handing out AWS access, and without a ticket every time a customer needs a snapshot or has changed office IP address.

Why hosts choose PD AWS MySQL

A real MySQL server for every customer. Each order gets its own database instance, its own master credentials and its own firewall group. Nothing is shared between customers, not even with another installation that uses the same AWS account. The module also refuses to take over a database it did not create, so a database someone made by hand in your account is never adopted, managed or deleted.

Two ways to sell it, under one product line. Back a product with Amazon RDS for resizable, firewalled plans with optional high availability, or with a flat-priced Lightsail database for an entry-level offer. You can mix both, and the customer's page adapts: Lightsail databases show no firewall section, because they have none.

Your customers choose, and you price every choice. One click builds the cart options from your live AWS catalogue: region, plan, storage, high availability, public access and MySQL version. The versions offered are the ones AWS currently offers in your region. Every option starts at no extra charge and you set the prices.

A database the customer can really use. Host, port 3306, database name, username and password are on the customer's page, each with a copy button, plus a ready-to-paste mysql command that connects over TLS and verifies the server with the Amazon certificate bundle, which is one click away. The password stays masked until the customer reveals it.

Failures are visible, not silent. If AWS refuses an order, or the AWS account lacks a permission, the real reason is recorded for you and the customer is never left staring at "still provisioning" for a database that is not coming. Running a setup twice never creates a second database.

Nothing left billing. Terminating a service deletes the database together with its automated backups, its snapshots and its firewall group.

How it works

  1. Connect your AWS account. Add an access key once on a WHMCS server record. The secret is stored encrypted and never reaches a customer page. Test Connection makes one read-only call and creates nothing.
  2. Create your product. Add a WHMCS product, choose the module on its Module Settings tab and switch on automatic setup. Set the backing service, region, plan, storage and MySQL version, then press Generate plans to offer choices at checkout.
  3. Your customer orders. The database is built in the region and size they chose. While AWS builds it the customer's page says so, then fills in with the connection details by itself, usually within five minutes of AWS reporting it ready.
  4. You get paid, they manage it. WHMCS keeps billing as usual. Suspend, unsuspend and terminate follow your normal billing.
The customer's database page: status, power controls, connection details with copy buttons and a ready-to-paste mysql command
The customer's database page: status, power controls, connection details with copy buttons and a ready-to-paste mysql command

What you get in WHMCS

Selling and pricing

  • Cart options generated from the live AWS catalogue, linked to the product for you
  • RDS plans from the burstable db.t3 and db.t4g sizes up to the Graviton db.m6g sizes, plus flat-priced Lightsail bundles
  • Storage as a billable choice, from 20 GB on RDS
  • A "High availability (Multi-AZ)" choice that gives the customer a standby in a second zone
  • A "Publicly accessible" choice: switched off, the database is reachable only inside the AWS network; switched on, only from the IP addresses the customer allows
  • Any option you hide is fixed to the product's own setting, so the product stays complete
  • Sync with AWS hides options AWS has retired and adds new ones, without touching prices or existing customers
  • A name prefix for new databases, such as db-10037, which applies to new orders only

Provisioning you can trust

  • A paid order provisions with no admin step once automatic setup is on
  • Upgrading the plan resizes an RDS database in place and keeps its data; turning Multi-AZ on or off is applied in place too
  • A change that cannot be applied in place is reported to you as not applied, never accepted silently while the bill changes
  • Suspend stops the database, and it stays stopped even though AWS restarts stopped databases after seven days. The customer cannot start it while suspended. Unsuspend starts it again with its data

Running it day to day

  • Clients & Databases lists every database with its service, backing, plan, region, endpoint and live state
  • An activity log across every service for provisioning, resizes, snapshots and password resets
  • A report that checks your licence, the AWS SDK, and how many credential sets and databases you have
  • Read-only assistant tools that report a service's database state and list recent provisioning activity, with no way to create, resize, delete or restore anything

What your customers get

  • Start, stop and reboot from their own page, and a stopped database keeps its data
  • Password reset with the engine's real rules stated on the form (8 to 41 characters), and a bad password refused before anything is queued
  • Usage graphs for CPU, connections, freeable memory and free storage over the last 24 hours, drawn from AWS's own metrics
  • Snapshots taken in one click and deleted by the customer; the daily automated backups, kept for seven days, are listed beside them
  • A firewall of allowed IPv4 addresses and ranges, applied on the next scheduled run, with only the database port ever opened
  • Activity in plain words: the last 40 operations with time and outcome
  • Confirmation first for anything destructive, in a styled in-page dialog
Usage graphs: CPU, connections, freeable memory and free storage for the last 24 hours
Usage graphs: CPU, connections, freeable memory and free storage for the last 24 hours
Snapshots the customer takes and deletes themselves, with automated daily backups listed alongside
Snapshots the customer takes and deletes themselves, with automated daily backups listed alongside
Activity: the last operations on the database, each with its time and outcome
Activity: the last operations on the database, each with its time and outcome

Each of the Snapshots, Firewall, Connection details and Usage graphs pages is a switch on the product. Turn one off and it disappears from the customer's page, and the request is refused however it is made. You can also add your own text to the Overview, with the database name, status, host, port, region and plan filled in. The pages render natively on WHMCS's Six, Twenty-One and Nexus themes, and every word can be translated or reworded with override files that survive updates. Customers see only your brand.

Security built in

  • Your AWS keys live on the WHMCS server record, stored encrypted, and never appear on a customer page, in a message or in a log.
  • Database passwords are stored encrypted on the service, including one the customer sets with Reset password.
  • The module never opens anything but the database's own port, and only to the addresses the customer lists.
  • Your install is untouched: the module adds its own tables and templates, never modifies WHMCS files, and uninstalls without leaving orphans.

One product, every feature

PD AWS MySQL is one paid module with everything included. There are no tiers, no add-ons and no per-database fee from us: you pay AWS at cost and keep the margin. A managed database is a real, billable AWS resource from the first minute, so there is no free trial; price your plans with that in mind.

If your subscription ever lapses, your customers' databases are not touched. They keep running on your AWS account with their data. You get a 14-day grace period with everything working and a renewal reminder, then admin management locks while customers keep being served, and only after that do customer features pause behind a neutral "temporarily unavailable, please contact support" message that never mentions licensing. Renewing restores everything at once.

Requirements

  • WHMCS 9 or later on PHP 8.2 or later, with the ionCube Loader
  • An AWS account and an access key with the Amazon RDS permissions we list (plus the security group permissions every order needs, and Lightsail permissions if you sell Lightsail plans)
  • PD Modules, the free control panel every PD module installs into

Questions

Do I need my own AWS account?

Yes. You connect your AWS credentials once, and every client database is provisioned into your own account — AWS bills you, you bill your client through WHMCS, and the difference is your margin.

How does billing and margin work?

Databases run entirely on your AWS account at AWS cost, and you set the sell price on each WHMCS product. You keep the difference — the module never touches your billing or takes a cut.

Which database engines and families can I sell?

Managed MySQL on AWS, two ways: Amazon RDS for power plans (flexible sizing, an IP firewall, optional Multi-AZ high availability) and Lightsail Databases for simple flat-priced entry plans. You can offer both under one product line.

How do clients get their connection details?

Automatically. As soon as AWS reports the database available, the client area populates with the host, port, database name, username and password — no support ticket and no AWS console needed.

What happens to a client's database if they're suspended or cancelled?

You stay in control: suspension stops the database (nothing is deleted), and termination removes the database together with its backups and snapshots so nothing is left billing. To keep a copy, copy a snapshot under a new name in your AWS console before you terminate.

Is this one price or lots of tiers?

One paid product with every feature included — provisioning, connection details, snapshots, backups, firewall, power controls and metrics. No confusing add-ons.

What happens if my subscription lapses?

Nothing of yours is touched, and nothing is deleted. The module steps down in stages instead: a 14-day grace period where everything still works and you get a renewal reminder, then admin management locks while your customers carry on being served, and only after that do the customer-facing features stop — behind a neutral "temporarily unavailable, please contact support" message that never mentions licensing to your customer. Anything the module provisioned keeps running in your own account throughout, and your data and settings stay exactly where they are. Renewing restores everything immediately.

Which WHMCS and PHP versions does it need?

WHMCS 9 or later, on PHP 8.2 or later. It installs alongside whatever else you run — it adds its own tables and templates rather than modifying WHMCS files, so it does not collide with other vendors' modules or with a customised theme. Uninstalling removes its own tables and settings and leaves no orphans behind.

What’s new in 0.4.84

  • Suspending or unsuspending a database that is busy with another operation (a backup, a password change) no longer fails: the request is queued and applied automatically as soon as the database allows it, so a suspended service is always stopped and a paid-up one always restarted.
  • Adding or removing an address on the firewall page now keeps the other allowed addresses; a change could clear the whole list.
  • Creating a service again while its previous database is still being removed now says so, instead of reporting it created.
  • Suspend and Terminate always work, whatever the state of your PD Modules licence.
  • Product setup messages show screen names in bold rather than wrapped in asterisks.
  • A reset password now appears in the customer's connection details. Features you switch off, and suspended services, are refused rather than hidden. Upgrades apply in one step after the safety snapshot, high availability included. An order never takes over a database it did not create. Terminating also removes the database's snapshots. Lightsail databases show every usage graph.
  • The Rebuild warning now says prices go back to their generated starting price (zero where none is suggested).
  • Setup guidance and connection checks name the right screens for your billing platform.
  • Removing generated options now explains why when it can't, and generating them says how prices start.
  • Your Blesta packages for this module appear on the Products screen, ready to generate options.
  • Generate this module's order options for a Blesta package in one click, as on WHMCS; rebuilding them keeps the choices your existing customers made.
  • Customers see only the service pages their plan includes, on Blesta as well as WHMCS.
  • Links on this module's screens open the right client, service and product pages on every platform.

Get your website online with PD Hosting

UK hosting, domains and support from a real team. From a first site to a full server.

Terms and Conditions  ·  Privacy Policy

PD Hosting is the trading name of Projektif Digital Ltd, registered in England and Wales, company number 12482555.

PD Hosting
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.