If you use Azure products, API Management is a great solution. It solves many of the problems of externalizing web services. For example, when you need versioning, establish a developer portal and subscription keys. It provides a good UI for developer portals. The developer can register, request, and manage subscriptions easily in the portal. Another thing we liked was the high level of customization.
You can use API Management for back-end APIs. You can place the APIM in front to give extra layers of security. APIM is great for lift and shift migrations, too, by fine-tuning the policies in the APIM.
The downside is, first, the cost. You need to pay up front for the service. So if you are a small business, it can be expensive because the cost increases with each API. If you are already using Azure, you need premium Azure B2C to integrate with your system.
AWS API Gateway (API GW) might be better for organizations that already use other AWS resources. It is a great tool for web services development. If you need to integrate external tools, AWS API Gateway provides an extra security and authentication layer for front-end web services. For instance, as an HTTP front end for internal resources. We use API GW for front-end web services and to integrate static resources.
Although we are overall happy with API GW in terms of security and rapid development, it leaves some room for improvement. If you need to create a private API, it can be very difficult. Certifying clients can be a hassle, as well as trying to debug multiple services.
Azure API Management is a strong solution for large organizations, particularly if leveraging Azure products already. AWS API Gateway is more versatile and the pricing is better.
Which is better and why?
What do you recommend to take into consideration when choosing an API management solution to manage Microservices in a big enterprise?
Would you recommend an open-source solution?