Ana içeriğe geç

Azure Altyapısı

Bu doküman, Switzerland North bölgesinde barındırılan wastelog-vnet için bulut altyapısının özetini sunmaktadır. Mimaride, herkese açık bir giriş noktası ile Geliştirme (Development) ve Üretim (Production) ortamları için tamamen izole edilmiş özel ortamlar bulunmaktadır.

Mimarinin Genel Görünümü​

Ağ, güvenlik ve görevlerin mantıksal olarak ayrılması amacıyla public ve private subnet'lere bölünmüştür.

  • Bölge: Switzerland North
  • VNet Adı: wastelog-vnet
  • Adres Alanı: 10.0.0.0/16 (subnet'lere dağıtılmıştır)

Diyagram​

Azure Diagram

Ağ Topolojisi​

Virtual Network, farklı roller için belirli subnet'lere ayrılmıştır.

OrtamSubnet AdıCIDRKaynak TürüNotlar
Genelpublic-gateway10.0.1.0/24App GatewayGiriş noktası (HTTPS)
Genelpublic-generic10.0.0.0/24Bastion HostYönetim erişimi
Devprivate-app-dev10.0.6.0/24Sanal MakineNGINX Web Sunucusu (1 Node)
Devprivate-db-dev10.0.2.0/24Sanal MakineMySQL Sunucusu
Devprivate-cache-dev10.0.4.0/24Yönetilen RedisÖnbellekleme Katmanı
Prodprivate-app-prod10.0.7.0/24Sanal MakineNGINX Web Sunucusu (1 Node)
Prodprivate-db-prod10.0.3.0/24Azure Managed MySQL Flexible ServerMySQL Flexible Server
Prodprivate-cache-prod10.0.5.0/24Yönetilen RedisÖnbellekleme Katmanı

Bileşen Detayları​

1. Giriş & Bağlantı​

  • App Gateway: İnternetten gelen tüm HTTPS trafiğini karşılar ve istekleri uygun backend havuzuna (Dev veya Prod) yönlendirir.
  • Bastion Host: Genel subnet'te yer alan, özel olarak ayrılmış bir Sanal Makinedir. Özel VM'lere güvenli SSH/RDP erişimi sağlar. Özel VM'lere doğrudan internetten erişim engellenmiştir.

2. Hesaplama (Uygulama Katmanı)​

Hem Dev hem de Prod ortamlarında, NGINX çalıştıran Sanal Makineler 80 numaralı port üzerinden hizmet vermektedir.

  • Ölçekleme: Her ortam için şu anda tek bir VM node olarak yapılandırılmıştır.

3. Veri Kalıcılığı​

  • Veritabanı:

    • Development (Dev) Ortamı: MySQL, Sanal Makineler üzerinde barındırılmaktadır.
    • Production (Prod) Ortamı: Azure Managed MySQL Flexible Server kullanılmaktadır.
  • Not: Switzerland North bölgesindeki yüksek talep nedeniyle, sadece Dev ortamı için Azure Flexible Server yerine VM kullanılmaktadır. Prod ortamında ise MySQL Flexible Managed DB aktif olarak kullanılmaktadır.

  • Önbellek: Yüksek performanslı veri önbellekleme için Azure Yönetilen Redis kullanılmaktadır.

  • Depolama: Azure Blob Storage, nesne depolama için (örneğin, admob verisi) kullanılmaktadır.

4. Gözlemlenebilirlik​

  • Application Insights: Performans izleme ve hata takibi için hem Dev hem de Prod ortamlarında entegre edilmiştir.

5. Güvenlik​

  • NSG'ler (Ağ Güvenlik Grupları): Subnet'lere uygulanarak ağı filtreler (izin/verme/engelleme).
  • ASG'ler (Uygulama Güvenlik Grupları): Sanal Makineleri grup bazında yönetmek için kullanılır ve detaylı güvenlik politikaları sunar.

Geçici Bot VM veya Benzeri Genel VM Dağıtımı​

Eğer geçici bir bot VM veya benzeri bir genel erişime sahip VM dağıtılacaksa, bu işlem public-generic subnet'i üzerinde yapılabilir. Ancak güvenlik için, subnet'e atanmış NSG'nin (Ağ Güvenlik Grubu) uygun şekilde güncellenmesi gerekmektedir. Bu amaçla güncellenmiş NSG'nin adı vm-app-dev-nsg'dir. Aşağıda örnek bir NSG yapılandırmasını gösteren diyagram yer almaktadır:

NSG Örneği

Not: Ekstra izin verilen portlar/servisler gereksiz yere açılmamalıdır. Sadece gerekli olan trafiğe izin verin; gereksiz trafiği engellemeye devam edin.