İşletmeniz büyüdükçe, monolitik web hizmetiniz üzerindeki yük artar; bu durum sistem kararlılığını azaltabilir. Bu sorunu çözmek için sunucuları ölçeklendirmek ve yükü dağıtmak amacıyla bir ölçeklendirme grubu kullanarak monolitik mimarinizi esnek ve yüksek kullanılabilirliğe sahip bir yapıya dönüştürebilirsiniz. Bu yaklaşım sistem kararlılığını ve yanıt hızını artırır.
Neden esnek ve yüksek kullanılabilirliğe sahip bir mimari kullanmalısınız?
Monolitik mimarinin sorunlarıTipik bir monolitik mimaride tüm kaynaklar tek bir ECS örneğine dağıtılır. Kullanıcılar bu tek sunucudaki hizmete doğrudan bir etki alanı adı veya IP adresi üzerinden erişir. Bu mimarinin iki temel sorunu vardır:
| Yüksek kullanılabilirliğe sahip mimarinin özellikleriEsnek ve yüksek kullanılabilirliğe sahip bir mimaride yük dengeleyici kullanıcı isteklerini kümedeki örneklerde çalışan iş hizmetlerine yönlendirir. Bu mimarinin aşağıdaki temel özellikleri vardır:
|
Yüksek kullanılabilirliğe sahip bir mimariye nasıl dönüştürülür
Şekilde gösterildiği gibi soldaki monolitik mimariden esnek ve yüksek kullanılabilirliğe sahip bir mimariye dönüşüm iki aşamada gerçekleşir.
-
Aşama 1: Veri depolamayı iş mantığından ayırın
Esnek ve yüksek kullanılabilirliğe sahip bir mimari tüm ECS örneklerini çoğaltır. Bu nedenle ECS örneklerinizin (ve içindeki hizmetlerin) veri depolama ve iş mantığını ayırmanız gerekir. Buna durumsuz hale getirme de denir ve daha fazla örnek ekleyerek yatay ölçeklendirme yaptığınızda veri tutarlılığı sorunlarını önler.
Örneğin bir ECS örneğini çoğaltırken veritabanının kopyalanmadığından emin olmalısınız; böylece kümenin farklı veri kaynakları kullanması engellenir. Veri depolamayı ECS örneğinden ayırarak tüm örneklerin aynı veri kaynağını paylaşmasını ve veri tutarlılığının korunmasını sağlarsınız.
Aşağıdaki yaygın durumlarla karşılaşırsanız işletmeniz üzerindeki potansiyel etkiyi değerlendirmeniz ve mimarinizi buna göre ayarlamanız gerekir.
-
Aşama 2: Yüksek kullanılabilirliğe sahip bir mimariye dönüştürün
ECS örneğindeki veri depolama ve iş mantığını ayırdıktan sonra örneğin ve iş hizmetinin çoğaltmalarını oluşturarak yatay ölçeklendirme yapabilirsiniz.
Hizmet kümesini hızlı çoğaltma için esnekliğinden yararlanmak üzere bir ölçeklendirme grubuna taşıyın. Yükü dağıtarak sistem kararlılığını ve verimliliğini sağlamak için hizmet kümesinin erişim noktası olarak bir yük dengeleyici kullanın.
Yüksek kullanılabilirliğe sahip bir mimariye hızlı geçiş
Çözüm özeti
Veri depolamayı iş mantığından zaten ayırdıysanız (durumsuz hale getirdiyseniz) bir ölçeklendirme grubu kullanarak hizmetinizi monolitik bir mimariden esnek ve yüksek kullanılabilirliğe sahip bir mimariye hızlıca taşımak için şu adımları izleyebilirsiniz.
Bir demo web sitesi dağıtın (bir örnek hazırlayın). Bu çözüm geçiş sürecini göstermek amacıyla durumsuz bir demo web hizmeti örneğini simüle eder. Mevcut bir örneği de kullanabilirsiniz.
İş hizmetini içeren bir örnek görüntüsü oluşturun. Bu görüntü kümenizdeki örnekleri başlatmak için kullanılır ve iş hizmetini başlangıçta otomatik olarak başlatır.
Hizmet kümesini yönetmek için bir ölçeklendirme grubu oluşturun. Örnekleri hızlıca çoğaltmak (yatay ölçeklendirmek) için bu ölçeklendirme grubunu kullanacaksınız.
Küme için ortak bir erişim noktası kurun. Ortak bir erişim noktası oluşturmak için bir yük dengeleyici ilişkilendirin.
Örnekleri yatay ölçeklendirin (doğrulama). Örnekleri hızlıca çoğaltın ve kümenin doğru çalıştığını doğrulamak için yük dengeleyiciye erişin.
1. Bir demo web sitesi dağıtın
Öncelikle üretim ortamınızı temsil eden bir uygulama örneğine ihtiyacınız vardır. Bu örnek çoğaltma ve otomatik dağıtım için kullanılacaktır.
Bu eğitimde geçiş sürecini deneyimlemeniz için kullanabileceğiniz bir demo web sitesi hizmeti sağlanmaktadır. Demo hizmeti kurmak için Demo Hizmetini Dağıt'a tıklayın.
Bu demo web sitesi hizmeti bir web hizmeti paketini , bunun çalışma zamanı ortamını ve bir başlatma betiğini içerir. Örnek veri depolaması iş mantığından ayrılarak zaten durumsuz hale getirilmiştir.
İş hizmeti örneğiniz zaten durumsuzsa ve gerekli bileşenlere (yazılım paketi, ortam, başlatma betiği) sahipse aşağıdaki geçiş adımları için bunun yerine gerçek hizmet örneğinizi kullanabilirsiniz.
2. Bir örnek görüntüsü oluşturun
Yeni örneklerin iş hizmetine ve başlatma betiğine sahip olduğundan emin olmak için hazırlanan örnekten özel bir görüntü oluşturun. Sonraki örnekler bunu temel görüntü olarak kullanır; böylece iş hizmetiniz örnekler başlatıldığında otomatik olarak başlar.
ECS konsoluna gidin ve 1. Adım'da örneği hazırladığınız bölgeye geçin.
1. Adım'da hazırlanan ECS örneğini bulun. Sağ taraftaki İşlemler sütununda seçeneklerini belirleyin.
Create Custom Image iletişim kutusunda kolay tanımak için bir görüntü adı girin ve ardından OK öğesine tıklayın. Görüntü oluşturma işleminin tamamlanmasını bekleyin. ECS konsolunun sol gezinme bölmesinde seçeneklerine tıklayarak ilerlemeyi kontrol edebilirsiniz.
3. Bir ölçeklendirme grubu oluşturun
Hizmet kümenizi yönetmek için bir ölçeklendirme grubu kullanmak esnek ve yüksek kullanılabilirliğe sahip bir mimarinin çekirdeğidir. Bir ölçeklendirme grubu kullanarak örnekleri hızlıca çoğaltabilirsiniz. Bir ölçeklendirme grubu oluşturup etkinleştirmek için şu adımları izleyin:
-
Scaling Groups sayfasına gidin.
-
Auto Scaling konsolunda oturum açın.
Auto Scaling'i ilk kez kullanıyorsanız ekran talimatlarını izleyerek gerekli izinleri verin. Daha fazla bilgi için bkz. Hizmete bağlı roller.
Sol gezinme bölmesinde Scaling Groups öğesine tıklayın.
Üst gezinme çubuğunda Auto Scaling'in etkinleştirildiği bölgeyi seçin.
-
-
Bir ölçeklendirme grubu oluşturun.
Scaling Groups sayfasında Create sayfasını açmak için Create öğesine tıklayın.
-
Sayfadaki aşağıdaki yapılandırmaları tamamlayın. Tabloda belirtilmeyen ayarlar için varsayılan değerleri koruyabilirsiniz.
Parametre
Açıklama
Scaling Group Name
İstendiği gibi bir ad girin. Bu örnekte ad ess-demo'dur.
Type
ECS öğesini seçin.
Instance Configuration Source
Select Existing Instance öğesini seçin.
Select Existing Instance
1. Adım'da hazırlanan ECS örneğini seçin.
Minimum Number of Instances
Ölçeklendirme grubundaki minimum örnek sayısı. Örnek sayısı bu değerin altına düşerse otomatik bir yatay ölçeklendirme olayı tetiklenir. Bu örnekte minimum değer 0'dır.
Maximum Number of Instances
Ölçeklendirme grubundaki maksimum örnek sayısı. Örnek sayısı bu değeri aşarsa otomatik bir yatay küçültme olayı tetiklenir. Bu örnekte maksimum değer 10'dur.
VPC ve vSwitch
Bu ayarlar seçtiğiniz ECS örneğine göre otomatik olarak doldurulur.
ÖnemliBirden fazla kullanılabilirlik alanında vSwitch'ler oluşturmanızı ve seçmenizi öneririz. Bu tek bir kullanılabilirlik alanındaki yetersiz örnek envanterinden kaynaklanan ölçeklendirme hatalarını önlemeye yardımcı olur. vSwitch oluşturma hakkında bilgi için bkz. vSwitch oluşturma.
Bu özelliği etkinleştirmek için seçin. Etkinleştirdikten sonra beklenen örnek sayısını ayarlayarak otomatik olarak yatay küçültme veya yatay ölçeklendirme yapabilirsiniz.
Başlangıçta boş bir ölçeklendirme grubu oluşturmak için 0 girin.
Instance Status Check ve Load Balancer Health Check öğelerini seçin. Etkinleştirildiğinde sistem sağlık kontrolü sonuçlarını kullanarak ölçeklendirme grubundaki tüm örneklerin ve bunların iş hizmetlerinin doğru çalıştığından emin olur. Bir hizmet sağlıklı değilse derhal yeni bir örnekle değiştirilir.
Create öğesine tıklayın ve ölçeklendirme grubunun oluşturulmasını bekleyin.
-
Ölçeklendirme yapılandırmasındaki örnek görüntüsünü değiştirin.
Mevcut bir örnek seçerek bir ölçeklendirme grubu oluşturduğunuzda örneğin orijinal görüntüsüne dayalı bir ölçeklendirme yapılandırması oluşturulur. 1. Adım 'da oluşturulan örneğin orijinal görüntüsü daha sonra dağıtılan uygulama paketini içermez. Bu nedenle ölçeklendirme yapılandırmasındaki temel görüntüyü 2. Adım 'da oluşturulan yeni görüntüyle güncellemeniz gerekir.
Ölçeklendirme Grupları sayfasında az önce oluşturduğunuz ölçeklendirme grubunu bulun. Actions sütununda ölçeklendirme grubunun ayrıntılar sayfasına gitmek için View Details öğesine tıklayın.
sekmesinde tek ölçeklendirme yapılandırmasını bulun ve İşlemler sütununda Edit Image öğesine tıklayın.
Edit Image iletişim kutusunda User-Defined Image öğesini seçin. 2. Adım'da oluşturduğunuz görüntüyü seçmek için ekran talimatlarını izleyin. Değişikliği tamamlamak için OK öğesine tıklayın.
-
Ölçeklendirme grubunu etkinleştirin.
Ölçeklendirme Grupları sayfasında ölçeklendirme grubunu etkinleştirmek için sağ üst köşedeki Enable düğmesine tıklayın.
4. Ortak bir erişim noktası kurun
Bir örnekten birçok örneğe ölçeklendirme yaparken küme için ortak bir erişim noktasına ihtiyacınız vardır. Bunu yapmak için ölçeklendirme grubunuzla bir yük dengeleyici oluşturun ve ilişkilendirin. Bu sayede kullanıcı istekleri kümedeki ECS örnekleri arasında otomatik olarak dağıtılarak yük dengelenir ve kaynak kullanımından en üst düzeyde faydalanılır. Bu örnekte bir Application Load Balancer (ALB) kullanılmaktadır. Şu adımları izleyin:
4.1 Bir yük dengeleyici oluşturun
ALB konsolunda oturum açın.
Instance sayfasında Create Application Load Balancer öğesine tıklayın.
-
Application Load Balancer (Pay-As-You-Go) satın alma sayfasında ALB'yi oluşturmak için ekran talimatlarını izleyin.
Bu örnekte aşağıdaki yapılandırmalar kullanılmaktadır. Belirtilmeyen ayarlar için varsayılan değerleri koruyabilirsiniz.
Parametre
Açıklama
Region
1. Adım'daki örnek ile aynı bölgeyi seçin.
Network Type
Internet öğesini seçin.
VPC
1. Adım'da hazırlanan örneğin VPC'sini seçin.
Zone
En az iki tane seçin. Seçilen bir kullanılabilirlik alanında vSwitch yoksa bir tane oluşturmak için ekran talimatlarını izleyin. vSwitch oluşturma talimatları için bkz. vSwitch oluşturma.
4.2 Bir sunucu grubu oluşturun
Bu sunucu grubu ölçeklendirme grubuyla ilişkilendirilecektir. Ölçeklendirme grubu tarafından oluşturulan örnekler yük dengeleyici aracılığıyla hizmet sağlamak üzere bu sunucu grubuna otomatik olarak eklenecektir.
Application Load Balancer (ALB) konsolunda bir bölge seçin.
-
Sol gezinme bölmesinde Server Group öğesine tıklayarak Sunucu Grupları sayfasına gidin. Create Server Group öğesine tıklayın ve sunucu grubunu oluşturmak için ekran talimatlarını izleyin.
Bu örnekte aşağıdaki yapılandırmalar kullanılmaktadır. Belirtilmeyen ayarlar için varsayılan değerleri koruyabilirsiniz.
Parametre
Açıklama
Server Group Type
Server Type öğesini seçin.
Server group name
İstendiği gibi bir ad girin. Bu örnekte ess-test-server-group kullanılmaktadır.
VPC
1. Adım'da hazırlanan örneğin VPC'sini seçin.
4.3 Bir dinleyici yapılandırın
HTTP protokolünden gelen istekleri iletmek için bir HTTP dinleyicisi oluşturun. Yük dengeleyici örneği bir HTTP isteği aldığında isteği sunucu grubundaki ECS örneklerine iletebilir.
Application Load Balancer (ALB) konsolunda bir bölge seçin.
-
Sol gezinme bölmesinde Instance öğesine tıklayın. 4.1. Adım'da oluşturulan yük dengeleyiciyi bulun ve İşlemler sütununda Create Listener öğesine tıklayın. Dinleyiciyi oluşturmak için ekran talimatlarını izleyin.
Bu örnekte aşağıdaki yapılandırmalar kullanılmaktadır. Belirtilmeyen ayarlar için varsayılan değerleri koruyabilirsiniz.
Parametre
Açıklama
Select listener protocol
HTTP öğesini seçin.
Listener port
Yük dengeleyicinin hizmet sunduğu bağlantı noktası. Demo hizmeti 80 numaralı bağlantı noktasını kullanır; bu dinleyicinin yük dengeleyicinin 80 numaralı bağlantı noktasına yönelik istekleri işleyeceği anlamına gelir.
Select server group
4.2. Adım'da oluşturulan sunucu grubunu seçin.
4.4 Yük dengeleyiciyi ilişkilendirin
Ölçeklendirme Grupları sayfasında 3. Adım'da oluşturduğunuz ölçeklendirme grubunu bulun. Actions sütununda ölçeklendirme grubunun ayrıntılar sayfasına gitmek için View Details öğesine tıklayın.
-
Basic Information sekmesinde Associated ALB/NLB Server Groups öğesini bulun. Add Associated ALB/NLB Server Group öğesine tıklayın. Görüntülenen iletişim kutusunda Add Server Group öğesine tıklayın ve 4.2. Adım'da oluşturulan sunucu grubunu ilişkilendirmek için ekran talimatlarını izleyin. Yapılandırmayı tamamladıktan sonra ilişkilendirmeyi bitirmek için OK öğesine tıklayın.
ÖnemliBu yapılandırmadaki bağlantı noktası numarası iş hizmetinizin hizmet sunduğu bağlantı noktası olmalıdır. Bu örnekteki demo hizmeti 80 numaralı bağlantı noktasını kullanır.
5. Yatay ölçeklendirme ve doğrulama
Ölçeklendirme grubunu yapılandırdıktan ve bir yük dengeleyiciyle ilişkilendirdikten sonra kümenin doğru çalıştığını doğrulamak için örnekleri yatay ölçeklendirebilirsiniz.
-
Ölçeklendirme grubu için bir yatay ölçeklendirme olayı tetikleyin; ölçeklendirme grubu otomatik olarak örnekler oluşturacaktır.
Ölçeklendirme grubu için Beklenen Kapasite değerini değiştirerek bir yatay ölçeklendirme olayı tetikleyebilirsiniz. Şu adımları izleyin:
Ölçeklendirme Grupları sayfasında az önce oluşturduğunuz ölçeklendirme grubunu bulun. Actions sütununda ölçeklendirme grubunun ayrıntılar sayfasına gitmek için View Details öğesine tıklayın.
Basic Information sekmesinde Instance Scaling Overview öğesini bulun ve
öğesine tıklayın. Edit Instance Scaling Overview iletişim kutusunda Expected Number of Instances değerini 0'dan 3'e değiştirin (kümenin hizmet sağlamak için 3 ECS örneğine ihtiyacı olduğu anlamına gelir). Değişikliği uygulamak için OK öğesine tıklayın.Örneklerin oluşturulmasını bekleyin. Ölçeklendirme grubunda üç ECS örneği oluşturulacaktır. Oluşturma durumunu Instances sekmesinde kontrol edebilirsiniz.
-
Yük dengeleyicinin adresine erişerek yeni örneklere istek yönlendirdiğini doğrulayın.
4.1. Adım'da oluşturulan yük dengeleyiciyi bulun. DNS Adı altında erişim URL'sini bulun.
Bu URL'yi birden çok kez ziyaret edin. Farklı IP adresleri görmelisiniz; bu yük dengeleyici aracılığıyla farklı sunuculara erişebildiğinizi doğrular.
6. (İsteğe bağlı) Kaynakları temizleyin
Kümeye artık ihtiyacınız yoksa kaynakları temizlemek için bu süreci izleyebilirsiniz.
4.1. Adım'da oluşturulan yük dengeleyiciyi serbest bırakın. Daha fazla bilgi için bkz. ALB örneğini serbest bırakma.
3. Adım'da oluşturulan ölçeklendirme grubunu silin. Daha fazla bilgi için bkz. Ölçeklendirme grubunu silme.
4.2. Adım'da oluşturulan sunucu grubunu silin. Daha fazla bilgi için bkz. Sunucu grupları oluşturma ve yönetme.
2. Adım'da oluşturulan özel görüntüyü silin. Daha fazla bilgi için bkz. Özel görüntüyü silme.
3. Adım ve 4.1. Adım'da oluşturduğunuz vSwitch'leri silin. Daha fazla bilgi için bkz. VPC oluşturma ve yönetme ve vSwitch silme.
1. Adım'da dağıtılan demo hizmetini temizleyin. Demo hizmetini 1. Adım'dan dağıttıysanız ROS yığınını silebilirsiniz. Yığını silerken demo hizmeti tarafından oluşturulan kaynakları temizlemek için Deletion Method olarak Release Resources seçeneğini belirleyin. Daha fazla bilgi için bkz. Yığını silme.
Sonraki adımlar
Canlıya geçmeden önce
Bu esnek ve yüksek kullanılabilirliğe sahip çözümün üretim ortamında kararlı çalışmasını sağlamak için canlıya geçmeden önce aşağıdaki eylemleri tamamlamanızı öneririz:
-
Ölçeklendirme grubu yapılandırmasını iyileştirin
Çok alanlı olağanüstü durum kurtarma uygulayın: Ölçeklendirme grubunuz için birden fazla kullanılabilirlik alanında vSwitch'ler yapılandırabilir ve bir Çok Alanlı Ölçeklendirme İlkesi ayarlayabilirsiniz. Bu ölçeklendirme grubunun birden fazla kullanılabilirlik alanında örnekler oluşturmasına ve hizmet örneklerini bunlar arasında eşit şekilde dağıtmasına olanak tanıyarak ölçeklendirme başarı oranını ve kümenin olağanüstü durum kurtarma yeteneğini artırır. Daha fazla bilgi için bkz. Ölçeklendirme ilkeleri.
Birden fazla örnek türü seçin: Tek bir örnek türü stokta yoksa yatay ölçeklendirme olayı başarısız olabilir. Ölçeklendirme başarı oranını artırmak için birden fazla örnek türü seçebilirsiniz. Daha fazla bilgi için bkz. Ölçeklendirme yapılandırması oluşturma (ECS örnekleri).
-
Kapsamlı testler yapın
Bu esnek ve yüksek kullanılabilirliğe sahip çözümü üretim ortamında kullanmayı planlıyorsanız kümeyi kurduktan sonra testler yapmanızı öneririz. Bu hizmetinizin çoğaltıldığında doğru çalıştığından emin olmanızı ve kaynak ihtiyaçlarınızı tahmin etmek için küme üzerinde stres testleri gerçekleştirmenizi sağlar.
Erişim için bir etki alanı adı kullanın
Auto Scaling özelliklerini kullanın
Bir ölçeklendirme stratejisi tasarlayın: Bu eğitimde otomatik ölçeklendirme stratejilerinin tasarımı ele alınmamaktadır. Maliyetleri optimize etmek için ölçeklendirme grubunuz için otomatik ölçeklendirmeyi daha sonra ayarlayabilirsiniz. Ölçeklendirme stratejisi tasarlama hakkında bilgi edinmek için bkz. Desteklenen ölçeklendirme stratejileri.
Gelişmiş özellikler: Ölçeklendirme grubunuz için ölçeklendirme başarı oranlarını artırmak veya maliyetleri daha da azaltmak gibi daha gelişmiş gereksinimleriniz varsa bkz. Gelişmiş özellikler.