Skip to main content

Migrating Azure API Management to STv2: A Practical Guide

If you're using Azure API Management (APIM) services, you've likely seen this message: "Support for the single-tenant v1 (STv1) platform ends on 8/31/24. Migrate instances before that date to the new platform version (STv2) for continued support and access to new features."

This announcement highlights the urgency of migrating to STv2. To ensure a smooth transition, it's crucial to analyze our architecture, understand technical constraints, explore possible approaches, and assess risks. Here’s a summarized guide on how I managed the migration using the VNET-injection method.

My Case: APIM with Dedicated Public IP and Subnet

Configuration:

  • APIM with a dedicated public IP and a dedicated subnet.
  • Assigned private IP with NAT in a controlled VNET.
  • Need to maintain IP addresses and DNS.

Issues:

  1. APIM migration requires a new public IP, new subnet with private IP, new DNS, and new NSG.
  2. APIM instances acquire IP addresses randomly, complicating existing firewall rules, NSG, and NAT configurations.

Options:

  • In-Place Migration
  • Parallel Setup

Target:

  • In-Place Migration with the ability to roll back to the original subnet with NAT IP.

Migration Process

Before Migration:

  1. Take screenshots of every configuration of APIM STv1 instances.
  2. Create a new public IP, new subnet, new NSG, and new DNS for the APIM STv2 instances.

During Migration:

  1. Release and migrate the APIM STv1 instance to the new subnet.
  2. Create dummy NICs in the original subnet before the IP address of the APIM instance. For example, create 5 dummy NICs to get IPs from 10.10.10.5 to 10.10.10.9 if the APIM instance needs to acquire 10.10.10.10 (Azure reserves 10.10.10.1 to 10.10.10.4 by default).
  3. Once the dummy NICs are provisioned and occupy the IP addresses in the original subnet, wait for the APIM upgrade to STv2 (this took about 45 minutes).
  4. Move the APIM STv2 instance back to the original subnet and ensure it gets the previously assigned IP address.
  5. Verify that the APIM STv2 instance has the original IP. This avoids modifying firewall rules, NAT, and NSG if all steps go well.
  6. Test all your application APIs to ensure successful migration.

In my case, the migration was completed in less than 4 hours with no issues. Remember to delete any resources created temporarily for migration to avoid unnecessary costs.

Automation and Final Thoughts

I highly recommend automating the migration using Infrastructure-as-Code, especially for provisioning dummy NICs to ensure the APIM instance retains its IP address. In my scenario, the APIM IP was assigned as the first available IP in the subnet, requiring minimal dummy NIC creation. However, if your APIM instance uses the last available IP in your subnet, automation will be crucial to save time.

Conclusion:

The cloud environment is rapidly evolving. Migrating to STv2 ensures continued support and access to new features. This guide offers a practical approach to migrating APIM to STv2 without impacting users. Stay updated and leverage the latest cloud innovations for optimal performance.

For more details, visit the Microsoft documentation.


Thank you.

(Be knowledgeable, pass it on then)

Comments

Popular posts from this blog

Fortigate guide for Begineer - 6

I would like to explaine how to troubleshoot the Fortigate Unit configured by Transparent Mode in step by step this time. Let's assume, you have one Fortigate Unit that configured as Transparent Mode. But devices from Internal/Private Network unable to access Internet/Public Network through your Fortigate Unit. OK. Let's troubleshoot with following steps, 1) Check the physical network connections between the network and the FortiGate unit, and between the FortiGate unit and the Internet. 2) Check the router and ISP-supplied equipment to make sure it is operating correctly. 3) Verify that you can connect to the internal interface by connecting to the management IP address of the FortiGate unit from the Internal network. From the internal network, attempt to ping the management IP address. If you cannot connect to the internal interface, verify the IP configuration of the PC and make sure the cables are connected and all switches and other devices on the network are powered on a...

Why do we need network virtualization?

We need to think about Server Virtualization first if we want to talk about Network Virtualization. In the era of cloud computing, servers are virtualized and used in Data Centers. We are facing a lot of problem when we virtualized our Servers, 1) Routing and Switching Problem Routing become the issue when we create Virtual Switch and VLANs according to production requirement. Network Team might need some time to change on their end to meet with Server Virtualization Team changes on their end. ၂) Firewall Services Physical Firewall are difficult to manage due to the large number of rules needed to satisfy business requirements. New applications, new projects, and new networks all come with potential security requirements, which impact centralized firewall management. ၃) Load Balancing Let's say your company deploys a new physical load balancer for each tenant, resulting in increased capital expenditures. Once a tenant reaches their maximum capacity, it ca...

Solving "WSUS administration console was unable to connect to the WSUS Server via the remote API" error

Today, I've got below when I try to connect my WSUS Server via WSUS Console. Below logs are display in Event Logs too. The WSUS administration console was unable to connect to the WSUS Server via the remote API.  Verify that the Update Services service, IIS and SQL are running on the server. If the problem persists, try restarting IIS, SQL, and the Update Services Service. The WSUS administration console was unable to connect to the WSUS Server via the remote API. Verify that the Update Services service, IIS and SQL are running on the server. If the problem persists, try restarting IIS, SQL, and the Update Services Service. System.Net.Sockets.SocketException -- No connection could be made because the target machine actively refused it 172.16.99.98:80 Source System Stack Trace:    at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)    at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Soc...