Bu konu, Auto Scaling hizmetinin yaşam döngüsü kanca özelliği ile bir CloudOps Orchestration Service (OOS) şablonunun nasıl birleştirileceğini açıklar. Bu sayede Elastic Compute Service (ECS) örnekleri önce Beklemede durumuna alınır ve ardından örnek IP adreslerinin ApsaraDB for MongoDB (MongoDB) örneklerinin IP adresi izin listelerine eklenmesi veya bu listelerden kaldırılması işlemi otomatikleştirilir.
Ön koşullar
Bir ölçeklendirme grubu oluşturulmuş ve Etkin durumda olmalıdır.
Bir MongoDB örneği oluşturulmuş olmalıdır.
-
OOS için bir Resource Access Management (RAM) rolü oluşturulmuş olmalıdır. RAM rolünün güvenilir varlığı Alibaba Cloud Service, güvenilir hizmeti ise CloudOps Orchestration Service olmalı ve RAM rolünün OOS şablonunda işlem gerçekleştirme izinlerine sahip olması gerekir. Daha fazla bilgi için bkz. OOS için RAM rolü oluşturma ve izin verme.
NotBu konuda OOSServiceRole RAM rolü örnek olarak kullanılmıştır. Başka roller de kullanabilirsiniz.
Arka plan bilgileri
Auto Scaling şu anda yalnızca Server Load Balancer (SLB) ve ApsaraDB RDS entegrasyonunu destekler. Uygulama verilerinizi bir MongoDB örneğinde saklıyorsanız, ECS örneklerinizin özel IP adresleriyle MongoDB örneğinin IP adresi izin listesini manuel olarak güncellemek operasyonel verimsizliğe yol açar. Operasyonel verimliliği artırmak için, Auto Scaling hizmetinin yaşam döngüsü kanca özelliğini bir OOS şablonuyla birleştirerek MongoDB örneğinizin IP adresi izin listesi güncellemelerini otomatikleştirmeyi düşünebilirsiniz. Aşağıdaki kullanım notlarını dikkate alın:
Ölçeklendirme grubunuz mevcut ECS örnekleri içeriyorsa, bu ECS örneklerinin özel IP adreslerini MongoDB örneğinin IP adresi izin listesine manuel olarak eklemeniz gerekir. Aksi takdirde, bir örnek IP adresini MongoDB örneğinin IP adresi izin listesinden kaldırırken hata oluşur.
-
OOS yürütmeleri oluşturmak için gereken parametreleri belirtmek amacıyla NotificationMetadata (kısaca metadata) kullanmalısınız.
metadata JSON dize biçiminde olmalıdır.
metadata içindeki anahtarlar, OOS şablonundaki parametrelerle eşleşmelidir.
OOS şablonunda varsayılan ayarı olmayan parametreler için değer belirtmeniz gerekir. OOS şablonunda varsayılan ayarı olan parametreler için ise bu varsayılan ayarların üzerine yazılıp yazılmayacağını belirtebilirsiniz.
Yordam
Bu örnekte, bir ölçek genişletme olayı sırasında örnek IP adreslerinin bir MongoDB örneğinin IP adresi izin listesine otomatik olarak eklenmesinin nasıl sağlandığını göstermek için LifeCycleModifyMongoDBIPWhitelist adlı genel bir OOS şablonu kullanılır. Aşağıdaki adımları uygulayın:
Örnek IP adreslerini MongoDB örneğinizin IP adresi izin listesinden otomatik olarak kaldırmak istiyorsanız, ölçek daraltma amaçlı bir yaşam döngüsü kanca oluşturabilir ve bu kancayı bir ölçek daraltma olayı sırasında uygulayabilirsiniz.
Adım 1: Bir RAM rolüne OOS izinleri verme
OOS şablonlarını çalıştırma iznine sahip olmanız gerekir. ACS-ESS-LifeCycleModifyMongoDBIPWhitelist şablonu, bakım görevlerini yürütmek için gereken ECS, Auto Scaling ve MongoDB kaynaklarını içerir.
RAM konsolu üzerinde oturum açın.
-
Bir ilke oluşturun.
Sol gezinme bölmesinde seçeneklerini seçin.
Policies sayfasında Create Policy düğmesine tıklayın.
-
Create Policy sayfasında JSON Editor sekmesine tıklayın, parametreleri ayarlayın ve ardından OK düğmesine tıklayın.
Aşağıdaki tabloda bu örnekte kullanılan ayarlar açıklanmaktadır. Aşağıdaki tabloda yer almayan parametreler için önceden tanımlanmış varsayılan ayarlar geçerlidir.
Parameter
Description
Policy name
ESSHookPolicyForMongoDBWhitelist girin.
Policy Document
Aşağıdaki içeriği girin:
{ "Version": "1", "Statement": [ { "Action": [ "ecs:DescribeInstances" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "dds:ModifySecurityIps" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ess:CompleteLifecycleAction" ], "Resource": "*", "Effect": "Allow" } ] }
-
İlkeyi OOSServiceRole RAM rolüne ekleyin.
Sol gezinme bölmesinde seçeneklerini seçin.
-
OOSServiceRole RAM rolünü bulun ve Actions sütununda Grant Permission seçeneğine tıklayın.
Yetkilendirmeyi tamamlamak için OOS tarafından üstlenilen OOSServiceRole RAM rolüne gerekli izinleri ekleyin.
-
Grant Permission sayfasında kaynak kapsamını ve ilkeyi belirtin ve ardından OK düğmesine tıklayın.
Aşağıdaki tabloda bu örnekte kullanılan ayarlar açıklanmaktadır. Aşağıdaki tabloda yer almayan parametreler için önceden tanımlanmış varsayılan ayarlar geçerlidir.
Parameter
Description
Authorized scopeAccount seçeneğini seçin.
PolicyAşağıdaki özel ilkeyi seçin: ESSHookPolicyForMongoDBWhitelist.
Adım 2: Ölçek genişletme amaçlı bir yaşam döngüsü kanca oluşturma ve bir ölçek genişletme olayını tetikleme
Auto Scaling konsolu üzerinde oturum açın.
Soldaki gezinme bölmesinde Scaling Groups seçeneğine tıklayın.
Üst gezinme çubuğunda bir bölge seçin.
-
Yönetmek istediğiniz ölçeklendirme grubunu bulun ve aşağıdaki yollardan birini kullanarak ayrıntılar sayfasını açın:
Scaling Group Name/ID sütununda ölçeklendirme grubunun kimliğine tıklayın.
Actions sütununda Details seçeneğine tıklayın.
-
Bir yaşam döngüsü kanca oluşturun.
Sayfanın üst kısmında Events and Lifecycle Hooks sekmesine tıklayın.
Create Lifecycle Hook düğmesine tıklayın.
-
Yaşam döngüsü kancasını yapılandırın ve OK düğmesine tıklayın.
Aşağıdaki tabloda bu örnekte kullanılan ayarlar açıklanmaktadır. Aşağıdaki tabloda yer almayan parametreler için önceden tanımlanmış varsayılan ayarlar geçerlidir.
Parameter
Description
Name
ESSHookForAddMongoDBWhitelist girin.
Scaling Activity Type
Scale-Out seçeneğini seçin.
Timeout Period
Timeout Period değerini iş gereksinimlerinize göre yapılandırın. Bu örnekte değer 300 olarak ayarlanmıştır. Birim: saniye.
NotZaman aşımı süresi, örneklerde özel işlemler gerçekleştirebileceğiniz süredir. Zaman aşımı süresi özel işlemlerin tamamlanması için gereken süreden kısa olursa işlemler başarısız olabilir. Örneklerde özel işlemlerin tamamlanması için gereken süreyi tahmin etmenizi ve Timeout Period değerini bu tahminlere göre yapılandırmanızı öneririz.
Default Execution Policy
Continue seçeneğini seçin.
Send Notification When Lifecycle Hook Takes Effect
Şablon için aşağıdaki parametreleri yapılandırın:
-
Bildirim Yöntemi: OOS Template seçeneğini seçin.
-
OOS Şablon Türü: Public Templates seçeneğini seçin.
LifeCycleModifyMongoDBIPWhitelist seçeneğini seçin.
ACS-ESS-LifeCycleModifyMongoDBIPWhitelist genel şablonunda ayrıca aşağıdaki parametreleri yapılandırmanız gerekir:
-
MongoDB instance ID: ApsaraDB for MongoDB örneğinizin kimliğini girin. Bu öğreticide örnek olarak bir çoğaltma kümesi örneği kullanılmıştır.
-
Whitelist modification method: Ekle seçeneğini seçin. Bu, bir ölçek genişletme olayına karşılık gelir ve ECS örneğini ApsaraDB for MongoDB örneğinin IP adresi izin listesine ekler.
-
The RAM role assumed by OOS. :
OOSServiceRoleseçeneğini seçin. Yordam bölümünde, ECS, Auto Scaling ve ApsaraDB for MongoDB kaynaklarını yönetmek için gerekli izinleriOOSServiceRoleRAM rolüne verdiniz. OOS, gerekli izinleri elde etmek için bu RAM rolünü üstlenebilir.
-
-
Bir ölçek genişletme olayını tetikleyin.
Bu örnekte bir ölçek genişletme olayı, bir ölçeklendirme kuralı çalıştırılarak manuel olarak tetiklenir. Ölçek genişletme olaylarını zamanlanmış veya olay tabanlı görevler kullanarak da tetikleyebilirsiniz.
NotÖlçeklendirme kurallarını manuel olarak çalıştırdığınızda ölçeklendirme olayları tetiklenirse yaşam döngüsü kancaları devreye girer. Ancak, bir ölçeklendirme grubuna manuel olarak ECS örneği eklediğinizde veya gruptan kaldırdığınızda yaşam döngüsü kancaları devreye girmez.
Sayfanın üst kısmında Scaling Rules and Event-triggered Tasks sekmesine tıklayın.
Scaling Rules sekmesinde Create Scaling Rule düğmesine tıklayın.
-
Ölçeklendirme kuralının özelliklerini ayarlayın ve OK düğmesine tıklayın.
Aşağıdaki tabloda bu örnekte kullanılan ayarlar açıklanmaktadır. Aşağıdaki tabloda yer almayan parametreler için önceden tanımlanmış varsayılan ayarlar geçerlidir.
Parameter
Description
Rule NameAdd1 girin.
Rule TypeSimple Scaling Rule seçeneğini seçin.
OperationDeğeri Add 1 Instances olarak ayarlayın.
Ölçeklendirme kuralları listesinde yeni oluşturulan
Add1kuralını bulun ve Actions sütununda Recurrently seçeneğine tıklayın.OK düğmesine tıklayın.
Ölçeklendirme kuralı çalıştırıldıktan sonra Auto Scaling, ölçeklendirme grubuna bir ECS örneği ekler. Ancak, etkin durumdaki ESSHookForAddMongoDBWhitelist yaşam döngüsü kancası nedeniyle ECS örneği Beklemede Ekleme durumuna geçer. Yaşam döngüsü kancasının zaman aşımı süresi boyunca Auto Scaling, ACS-ESS-LifeCycleModifyMongoDBIPWhitelist genel şablonunda tanımlanan bakım görevlerini yürütmesi için OOS'a bildirim gönderir.
Adım 3: MongoDB örneğinin IP adresi izin listesini kontrol etme
MongoDB konsolu üzerinde oturum açın.
Soldaki gezinme bölmesinde Replica Set Instances seçeneğine tıklayın.
ApsaraDB for MongoDB örneğini bulun ve Instance ID/Name sütununda kimliğine tıklayın.
-
Soldaki gezinme bölmesinde seçeneklerini seçin.
ECS örneğinin özel IP adresi MongoDB örneğinin IP adresi izin listesine eklendiyse ACS-ESS-LifeCycleModifyMongoDBIPWhitelist genel şablonu beklendiği gibi çalışır.
ECS örneği oluşturuldu ancak özel IP adresi MongoDB örneğinin IP adresi izin listesine eklenmediyse, bakım görevlerinin yürütülmesini görüntülemek için OOS konsoluna gidin. Daha fazla bilgi için bkz. (İsteğe Bağlı) Adım 4: OOS yürütmesini görüntüleme.
(İsteğe Bağlı) Adım 4: OOS yürütmesini görüntüleme
OOS konsolu üzerinde oturum açın.
Sol gezinme bölmesinde seçeneklerini seçin.
Zamana göre yürütme görevini bulun ve Actions sütununda Details seçeneğine tıklayın.
-
Açılan yürütme ayrıntıları sayfasında ilgili bilgileri görüntüleyin.
Örneğin, Basic Information bölümünde yürütme kimliğini ve durumunu görüntüleyebilirsiniz. Ayrıca Execution Steps and Results bölümündeki bir görev düğümüne tıklayarak ayrıntılarını görüntüleyebilirsiniz. Daha fazla bilgi için bkz. Yürütme ayrıntılarını görüntüleme.
NotYürütme başarısız olursa yürütme ayrıntıları sayfasında bir hata mesajı görüntülenir.
SSS
Bir bakım görevini çalıştıramazsanız sorunu yürütme sonucundaki hata mesajına göre giderin. Daha fazla bilgi için bkz. SSS.
Aşağıdaki tabloda yaygın hata mesajları açıklanmaktadır.
|
|
|
|
|
|
Auto Scaling hizmetinin mevcut eylemi gerçekleştirmesi için yetkilendirme yapmadınız. |
OOSServiceRole RAM rolünün gerekli izinlere sahip olup olmadığını kontrol edin. |
|
|
RAM kullanıcısı veya RAM rolü ilgili kaynaklarda işlem yapma iznine sahip değil. |
OOSServiceRole RAM rolünün gerekli izinlere sahip olup olmadığını kontrol edin. Örneğin, RAM rolüne OOS izinleri verebilirsiniz. OOS'un OOS şablonunda belirtilen kaynakları yönetebilmesi için RAM rolüne gerekli izinleri vermeniz gerekir. |
|
|
Devam eden yaşam döngüsü kanca eylemi sona erdi veya durduruldu. |
OOS şablonunda belirtilen bakım görevlerinin ayrılan süre sınırı içinde tamamlanabilmesini sağlamak için yaşam döngüsü kancasının zaman aşımı süresini değerlendirin. |