Table of contents of the article:
We contact about 4 times a week Amazon AWS consultingOf these requests, approximately half come from companies that would like to migrate their services to Amazon AWS, and approximately half from companies that would like to reduce Amazon AWS costs, possibly by migrating elsewhere.
It's pretty obvious, then, that there are two similar trends: those who would like to migrate to AWS have never heard of it before and therefore seek external help, while the second group who would like more sustainable costs are companies that are in their first or second year of using Amazon AWS.
Very often it happens that the service is put online by the technical staff following the project, and that the owner company blindly trusts the choices made by the IT department, doing what we are used to doing every day of our life: delegating.
When delegating, in fact, the first requirement is that of TRUST. If there is no trust, one cannot certainly delegate. However, in a vast, complex and constantly evolving field such as Information Technology, human trust in people does not always correspond to the competence possessed by the person who will go to do the job.
The very expensive Amazon AWS bill.
It happens, therefore, that by going to check the budgets, perhaps in a moment of contraction in consumption, we go to re-evaluate the costs of that supplier that until the month before ended up in accounting and paid on time without asking too many questions.
$ 10 a month to keep a cosmetics e-commerce site online?
This must have been more or less the question posed by the new figure in charge of marketing (mind you, not the administration, the CEO, the IT department, or the top management) but rather the Marketing, when having to "recover" the budget for advertising campaigns and online advertising, he went to check costs by finding at least curious if not suspicious this invoice below.
Obviously as a practice, we conceal the identity of the client for correctness and professional secrecy, but we want to share with you some considerations regarding a case that we could define as common, rather than specific, considering the similarity in many other cases.
We are talking about an invoice of over 10 thousand dollars, which at the exchange rate at the time (a year ago) corresponded to about 9 thousand euros, today, with a disadvantageous euro dollar exchange, the cost to be paid would be about 1200 euros more 10 thousand and 200 euros, all to run a cosmetics e-commerce written in PHP and MySQL that makes about 150 thousand visitors a month, and about 600 thousand page views.
One could ignore this by saying that, as we all know, Amazon AWS costs a lot and, after all, it's normal for it to cost tens of thousands of euros.
However, the invoice is made up of items that if examined carefully allows us to understand real anomalies that would allow us to save at least 60% of the expense simply by replacing one service with another.
Over $ 7000 a month to run MySQL on Amazon Aurora
Amazon Aurora is a relational database service developed and offered by Amazon Web Services starting October 2014. Aurora is available as part of Amazon Relational Database Service (RDS).
Amazon designed Aurora to be compatible with MySQL, which means you can use tools to query or manage MySQL databases (such as the command line client mysql and the MySQL Workbench graphical user interface). As of December 2021, Amazon Aurora is compatible with MySQL 5.6, 5.7 and 8.0. It supports InnoDB as a storage engine.
It may sound absurd, but when we looked at the bill we didn't want to believe our eyes. Over 70% of the costs were attributable to the DBMS service AWS Aurora MySQL.
The invoice speaks very clearly, 7 thousand and 68 dollars to run a DB.R5.4xLARGE instance for Aurora MySQL.
What is a DB.R5.4xLARGE instance and what does it consist of at the hardware level? Have you ever wondered? Have they ever wondered? Amazon AWS tells us directly on their website:
https://aws.amazon.com/it/rds/instance-types/
We are therefore talking about an 8core / 16 thread instance with 128GB of RAM.
Intel Xeon® Platinum 8000 series processors up to 3,1 GHz (Skylake 8175M or Cascade Lake 8259CL) with new instruction set for Intel Advanced Vector Extensions (AVX-512)
The plausible alternative to Amazon AWS.
Something similar could easily be replaced by a dedicated physical Server on which to run Percona Server or Maria DB with dedicated support.
If we take the following configuration as an example, we are faced with exactly double the physical cores (and obviously the threads) with a 5Ghz clock cycle compared to the 3 of the instance on Amazon AWS.
Does it make sense to spend 7000 euros, instead of 185 (let's also imagine it was 500 euros for system assistance, to round up to 1000 for various and any)? In the worst case scenario, does it make sense to spend 7000 euros instead of 1000?
If the answer is yes, the benefits should be seen. Let's look at the most common objections from those who say AWS Aurora MySQL is always the best choice.
Amazon never goes offline and has 100% uptime.
This claim is baseless and unsupported by objective evidence. Just search for "Amazon AWS Uptime" or "Amazon AWS Down" on a search engine to see several incidents, some serious, that have taken entire portions of networks or services offline, often due to human error.
Certainly a problem that can concern everyone, and not exempt from understanding and excuses, however if you are willing to pay 7000 euros instead of 185, the added value must be tangible, and downtime is not among the options granted, allowed or tolerable.
Amazon AWS Aurora MySQL is faster than MySQL, Percona Server, or MariaDB.
This statement is a very general statement that must necessarily be taken with a grain of salt. First of all because it is necessary to understand what period it dates back to, for example in 2015 it was certainly true and unobjectionable that Aurora MySQL was the best choice in terms of performance, but today there are also public benchmarks and analyzes that show and demonstrate that this GAP believed unattainable, it has been largely filled by both MySQL, Percona Server and MariaDB.
For example the conclusions drawn from SQLPipe in the comparison between the various MySQL forks they state that:
MySQL: 16.855 orders processed per minute, 50.945 transactions per minute
MariaDB: 23.347 orders processed per minute, 76.866 transactions per minute
Aurora: 15.781 orders processed per minute, 47.517 transactions per minute
HammerDB extension reported two central figures for us: the number of orders our OLTP system was able to process per minute, as well as the number of database transactions needed to get there.
If you plan to run an RDS instance with 4GB of RAM and your workload is similar to what this benchmark runs, MariaDB is the best choice. It processed 38% more orders than MySQL and 48% more than Aurora.
I found this surprising result! I thought Aurora would be top in terms of performance, but it was pretty much on par with MySQL for this specific workload. The lack of a performance advantage is particularly noticeable when considering the cost.
So what is the reason for the popularity of AWS if there aren't always real advantages in terms of performance and costs?
Much of Amazon AWS's fame is due to the well-deserved results achieved by their hardware and software infrastructure which, despite its global reach, has been able to respond to the increasingly stringent needs of players like Spotify, Netflix and companies of this caliber in the Fortune 500, who saw Amazon AWS services as their only alternative to running services that would have required "reinventing the wheel" at much higher costs than renting a ready-made one.
Distributed computing power and hyperscaling from hundreds of thousands of instances to tens of millions of instances in seconds, are features and prerogatives only possible for Amazon and a few players of their caliber such as Microsoft Azure or Google Cloud.
Going from hundreds of Gigabits of bandwidth to hundreds of Terabits without having to upgrade the instances, is another unparalleled added value, only possible on realities of this caliber and caliber.
It therefore appears correct and probable to use an enterprise-class service, regardless of real needs, especially where the buyer is a CEO who has little to do with systems or development matters, and wants to make the choice of the market also from a perspective to safeguard and protect one's choices.
In short, it is easy to indemnify yourself from hypothetical personal responsibilities, choosing what is the de facto top player on the market, and not be attributable to errors, or bad evaluations in the face of a down, simply by saying that you have made the choice of the market, this sentence , which until about ten years ago was summarized in:
No one has ever been fired for buying Microsoft.
In the real IT world of small and medium-sized businesses.
When we see situations like the ones above, where to run an e-commerce created in PHP / MySQL / Javascript, we resort to Amazon AWS with costs like those listed above, we wonder if actually today in the IT world there is awareness and knowledge of the facts in what you are doing.
A bit like going to a restaurant for dinner in the company of a sweet girl, and not being an expert in wines, the waiter is left with carte blanche to propose a suitable wine to match the dishes ordered.
Imagine seeing the bill arrive, and you find a bill of 5000 euros, of which 4600 for a Sassicaia wine from 1985.
You easily understand that something is wrong, that you cannot offer a service of excellence where there are no real benefits in using it if not disproportionate costs without any added value. If what I do with a $ 200 dedicated server, I do even better than with Amazon Aurora DB, why do I have to spend crazy bucks on AWS?
The reasons do not exist, and it is the main thrust why once the costs have been analyzed, we get to ask for help to solve problems that could have been brilliantly solved elsewhere, with similar but different technologies.
Whose responsibility is this growing trend?
There is no single answer because there are no unique cases. Each case is a case in itself, just as each company is a company in itself. However, we are of the opinion that the decision-making power in the technological field should not be delegated to a single figure and a single opinion, but rather assessed serenely and without conflicts of interest between several technical figures, keeping in mind both the part concerning the quality of the service that obviously also the economic part.
The management must obviously take this situation into account and be able to evaluate what is the final result of the solutions recommended by the consultant on duty, understanding whether the costs are actually in line with the budget for the IT infrastructure and it is sustainable on the long term.
Improvised DevOps and Full Stack Developer.
We constantly see, every day valid figures under 30, try their hand at countless tasks and skills. Frontend, Backend, PHP, Node.js, MongoDB, MySQL, really a myriad of skills and competences that suggest that it is not possible to know everything perfectly.
Sons of a historical moment, in which terminologies such as SaaS, PaaS, are now on the agenda, compared to the previous one in which we were going to develop in C, and set up servers and web servers locally in order to serve applications and services.
In a world where the modus operandi becomes: "buys a ready-made solution, which the final customer then pays for it“, It is equally normal to see services billed at their weight in gold and“ F1 Ferraris bought as cars for those who need to go shopping ”.
Unfortunately, there is a lack of culture and true, pure systems analysts, those who use Enterprise-level Cloud systems if and only if they deem it convenient compared to in-house or hybrid solutions.
The question of what the alternative to Amazon AWS could be is no longer being asked, given that Amazon AWS now seems to be the starting and finishing point for this new generation of “system administrators,” who do (badly) a bit of everything.
For our part, we always try to serve the client's interests, putting profit in second place, and considering it a mere "side effect" as well as a consequence of doing one's job well, taking care both to get our hands dirty in finding the more complex but more convenient for the customer to follow, both in dispensing articles, posts, case studies like this in the hope of being able to provide information and demonstrate how the most adopted solution is not always the most convenient one.
Looking to save on Amazon AWS costs?
Our Amazon AWS consulting service will allow you to significantly save money and optimize your service costs. We are experts in cost analysis and identifying savings opportunities, and we use advanced tools to monitor AWS service usage in real time and identify any waste. We can also advise you on how to optimize your use of AWS services to maximize their capabilities and reduce unnecessary costs. Thanks to our experience and in-depth knowledge of AWS services, we can provide personalized consulting and support you in implementing efficient and cost-effective solutions. Whether you're a small or large business, our Amazon AWS consulting service will help you save time and money, allowing you to focus on your core business.