Aracılığıyla paylaş


Azure Kubernetes Service (AKS) için AWS EKS web uygulamasını yeniden tasarlama

AWS ile Azure arasındaki platform farklarını daha iyi anladığınıza göre, AWS'de web uygulaması mimarisini ve Azure Kubernetes Service (AKS) ile uyumlu hale getirmek için gereken değişiklikleri inceleyelim.

Yelb uygulama mimarisi

Yelb örnek web uygulaması adlı bir ön uç bileşeninden ve adlı yelb-uiyelb-appserverbir uygulama bileşeninden oluşur.

Yelb web uygulamasının mimari diyagramı.

Tarayıcıya yelb-ui JavaScript kodu sağlar. Bu kod bir Angular uygulamasından derlenmiş. Bileşen, yelb-ui dağıtım modeline bağlı olarak bir nginx ara sunucu da içerebilir. yelb-appserver bir önbellek sunucusu () ve Postgres arka uç veritabanı (redis-server) ile etkileşim kuran bir yelb-db uygulamasıdır. Redis Cache sayfa görüntüleme sayısını depolarken PostgreSQL oyları kalıcı hale getirmektedir. Her iki hizmet de AWS veya Azure'da veri depolamak için hiçbir yönetilen hizmet kullanılmadan Kubernetes'e dağıtılır.

Özgün Yelb uygulaması bağımsızdır ve dış hizmetlere dayanmaz, bu nedenle kod değişikliği yapmadan AWS'den Azure'a geçirebilirsiniz. Azure'da, AKS'de dağıtılan Redis Cache ve PostgreSQL hizmetlerinin yerine Redis için Azure Cache ve PostgreSQL için Azure Veritabanı'nı kullanabilirsiniz.

Örnek Yelb uygulaması, kullanıcıların bir dizi alternatif (restoran) üzerinde oy kullanmasına ve pasta grafikleri alınan oy sayısına göre dinamik olarak güncelleştirmesine olanak tanır. Uygulama ayrıca sayfa görüntüleme sayısını izler ve ne zaman bir oy verilir veya bir sayfa yenilenirse, API isteğini sunan örneğin ana bilgisayar adını yelb-appserver görüntüler. Bu özellik, uygulamayı bağımsız veya işbirliğine dayalı olarak tanıtmanızı sağlar.

Yelb hizmet arabiriminin ekran görüntüsü.

AWS'de mimari

AWS, web uygulamalarının ve API'lerin yaygın web açıklarından korunmasına yardımcı olmak için AWS Web Uygulaması Güvenlik Duvarı (WAF) ve AWS Güvenlik Duvarı Yöneticisi sunar.

AWS hizmetlerini Azure hizmetlerine eşleme

Azure'da AWS iş yükünü en az değişiklikle yeniden oluşturmak için her AWS hizmeti için bir Azure eşdeğeri kullanın. Aşağıdaki tablo, hizmet eşlemelerini özetlemektedir.

Hizmet eşleme AWS hizmeti Azure hizmeti
Web erişimi güvenlik duvarı AWS Web Uygulaması Güvenlik Duvarı (WAF) Azure Web Uygulaması Güvenlik Duvarı (WAF)
Uygulama yük dengeleme Uygulama Yük Dengeleyici (ALB) Kapsayıcılar için Azure Application GatewayAzure Uygulama Geçidi (AGC)
İçerik teslim ağı Amazon CloudFront Azure Front Door (AFD)
Orkestrasyon Elastic Kubernetes Service (EKS) Azure Kubernetes Service (AKS)
Sırlar kasası AWS Anahtar Yönetimi Hizmeti (KMS) Azure Key Vault
Container kayıt defteri Amazon Elastic Container Registry (ECR) Azure Container Registry (ACR)
Alan Adı Sistemi (DNS) Amazon Route 53 Azure DNS
Önbellekleme Amazon ElastiCache Redis için Azure Önbelleği
NoSQL Amazon DynamoDB PostgreSQL için Azure Veritabanı

Azure ile AWS hizmetleri arasında kapsamlı bir karşılaştırma için bkz. AWS ile Azure hizmetleri karşılaştırması.

Azure'da mimari

Bu çözümde Yelb uygulaması bir AKS kümesine dağıtılır ve NGINX giriş denetleyicisi gibi bir giriş denetleyicisi aracılığıyla kullanıma sunulur. Giriş denetleyicisi hizmeti bir iç (veya özel) yük dengeleyici aracılığıyla kullanıma sunulur. AKS'de uygulamalarınıza erişimi kısıtlamak için iç yük dengeleyici kullanma hakkında daha fazla bilgi için bkz. Azure Kubernetes Service (AKS) ile iç yük dengeleyici kullanma.

Bu örnek, Helm şemasını kullanarak uygulama yönlendirme eklentisi ile birlikte yönetilen bir NGINX giriş denetleyicisi veya yönetilmeyen bir NGINX giriş denetleyicisi yüklemeyi destekler. NGINX giriş denetleyicisi ile uygulama yönlendirme eklentisi aşağıdaki özellikleri sağlar:

Diğer yapılandırmalar için aşağıdaki makalelere bakın:

Yelb uygulaması, AKS kümesiyle aynı sanal ağ içinde veya eşlenmiş bir sanal ağda ayrılmış bir alt ağa dağıtılan bir Azure Application Gateway kaynağıyla güvenli hale getirilir. Web uygulamalarının yaygın açıklardan ve güvenlik açıklarından merkezi olarak korunmasını sağlayan Azure Web Uygulaması Güvenlik Duvarı'nı (WAF) kullanarak Yelb uygulamasına erişimi güvenli hale getirebilirsiniz.

Çözüm mimarisi tasarımı

Aşağıdaki diyagramda Azure'da önerilen mimari gösterilmektedir:

Application Gateway WAFv2 ve NGINX giriş denetleyicisini temel alan çözümün diyagramı.

Çözüm mimarisi aşağıdakilerden oluşur:

  1. Application Gateway TLS sonlandırmasını işler ve HTTPS üzerinden arka uç uygulamasıyla iletişim kurar.
  2. Application Gateway Dinleyicisi , Azure Key Vault'tan alınan bir SSL sertifikası kullanır.
  3. Dinleyici ile ilişkili Azure WAF İlkesi, gelen isteklere karşı OWASP kurallarını ve özel kuralları çalıştırır ve kötü amaçlı saldırıları engeller.
  4. Application Gateway Arka Uç HTTP Ayarları, 443 numaralı bağlantı noktasında HTTPS aracılığıyla Yelb uygulamasını çağırır.
  5. Application Gateway Arka Uç Havuzu ve Sistem Durumu Yoklaması, HTTPS kullanarak AKS iç yük dengeleyici aracılığıyla NGINX giriş denetleyicisini çağırır.
  6. NGINX giriş denetleyicisi AKS iç yük dengeleyicisini kullanır.
  7. AKS kümesi, Secrets Store CSI Sürücüsü eklentisi için Azure Key Vault sağlayıcısı ile bir CSI birimi aracılığıyla Azure Key Vault'tan sırları, sertifikaları ve anahtarları almak üzere yapılandırılmıştır.
  8. SecretProviderClass, Azure Key Vault'tan Application Gateway tarafından kullanılan sertifikayı alır.
  9. Kubernetes giriş nesnesi, UYGULAMAYı AKS iç yük dengeleyici aracılığıyla HTTPS aracılığıyla kullanıma açmak için NGINX giriş denetleyicisini kullanır.
  10. Yelb hizmeti türündedir ClusterIP ve NGINX giriş denetleyicisi aracılığıyla kullanıma sunulur.

Bu mimariyi kullanarak AKS'de Yelb uygulamasını dağıtma hakkında kapsamlı yönergeler için yardımcı örneğe bakın.

Alternatif çözümler

Azure, AKS kümesinde bir web uygulaması dağıtmak ve bir web uygulaması güvenlik duvarı ile güvenli hale getirmek için çeşitli seçenekler sunar:

Application Gateway Giriş Denetleyicisi (AGIC), bir Kubernetes uygulaması olduğundan Azure Kubernetes Service (AKS) iş yükleriniz için bulut yazılımını İnternet'te kullanıma sunma amacıyla Azure'ın yerel Application Gateway L7 yük dengeleyicisini kullanabilirsiniz. AGIC, barındırılan Kubernetes kümesini izler ve bir Application Gateway'i sürekli güncelleştirerek seçili hizmetlerin İnternet'e açık olmasını sağlar.

Azure Application Gateway Giriş Denetleyicisi'ni temel alan çözümün diyagramı.

Giriş Denetleyicisi, AKS kümesindeki kendi podunda çalışır. AGIC, değişiklikler için Kubernetes Kaynaklarının bir alt kümesini izler, kümenin durumunu Application Gateway'e özgü bir yapılandırmaya çevirir ve Bunu Azure Resource Manager'a (ARM) uygular. Daha fazla bilgi için bkz. Application Gateway Giriş Denetleyicisi nedir?.

Aşağıdaki tabloda Application Gateway Giriş Denetleyicisi'nin (AGIC) avantajları ve dezavantajları özetlenmiştir:

Avantajlar Dezavantajlar
* Yerel tümleştirme: AGIC, Aks üzerinde çalışan hizmetlere trafiğin sorunsuz ve verimli bir şekilde yönlendirilmesine olanak tanıyan Azure hizmetleriyle, özellikle de Azure Application Gateway ile yerel tümleştirme sağlar.
* Basitleştirilmiş dağıtımlar: AGIC'yi AKS eklentisi olarak dağıtmak, diğer yöntemlerle karşılaştırıldığında basit ve basittir. AgIC özellikli bir Application Gateway ve AKS kümesinin hızlı ve kolay bir şekilde ayarlanmasını sağlar.
* Tam olarak yönetilen hizmet: Eklenti olarak AGIC, otomatik güncelleştirmeler ve Microsoft'un artan desteği gibi avantajlar sağlayan tam olarak yönetilen bir hizmettir. Giriş Denetleyicisinin güncel kalmasını sağlar ve ek bir destek katmanı ekler.
* Tek bulut yaklaşımı: AGIC öncelikli olarak tek bulut yaklaşımını benimseyen müşteriler tarafından benimsenmiştir. Farklı bulut platformları arasında dağıtımın gerekli olduğu çok bulutlu bir mimariye ihtiyacınız varsa, bu en iyi seçenek olmayabilir. Bu durumda vendo-lockin sorunlarından kaçınmak için NGINX, Traefik veya HAProxy gibi buluttan bağımsız bir giriş denetleyicisi kullanmak isteyebilirsiniz.

Daha fazla bilgi için aşağıdaki kaynaklara bakın: