Azure API Management giriş bölgesi hızlandırıcısı

Azure API Management
Azure Application Gateway
Azure Functions
.NET

API'ler, şirketlerin ve müşterilerin hizmetlere hem şirket içinde hem de dışarıdan erişmesinde giderek daha belirgin hale gelmiştir. API'ler dahili olarak iş kolu uygulamalarına, ev yapımı çözümlere ve üçüncü taraf tümleştirmelerine erişmek için kullanılır. Dışarıdan daha fazla şirket üretken olmaya ve API'lerinden para kazanmaya çalışıyor. Bu eğilim göz önünde bulundurularak API Management, API'leri hem iç hem de dış hedef kitlelere yönetmek, yönetmek ve yayımlamak için standart bir yaklaşımın merkezi bir bileşeni haline gelir.

Azure Application Gateway yardımıyla artık Azure API Management aracılığıyla sunulan API'lerin erişimini korumak ve kısıtlamak mümkündür. Bu makalede, tek bir API Management örneği aracılığıyla hem iç hem de dış API'leri yönetebileceğiniz bir çözüm açıklanmaktadır. Güvenli bir duruşu doğrudan İnternet üzerinden kullanıma sunulmaktan koruyabilirsiniz, ancak bunun yerine bir Application Gateway üzerinden erişilir.

Not

Bu mimari, Bulut Benimseme Çerçevesi Azure API Management giriş bölgesi hızlandırıcısının temeli olarak kullanılır.

Mimari

API Management giriş bölgesi hızlandırıcısının mimarisini gösteren diyagram.

Bu mimari diyagram, bir aboneliğin kapsamını, özel etki alanlarının çözümlendiği bir Özel DNS bölgesini ve APIM-CS sanal ağı sanal ağ adlarının kapsamını temsil eden tümü kapsayan bir kutuyla başlar. Aboneliğin en üstünde, bunun şirket içi iş yükü olduğunu belirten bir kutu bulunur. Kutunun içinde bir sunucu simgesi vardır. Kanal, siteden siteye bağlantıyı gösterir veya Azure ExpressRoute, Azure aboneliğindeki API Management örneğine bağlanır. Azure aboneliğini gösteren büyük kutunun içinde yedi tane daha küçük kutu vardır. Kutulardan dördü üst satırda, üçü de alt satırda yer alır. Her bir kutu, bağlı bir ağ güvenlik grubuna sahip ayrı bir alt ağı temsil eder. En soldan, üst satırdaki en soldaki kutuda Azure Application Gateway eklenmiş bir genel IP adresi vardır. Application Gateway, App GW alt ağı adlı alt ağ ile birlikte yedi küçük kutudan birinde de bulunur. Sağ tarafta API Management örneğini içeren ve alt ağı APIM alt ağı olarak adlandırılan başka bir kutu bulunur. Yanında, üst satırdaki üçüncü kutu bulunur ve bu kutu PE alt ağı adlı alt ağdaki Azure İşlevleri örneği için özel bir uç nokta içerir. Üst satırdaki en sağdaki kutu, Azure İşlev Uygulamaları'nı, işlevin Azure App Service planını ve İşlev Uygulaması ile ilişkili depolama hesabını içeren arka uç alt ağıdır. En alt satırda, soldan başlayarak, Bastion alt ağından Azure Bastion'ı içeren bir kutudur. İkinci kutu, Atlama Kutusu Alt Ağı'ndaki yönetim jumbox VM'sini içerir. Alt satırdaki son kutu, DevOps alt ağı içinde bulunan DevOps Aracısı'dır. Görüntünün sağ alt kısmında, ilgili simgeleriyle birlikte üç paylaşılan kaynak bulunur. Soldan sağa şu kutular bulunur: anahtar kasası, uygulama içgörüleri ve Log Analytics çalışma alanı. İki iş akışı kümesi vardır. İlk iş akışı siyah dairelerde, diğer iş akışı ise mavi dairelerde gösterilir ve bu da sonraki bölümlerde açıklanacaktır. Siyah iş akışı, dışarıdan kullanılabilen API'lerin erişimini gösterir. Akış, Genel IP adresine erişen kullanıcıdan başlar. Ok daha sonra Application Gateway'den özel uç noktaya ve özel uç noktadan İşlev Uygulaması'na Application Gateway yönünü gösterir. Mavi iş akışı, siteden siteye bağlantıyı veya ExpressRoute aracılığıyla gösteren bir işlem hattı simgesi aracılığıyla API Management örneğine işaret eden bir okla şirket içi bir sunucudan başlar. Akışın geri kalanı yukarıda açıklananla aynıdır: API Management'den özel uç noktaya ve özel uç noktadan Azure İşlevi'ne.

Bu mimari, ilkelerin Azure giriş bölgesi hızlandırıcısından gerçekleştiğini ve yapının yönetim grubundan aşağı doğru yönlendirildiğini varsayar.

Bu mimarinin bir Visio dosyasını indirin.

İş akışı

Karma senaryo (mavi daireler)

Bu senaryo, şirket içi ortamınıza siteden siteye veya Azure ExpressRoute bağlantısı gerektirir.

  1. Şirket içi uygulama, Azure API Management aracılığıyla sunulan bir iç API'ye erişim gerektirir.
  2. API Management, Azure İşlevleri üzerinde barındırılan arka uç API'lerine bağlanır. Bu bağlantı, Azure İşlevleri Premium planı aracılığıyla kullanılabilen ve kendi alt asında barındırılan özel bir uç nokta üzerinden yapılır.
  3. Özel uç nokta, Azure İşlevleri üzerinde barındırılan iç API'ye güvenli bir şekilde erişir.

Dış Erişim Senaryosu (siyah daireler)

  1. Dış uygulama bir genel IP adresine veya Azure Application Gateway bağlı özel FQDN'ye erişir.
  2. Application Gateway, SSL sonlandırması için PFX sertifikaları gerektiren web uygulaması güvenlik duvarı işlevi görür.
  3. API Management, Azure İşlevleri üzerinde barındırılan arka uç API'lerine özel bir uç nokta üzerinden bağlanır. Bu uç nokta, Azure İşlevleri Premium planı aracılığıyla kullanılabilir ve kendi alt asında barındırılır.
  4. Özel uç nokta, Azure İşlevleri üzerinde barındırılan dışarıdan kullanılabilir API'ye güvenli bir şekilde erişir.

Bileşenler

Mimari aşağıdaki bileşenleri kullanır:

  • Azure API Management, hibrit ve çoklu bulut ortamlarında hizmetleri yönetmenize olanak tanıyan yönetilen bir hizmettir. API yönetimi, arka uç mimarisini soyutlamanın bir cephesi işlevi görür ve hem iç hem de dış kullanıcılar için API gözlemlenebilirliği ve tüketimi için denetim ve güvenlik sağlar.

  • Azure İşlevleri, en az altyapı yönetimiyle yürütülebilecek kod bloklarına daha fazla odaklanmanızı sağlayan sunucusuz bir çözümdür. İşlevler çeşitli barındırma planlarında barındırılabilirken, bu başvuru mimarisi özel uç noktaların kullanımı nedeniyle premium planı kullanır.

  • Azure Application Gateway, katman 7 yük dengeleyici ve web uygulaması güvenlik duvarı işlevi gören yönetilen bir hizmettir. Bu senaryoda, uygulama ağ geçidi iç ve dış modu kullanmanıza olanak tanıyan iç APIM örneğini korur.

  • Azure DNSÖzel DNS bölgeleri, özel bir DNS çözümü uygulamaya gerek kalmadan bir sanal ağ içindeki etki alanı adlarını yönetmenize ve çözümlemenize olanak tanır. bir Özel DNS bölgesi, sanal ağ bağlantıları aracılığıyla bir veya daha fazla sanal ağa hizalanabilir. Bu başvuru mimarisinin kullandığı özel bir uç nokta üzerinden kullanıma sunulan Azure İşlevleri nedeniyle, özel bir DNS bölgesi kullanmanız gerekir.

  • Azure İzleyiciApplication Insights , geliştiricilerin anomalileri algılamalarına, sorunları tanılamalarına ve kullanım düzenlerini anlamalarına yardımcı olur. Application Insights, canlı web uygulamaları için genişletilebilir uygulama performansı yönetimi ve izleme özelliklerine sahiptir. .NET, Node.js, Java ve Python gibi çeşitli platformlar desteklenir. Azure'da, şirket içinde, karma ortamda veya diğer genel bulutlarda barındırılan uygulamaları destekler. Application Insights, dağıtılan uygulamanın davranışlarını izlemek için bu başvuru mimarisinin bir parçası olarak yer alır.

  • Azure İzleyiciLog Analytics, isteğe bağlı olarak Azure portal içinden Azure İzleyici Günlüklerindeki verilerle günlük sorgularını düzenlemenize ve çalıştırmanıza olanak tanır. Geliştiriciler bir kayıt kümesi için basit sorgular çalıştırabilir veya log analytics kullanarak gelişmiş analiz gerçekleştirebilir. Daha sonra sonuçları görselleştirebilirler. Log Analytics, daha fazla analiz ve raporlama için tüm izleme günlüklerini toplamak üzere bu başvuru mimarisinin bir parçası olarak yapılandırılır.

  • Azure Sanal Makineler, birçok farklı iş yükünü barındırmak için kullanılabilecek bir bilgi işlem kaynağıdır. Bu başvuru mimarisinde sanal makineler, devops aracısı veya GitHub çalıştırıcısı için bir konağın yanı sıra bir yönetim sıçrama kutusu sunucusu sağlamak için kullanılır.

  • Azure Key Vault, API anahtarları ve parolalardan sertifikalara ve şifreleme anahtarlarına kadar çeşitli gizli dizileri güvenli bir şekilde depolayan ve bu gizli dizilere erişen bir bulut hizmetidir. Bu başvuru mimarisi, Application Gateway tarafından kullanılan SSL sertifikalarını depolamak için Azure Key Vault kullanır.

  • Azure Bastion , geliştiricinin sanal ağı içinde sağlanan bir hizmet olarak platformdur. geliştiricinin sanal makinelerine TLS üzerinden, Azure portal üzerinden güvenli RDP/SSH bağlantısı sağlar. Azure Bastion ile sanal makinelerin RDP/SSH üzerinden bağlanması için artık genel IP adresi gerekmez. Bu başvuru mimarisinde DevOps aracısı veya GitHub runner sunucusuna ya da yönetim atlama kutusu sunucusuna erişmek için Azure Bastion kullanılır.

Azure DevOps veya GitHub gibi bir DevOps aracı kullanıyorsanız bulutta barındırılan aracılar veya runners genel İnternet üzerinden çalışır. Bu mimarideki API yönetimi bir iç ağa ayarlandığından, sanal ağa erişimi olan bir DevOps aracısı kullanmanız gerekir. DevOps aracısı, mimarinizdeki API'lerde ilkeleri ve diğer değişiklikleri dağıtmanıza yardımcı olur. Bu CI/CD şablonları , işlemi bölmek ve geliştirme ekiplerinizin API başına değişiklik dağıtmasına olanak sağlamak için kullanılabilir. DevOps çalıştırıcıları tarafından yürütülür.

Alternatifler

API Management örneğinin bağlandığı arka uç hizmetleri için, bu başvuru uygulamasında kullanılan Azure İşlevleri ek olarak çeşitli alternatifler vardır:

  • Azure App Service, web uygulamalarını derleyen, dağıtan ve ölçeklendirin tam olarak yönetilen HTTP tabanlı bir hizmettir. .NET, .NET Core, Java, Ruby, Node.js, PHP ve Python desteklenir. Uygulamalar Windows veya Linux tabanlı ortamlarda çalıştırılabilir ve ölçeklendirilebilir.
  • Azure Kubernetes Service tümleşik sürekli tümleştirme ve sürekli teslim (CI/CD) deneyimi, idare ve güvenlik için tam olarak yönetilen Kubernetes kümeleri sunar.
  • Azure Logic Apps , otomatik iş akışları oluşturan ve çalıştıran bulut tabanlı bir platformdur. Örnek bir başvuru mimarisi Azure'da temel kurumsal tümleştirme sayfasında bulunabilir.
  • Azure Container Apps , sunucusuz bir platformda mikro hizmetleri ve kapsayıcılı uygulamaları çalıştırmanızı sağlar.

Çok bölgeli dağıtımlar için, kullanıcılarınız ile uygulamalarınızın statik ve dinamik web içeriği arasında hızlı, güvenilir ve güvenli erişim sağlamak için Azure Front Door'u kullanmayı göz önünde bulundurun.

Application Gateway API'leri nasıl koruyabileceğine ek örnekler görmek için bkz. API'leri Application Gateway ve API Management ile koruma.

Dikkat edilmesi gerekenler

Bu önemli noktalar, bir iş yükünün kalitesini artırmak için kullanılabilecek bir dizi yol gösteren ilke olan Azure Well-Architected Framework'ün yapı taşlarını uygular. Daha fazla bilgi için bkz. Microsoft Azure Well-Architected Framework.

Güvenilirlik

Güvenilirlik, uygulamanızın müşterilerinize yaptığınız taahhütleri karşılayabilmesini sağlar. Daha fazla bilgi için bkz . Güvenilirlik sütununa genel bakış.

  • Bölge başına iki kullanılabilirlik alanına yayılmış en az iki ölçek birimi API Management dağıtın. Bu yöntem kullanılabilirliğinizi ve performansınızı en üst düzeye çıkarır.
  • Sanal ağ eşlemesi bir bölgede harika performans sağlar, ancak en fazla 500 ağ ölçeklenebilirlik sınırına sahiptir. Daha fazla iş yükünün bağlanması gerekiyorsa merkez uç tasarımını veya Azure vWAN'ı kullanın.

Güvenlik

Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanımına karşı güvence sağlar. Daha fazla bilgi için bkz. Güvenlik sütununa genel bakış.

  • API Management doğrulama ilkeleri, OPENAPI şemasında API isteklerini ve yanıtlarını doğrulamak için kullanılabilir. Bu özellikler bir Web Uygulaması Güvenlik Duvarı yerine kullanılamaz, ancak bazı tehditlere karşı ek koruma sağlayabilir. Doğrulama ilkeleri eklemenin performans üzerindeki etkileri olabilir, bu nedenle API aktarım hızı üzerindeki etkilerini değerlendirmek için performans yük testlerini kullanmanızı öneririz.
  • Yaygın web uygulaması açıklarına ve güvenlik açıklarına karşı koruma sağlamak için API Management önünde Azure Web Uygulaması Güvenlik Duvarı (WAF) dağıtın.
  • APIM ilkelerindeki hassas bilgileri korumak için Key Vault gizli dizilerle adlandırılmış değerler uygulayın.
  • APIM örneğini korumak ve karma bağlantıyı etkinleştirmek için iç APIM örneğinin dış erişimi için Application Gateway kullanın.
  • Karma bağlantıyı ve artırılmış güvenliği desteklemek için API Management ağ geçidini bir sanal ağa dağıtın.
  • Sanal ağ eşlemesi bir bölgede harika performans sağlar, ancak en fazla 500 ağ ölçeklenebilirlik sınırına sahiptir. Daha fazla iş yükünün bağlanması gerekiyorsa merkez uç tasarımını veya Azure vWAN'ı kullanın.

Maliyet iyileştirmesi

Maliyet iyileştirmesi, gereksiz giderleri azaltmanın ve operasyonel verimlilikleri artırmanın yollarını gözden geçmektir. Daha fazla bilgi için bkz. Maliyet iyileştirme sütununa genel bakış.

  • Kullanılabilirlik alanı ve sanal ağ desteği gerektiğinden, her bölgenin fiyatlandırmasını izleyerek API Management Premium katmanını seçtik. Ayrıca bu iş yükünde Azure İşlevleri, sanal ağ erişimi gerektiğinden Premium planda barındırılır.
  • Kavram kanıtı veya prototipler için diğer API Management katmanlarını (Geliştirici veya Standart gibi) kullanmanızı öneririz.

Operasyonel Mükemmellik

Operasyonel mükemmellik, bir uygulamayı dağıtan ve üretimde çalışır durumda tutan operasyon süreçlerini kapsar. Daha fazla bilgi için bkz. Operasyonel mükemmellik sütununa genel bakış.

  • API Management yapılandırmaları ARM şablonları olarak temsil edilmeli ve kod olarak altyapı düşünce yapısını benimsemeniz gerekir.
  • API Management yapılandırmalarını yönetmek, sürüm oluşturmak ve güncelleştirmek için CI/CD işlemi kullanın.
  • API management örneğinizin durumunu doğrulamaya yardımcı olmak için özel sistem durumu yoklamaları oluşturun. Uygulama ağ geçidinde APIM hizmeti için ortak bir sistem durumu uç noktası oluşturmak için URL'yi /status-0123456789abcdef kullanın.
  • Anahtar kasasında güncelleştirilen sertifikalar, 4 saat içinde güncelleştirilen API Management otomatik olarak döndürülür.
  • Bölge başına iki kullanılabilirlik alanına yayılmış en az iki ölçek birimi API Management dağıtın. Bu yöntem kullanılabilirliği ve performansı en üst düzeye çıkarır.

Bu senaryoyu dağıtın

Bu mimari GitHub'da kullanılabilir. Gerekli tüm kod olarak altyapı dosyalarını ve dağıtım yönergelerini içerir.

Katkıda Bulunanlar

Bu makale Microsoft tarafından yönetilir. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.

Asıl yazarlar:

Genel olmayan LinkedIn profillerini görmek için LinkedIn'de oturum açın.

Sonraki adımlar

Şu önemli kaynaklara bakın:

Bu önemli hizmetler hakkında daha fazla bilgi edinin: