Tüm Ürünler
Search
Belge Merkezi

Auto Scaling:Automatically manage ECS instances in a MongoDB IP whitelist

Son Güncelleme:Oct 14, 2026

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.

    Not

    Bu 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:

Not

Ö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.

  1. RAM konsolu üzerinde oturum açın.

  2. Bir ilke oluşturun.

    1. Sol gezinme bölmesinde Permissions > Policies seçeneklerini seçin.

    2. Policies sayfasında Create Policy düğmesine tıklayın.

    3. 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"
              }
          ]
      }
  3. İlkeyi OOSServiceRole RAM rolüne ekleyin.

    1. Sol gezinme bölmesinde Identities > Roles seçeneklerini seçin.

    2. 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.

    3. 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 scope

      Account seçeneğini seçin.


      Policy

      Aş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

  1. Auto Scaling konsolu üzerinde oturum açın.

  2. Soldaki gezinme bölmesinde Scaling Groups seçeneğine tıklayın.

  3. Üst gezinme çubuğunda bir bölge seçin.

  4. 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.

  5. Bir yaşam döngüsü kanca oluşturun.

    1. Sayfanın üst kısmında Events and Lifecycle Hooks sekmesine tıklayın.

    2. Create Lifecycle Hook düğmesine tıklayın.

    3. 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.

      Not

      Zaman 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. : OOSServiceRole seçeneğini seçin. Yordam bölümünde, ECS, Auto Scaling ve ApsaraDB for MongoDB kaynaklarını yönetmek için gerekli izinleri OOSServiceRole RAM rolüne verdiniz. OOS, gerekli izinleri elde etmek için bu RAM rolünü üstlenebilir.

  6. 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.

    1. Sayfanın üst kısmında Scaling Rules and Event-triggered Tasks sekmesine tıklayın.

    2. Scaling Rules sekmesinde Create Scaling Rule düğmesine tıklayın.

    3. Ö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 Name

      Add1 girin.


      Rule Type

      Simple Scaling Rule seçeneğini seçin.


      Operation

      Değeri Add 1 Instances olarak ayarlayın.

    4. Ölçeklendirme kuralları listesinde yeni oluşturulan Add1 kuralını bulun ve Actions sütununda Recurrently seçeneğine tıklayın.

    5. 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

  1. MongoDB konsolu üzerinde oturum açın.

  2. Soldaki gezinme bölmesinde Replica Set Instances seçeneğine tıklayın.

  3. ApsaraDB for MongoDB örneğini bulun ve Instance ID/Name sütununda kimliğine tıklayın.

  4. Soldaki gezinme bölmesinde Data Security > Whitelist Settings 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

  1. OOS konsolu üzerinde oturum açın.

  2. Sol gezinme bölmesinde Automated Task > Task Execution Management seçeneklerini seçin.

  3. Zamana göre yürütme görevini bulun ve Actions sütununda Details seçeneğine tıklayın.

  4. 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.

    Not

    Yü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.


Error message


Cause


Solution


Forbidden.Unauthorized message: A required authorization for the specified action is not supplied.

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.


Forbidden.RAM message: User not authorized to operate on the specified resource, or this API doesn't support RAM.

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.


LifecycleHookIdAndLifecycleActionToken.Invalid message: The specified lifecycleActionToken and lifecycleActionId you provided does not match any in process lifecycle action.

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.