Ele aldığım bu yazı da sizlere Azure ve Amazon sanal makine hizmetinin arasındaki temel farklılıkları ortaya koyacağım.Azure hizmetleri içerisinde bir çok servisi müşterilerime ilgili hizmetlerin yapılandırmasını sağlayıp kullanmaları sağlıyorum. Fakat her zaman aklımın köşesinde bir yerde Azure Virtual Machine ile Amazon Virtual Machine (EC2 ) yapısını karşılaştırıp aradaki farkları yazmak gibi bir amacım vardı, bu yazımda da bunu gerçekleştirmeyi umut ediyorum.
Azure Resource Manager Release olduğu zamandan beri bir yandan firmalar hızlı bir şekilde Classic Portal ( Service Manager) üzerindeki kaynakları Ibıza Portal ( Resource Manager ) alt yapısına geçişlerini yapmaktalar. Azure Virtual Machine ( Resource Manager) özelinde bir çok yeni kavram hayatımıza girdi ve bunların karşılaştırmasını Amazon Virtual Machine ( EC2) ileyapmak gerekiyor. Hemen yeri geldiği için açıklayalım, Azure üzerindeki alt yapısal değişikliği sebebiyle Classic Portal üzerinde çalışan VM'lerin hepsi Provisioning edildiği zaman bir Cloud Service yaratılıp daha sonra ilgili Cloud Service ile atanan IP adresleri ile sanal makinelere erişim gerçekleşebiliyordu. Biraz daha geçmişe gidersek Microsoft, Azure hizmetleri içerisinde Infrastructure as a Service (IaaS) vermeyi planlamıyordu. Gelen talepler üzerinde değişiklik yaptığı için bir takım eksiklikler göz ardı edilerek devam edildi. Bunun bir takım eksileri bulunmakta ve bu detaylar için şu yazıya göz gezdirebilirsiniz. Bu yazı serisi içerisinde mümkün oldukça bir Virtual Machine özelinde temel kaynaklar olan ( Compute, Storage ve Virtual Network) detaylandırıyor olacağız.
Yukarıda görüldüğü gibi temel olarak Azure Virtual Machine "VHD" formatını kullanır. Generation 1 VM'leri tam anlamıyla destekler. Yüksek disk hız gerektiren Azure VM Workload'ları ( SQL Server, Exchange Server, Dynamics Axapta vd.) için Azure Premium Storage hizmeti kullanılmalıdır.Amazon Virtual Machine (EC2) yapısında disk yapısının formatı "AMI" olarak gözlenmektedir. Yine Amazon alt yapısında ihtiyaca göre yüksek hız gerektiren sunucular için (IOPS) değerleri provisioning sürecinde sunularak baştan karar vermeniz sağlanır.Diğer bir fark ise, Azure tarafında seçtiğiniz Premium Storage seviyesine ( P10, P20, P30) göre faturalandırılır ve scale down gibi yöntemler ile yüksek IOPS ihtiyacınız bittiği zaman fiyatı düşebilirsiniz. Azure Virtual Machine serilerinde ( A, D, F, G, N ) her sanal sunucu özelinde attach edilecek disk sayıları bulunmakta ve her Volume başına maksimum 1TB belirtebiliyoruz. Bu limit içerisine Operating System diskininde dahil olduğunu belirtelim. Varsayım üzerine konuşacak olur isek ihtiyaçlardan dolayı Azure VM içindeki herhangi bir Volume boyutu 4 TB olmak istediğinde Microsoft Storage Spaces özelliği ile eklenen disk'ler span disk haline getirilerek yapılabilir. Resim de görüldüğü gibi bir Azure üzerideki en güçlü sanal sunucuya maksimum 64 TB ( G5 Serisi ) disk eklenebilir. Fakat amazon üzerinde bu tarz limitler ile karşılaşmak pek mümkün değil.
Azure ve Amazon EC2 Virtual Machines serilerinin kullandıkları İşlemci,Disk ve Network detaylarının karşılaştırmasını aşağıdaki tabloda bulabilirsiniz.
Amazon EC2 Virtual Machines serisi ( T, M , C, R , G , D ) olarak anılmaktadır. Sanal sunucu farklılıklarına bakıldığı zaman dikkat edilmesi gerken noktalar içerisinde Azure ve Amazon içerisindeki her sanal sunucunun kendi serisi içerisinde CPU, RAM, Disk ve Network hızları değişiklik göstermektedir. Öncelikle her iki farklı Cloud Provider üzerinde sanal sunucu oluştururken karşımıza bir çok farklı yöntem çıkmakta ve hızlı bir şekilde bunlara göz gezdirelim.
Azure üzerinde Virtual Machine oluştururken, Ibıza Portal ( Azure Resource Manager) kavramı bizi karşılıyor olacak. Azure Ibıza Portal üzerinde sanal sunucu oluştururken aşağıdaki adımlar izlenebilir.
- Azure Ibıza Portal ( Arayüz üzerinden )
- Azure Resource Manager Powershell
- Cross Platform Command Line Tools
- Visual Studio – Azure SDK JSON Template
- Azure Templates Deployment – Bkz
Azure Resource Manager içerisinden herhangi bir hizmeti Örneğin:"VMS, Virtual Network, Storage" Powershell, Visual Studio ile yönetildiği zaman her hizmetin kendine ait kaynak sağlayıcısı bulunmakta ve bu detaylar Azure Resource Manager ( ARM) tarafından bilinmektedir. ARM tarafında en dikkat çekici özellik, Template Deployment tasarlanmasıdır. JSON formatında sanal sunucu yapılandırılmasını hazırladığınız ve ilgili Resource Provider yapısına göre yazdıktan sonra herhangi bir hizmeti saniyeler içerisinde provisioning sürecini başlatabiliyoruz.Bununla beraber Resource Manager kullanan Azure hesapları isteğe bağlı olarak ADFS Server alt yapıları üzerinden Authentication süreçlerini tasarlayabilirler.
Amazon tarafında ise herhangi bir provisiong işlemi Azure Resource Manager ( ARM) yapısına oldukça benzemektedir. Cloud Formation olarak adlandırıdığımız bu dağıtım modeli Amazon da karşımıza çıkıyor. Azure Resource Manager yapısında gelen bir çok özellik var. Bunlar Resource Group, Tags, Lock, RBAC gibi yeniliklerdir. Cloud Formation dağıtım modeli bu yapıya oldukça fazla benzemektedir. Amazon için JSON template hazırlandıktan sonra Command Line Interface kullanarak Cloud Formation dağıtım sürecini baştabiliriz. Azure Resource Manager ( ARM ) ve Cloud Formation kullanımının karşılaştırmasını aşağıdaki bulabilirsiniz. Pek fazla fark olmayan bu deployment yöntemlerini IT / DevOps ekipleri farklı bulut hizmeti sağlayıcılarını tercih ederken geçişlerde çok sıkıntı yaşamayacaklardır. Azure ( ARM) modelini kullanan bir kişi Cloud Formation tarafına çok kolay bir şekilde adaptasyon sağlayabilir.