I would point out that Oracle's Egress is $0.008 per GB, based on their estimator.

That makes a hybrid cloud (on-premises/cloud) more than doable -lots more flexibility. The rest of the cost structure is transparent, with industry leading pricing and performance (take a look at HeatWave for an example of this).

As a cloud advisor, I often see a lack of proper due diligence in cloud adoption decisions. The typical cloud decision is made at the CFO or CIO level without full visibility into the cost of complex application delivery.

These are not stupid people. My take is that a deliberate fog is created with many cloud vendors to obfuscate the true cost of business.

Three blindsides hit the executives.

One, performance at production scale require ala carte additions for reasons outside of the workload's demands.

A case in point, a cloud vendor required an 8 vCPU instance to equal the performance of a four core, on-premises box at production workloads. The storage driver ate half of the available CPU and IO traffic was routed over a single vNIC shared with application traffic. This was unexpected by the customer -something hidden in the vendor's implementation.

Two, lack of transparency, leads to billing surprises.

Another of my clients budgeted $45k for a 3 month production cloud deployment test. The CFO had an anti-pleasant meeting with the CIO when the first month's bill hit $40k. The cause was egress charges. The experiment ended and they stayed on-premises. At least they had tried the workload at production scale.

The third is cloud 'divorces' are almost never considered. The cost of 'divorce' is extremely high, cost prohibitive in many cases but not just for egress fees.

For instances a client using a cloud native database found initial performance good for inserts, but after time query performance became unacceptable.

The promised scaling was not there. Fortunately the lesson was learned while egress was 'affordable' for moving 2TB of production data out. The pain came into play with the additional computing resources needed to export (not copy out) the data out for repatriation.

Insult was added by maintaining two production environments for the 10 days to perform the export and required expertise to implement it. That was for one application's analytic database. Now imagine moving full technology stacks for multiple critical application.

How would I avoid the issues:

1. If billing isn't fully transparent, then move to another vendor.

Too often, a small application gets to a $100k annual spend, the cloud vendor give a fair discount at this point. Once the spend hits a $1m, usually to compensation for vendor deficiencies at production scale, there is no additional assistance offered. The vendor has you exactly where they want you and your are locked. Greater discounts for 3 year terms you say, you've got three years of sub par service and get to spend more money to solution yourself out of the hole.

2. Test at production workloads. Does the spend match what you need or do you need ala carte upgrades to get you where your workload's performance needs to be today and out years?

On then other hand are you paying for the architectural deficiency of the vendor compared to your current as built.

3. If you are dissatisfied with the quality of product or more importantly the level of service, can you just leave then and there?

A quality cloud vendor will create a great experience pre and post sale. The will not create artificial barriers to departure.

The golden rule for a valued cloud vendor is, "I have to prove myself, every day, in every way to keep my customer for tomorrow."

If you sense that isn't the demonstrated action of a perspective or current cloud vendor -move along.