Tüm Ürünler
Search
Belge Merkezi

Auto Scaling:Application publishing

Son Güncelleme:Oct 01, 2026

Bir ölçeklendirme grubundaki ECS örneklerinde uygulamaları dağıtın ve güncelleyin. Yaşam döngüsü kancaları, ölçek büyütme sırasında yayınlamayı ve ölçek küçültme sırasında zarif kapatmayı otomatikleştirir.

Genel Bakış

Uygulama yayınlama, kaynak dosyaları ve başlatma/durdurma betiklerini bir dağıtım yapıtı içinde paketler ve bunları standart bir yayın süreci aracılığıyla ölçeklendirme grubu örneklerine dağıtır.

Desteklenen dağıtım yapıtı türleri

Uygulama kaynak dosyalarınızın depolandığı yere göre bir dağıtım yapıtı türü seçin:


Tür


Açıklama


Senaryolar


OSS dosyası


Uygulama dosyaları (JAR, ZIP vb.) OSS'de depolanır. Yayınlama sırasında sistem dosyaları indirir ve betikleri yürütür.


Java uygulamaları gibi geleneksel uygulama dağıtımları.


ECS görüntüsü


Uygulama bir ECS görüntüsünde önceden yüklenmiştir. Bir yayınlama sırasında sistem örneğin sistem diskini değiştirir.


Hızlı başlatma gerektiren veya karmaşık ortamlara sahip uygulamalar.


Docker görüntüsü


Uygulama görüntüsü Container Registry (ACR) içinde depolanır. Yayınlama sırasında sistem görüntüyü çeker ve konteyneri başlatır.


Konteynerleştirilmiş uygulama dağıtımları.


Yalnızca komut çalıştırma


Kaynak dosya belirtilmez. Yalnızca bir shell betiği yürütülür.


Esnek betikli dağıtımlar veya üçüncü taraf kaynaklar kullanan dağıtımlar.

Yayınlama yetenekleri

  • Yayınlama modu: Tam yayınlama (tüm örnekler) veya kanarya sürümü (doğrulama için seçilen bir alt küme).

  • Toplu iş kontrolü: Dağıtım riskini azaltmak için yapılandırılabilir duraklamalarla toplu işler halinde yayınlama yapın.

  • Auto Scaling entegrasyonu:

    • Ölçek büyütmede otomatik yayınlama: Yeni örnekler en son sürümü otomatik olarak dağıtarak tutarlılığı sağlar.

    • Ölçek küçültmede zarif kapatma: Bir örneği kaldırmadan önce sistem durdurma betiğini yürüterek iş süreçlerinin sonlandırmadan önce tamamlandığından emin olur.

Sınırlamalar

  • Örnek işletim sistemi: Yalnızca Linux tabanlı ECS örnekleri desteklenir.

  • Betik dili: Başlatma ve durdurma betikleri shell betikleri olmalıdır.

  • Dağıtım akışı: Sistem başlatma betiğinden önce durdurma betiğini çalıştıran önce durdur-sonra başlat ilkesini izler.

  • Veri riski: ECS görüntüsü dağıtım türünü kullandığınızda sistem örneğin sistem diskini değiştirir. İlerlemeden önce verilerinizi yedeklemelisiniz.

Dağıtım yapıtı oluşturma

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

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

  3. Üst gezinme çubuğunda Auto Scaling'in etkinleştirildiği bölgeyi seçin.

  4. Ölçeklendirme grubu ayrıntıları sayfasına gitmek için bir Scaling Group ID seçin. App Release > Deployment > Create a deployment artifact seçeneklerini belirleyin.

  5. Kullanım durumunuza göre bir dağıtım yapıtı türü seçin ve yapılandırın.

    OSS dosyası

    OSS'de depolanan uygulama paketleri (JAR, WAR, ZIP) içindir. Yayınlama sırasında sistem dosyaları çalışma dizinine indirir, durdurma betiğini ve ardından başlatma betiğini çalıştırır.

    • Yapılandırma öğeleri:

      • OSS Bilgileri: OSS Region ve OSS Bucket seçin. OSS file alanına paketteki dosyanın yolunu girin; örneğin apps/sample-spring-1.0-SNAPSHOT.jar.

      • İç ağ üzerinden indirme: ECS örneği ile OSS paketi aynı bölgedeyse daha hızlı indirme için bu özelliği etkinleştirin.

    • Örnek başlatma/durdurma betikleri:

      Uygulama başlatma betiği:

      start_application() {
        set -e
        yum install -y maven-3.5.4
        java -jar ./sample-spring-1.0-SNAPSHOT.jar &
      }
      
      start_application

      Uygulama durdurma betiği:

      Önemli

      Durdurma işlemine gerek yoksa durdurma betiğini boş bırakın. Sistem dağıtım sırasında bunu atlar.

      ### Stop the application (if any)
      stop_application() {
        PID=$(ps -ef | grep "sample-spring-1.0-SNAPSHOT.jar" | grep -v "grep" | awk '{print $2}')
        if [ -n "$PID" ]; then
          kill -9 $PID
        fi
      }
      
      stop_application

    ECS görüntüsü

    Karmaşık ortamlara veya sıkı başlatma süresi gereksinimlerine sahip uygulamalar içindir. Yayınlama sırasında sistem örnek sistem disklerini belirtilen görüntüyle değiştirir.

    ECS image dağıtım yapıtı türünü seçtiğinizde Add düğmesine tıklayın ve ölçeklendirme grubunuzla aynı bölgedeki bir görüntü seçin.

    • Yapılandırma öğeleri:

      • Bölge: Ölçeklendirme grubuyla aynı bölgeyi seçin.

      • Görüntü Kimliği: Dağıtılan uygulamayı içeren ve ölçeklendirme grubuyla aynı bölgede bulunan özel bir görüntü seçin.

    Önemli

    ECS image dağıtım yapıtı türü uygulama başlatma/durdurma betiklerini desteklemez. Uygulamayı otomatik olarak başlatmak için uygulamanın önyüklemede başlamasını yapılandırın veya bir yaşam döngüsü kancasını manuel olarak yapılandırın.

    Docker görüntüsü

    Konteynerleştirilmiş uygulamalar içindir. Yayınlama sırasında sistem ACR'den görüntüyü çeker, önceki konteyneri kaldırmak için durdurma betiğini çalıştırır (varsa) ve ardından yeni konteyneri başlatmak için başlatma betiğini çalıştırır.

    Önemli

    Bu özellik yalnızca Container Registry (ACR) Kurumsal Sürüm örneklerinden Docker görüntülerini destekler. ACR Kişisel Sürüm örneklerinden veya üçüncü taraf görüntü depolarından görüntüleri dağıtmak için yalnızca komut çalıştırma dağıtım türünü kullanın.

    • Yapılandırma öğeleri:

      • Docker Görüntü Bilgileri: Container Registry Region, Container Registry Instance ID, Namespace, Repository Name, ve Image Tag gibi parametreleri ayarlayın.

      • İç ağ üzerinden çekme: Görüntü deponuzun ve ECS örneğinizin aynı VPC'de olduğundan emin olun. VPC için erişim denetimini yapılandırma.

    • Başlatma/durdurma betikleri:

      Uygulama başlatma betiği:

      Önemli
      • Hedef örneklerde Docker yüklü olmalıdır.

      • Sistem betik yürütmeden önce Docker görüntüsünü otomatik olarak çeker. Betiğe görüntü çekme komutlarını dahil etmeyin.

      ### During a release, the Docker image is automatically pulled to the ECS instance. You can directly start the container.
      ### Start the current version of the container.
      ### Replace <image_name> with the actual image address.
      start_application() {
        image_name="<image_name>"
        container_name="my-container"
        docker run -d -p 8080:8080 --name ${container_name} ${image_name}
      }
      
      start_application

      Uygulama durdurma betiği:

      Önemli

      Durdurma işlemine gerek yoksa durdurma betiğini boş bırakın. Sistem dağıtım sırasında bunu atlar.

      stop_application() {
        # Find the container by its name and delete it if it exists.
        container_name="my-container"
        container_id=$(docker ps -aq -f name=${container_name}) 
        if [ -n "$container_id" ]; then
          docker rm -f $container_id
        fi
      }
      
      stop_application

    Yalnızca komut

    Kaynak dosya gerekmez — yalnızca bir shell betiği çalıştırır; örneğin kodu üçüncü taraf bir kaynaktan çekme. Sistem durdurma betiğini ve ardından başlatma betiğini çalıştırır.

    • Yapılandırma öğeleri: Dağıtım kaynağı gerekmez. Yalnızca Working Directory belirtin.

    • Örnek başlatma/durdurma betiği (genel görüntü çekme):

      Uygulama Başlatma Betiği:

      ### Start the current version of the application.
      start_application() {
         repo="<repo>"
         image="<image>"
         container_name="my-container"
         docker login --username=${username} --password=${password} $repo
         docker pull $image
         docker run -d -p 8080:8080 --name $container_name $image
      }
      
      start_application

      Uygulama durdurma betiği:

      Önemli

      Durdurma işlemine gerek yoksa durdurma betiğini boş bırakın. Sistem dağıtım sırasında bunu atlar.

      ### Stop the container (if any).
      stop_application() {
        # Find the container by its name and delete it if it exists.
        container_name="my-container"
        container_id=$(docker ps -aq -f name=${container_name}) 
        if [ -n "$container_id" ]; then
          docker rm -f $container_id
        fi
      }
      
      stop_application
  6. Yapılandırmayı tamamladıktan sonra Create and Publish veya Create Only düğmesine tıklayın.

    Create and Publish düğmesine tıklamak sizi Deployment Release yapılandırma sayfasına yönlendirir.

Dağıtım yapıtı yayınlama

  1. App Release sekmesinde Deployment Release > Publish seçeneklerini belirleyin.

  2. Yayınlamak istediğiniz dağıtım yapıtının Deployment Artifact ID değerini seçin.

  3. Yayınlama ilkesini yapılandırın:

    • Yayınlama Modu:

      • Tam yayınlama: Gruptaki tüm örneklere dağıtım yapar.

      • Canary Release: Doğrulama için manuel olarak seçilen örneklere dağıtım yapar.

    • Toplu İş İlkesi: Execution Batch sayısını (örneğin 2) ayarlayın ve bir Batch Mode (Duraklama Yok, İlk Toplu İşten Sonra Durakla veya Her Toplu İşten Sonra Durakla) seçin.

    • Ölçeklendirme Senaryoları: Ölçek büyütmede otomatik yayınlama ve ölçek küçültmede zarif kapatma özelliklerini etkin tutun.

      • Ölçek büyütmede otomatik yayınlama: Ölçek büyütme sırasında eklenen yeni örneklere uygulamayı dağıtır. Bir ölçek büyütme yaşam döngüsü kancası otomatik olarak yapılandırılır.

      • Ölçek küçültmede zarif kapatma: Örnek kaldırılmadan önce durdurma betiğini yürütür. Bir ölçek küçültme yaşam döngüsü kancası otomatik olarak yapılandırılır.

  4. Yayınlamayı başlatmak için OK düğmesine tıklayın. Yürütme durumunu ve günlükleri görüntülemek için listedeki Details bağlantısına tıklayın.

Üretim ortamı en iyi uygulamaları

Üretim kararlılığı için en iyi uygulamalar:

  • Yayınlama risklerini azaltma:

    • Yeni sürümü önce küçük bir örnek kümesinde doğrulamak için Canary Release kullanın.

    • Tam bir yayınlama için toplu iş yayınlamalarını etkinleştirin ve Suspend First Batch seçeneğini belirleyin. Sonraki toplu işlere geçmeden önce ilk toplu işi doğrulayın.

  • İş sürekliliğini sağlama: Uçuştaki isteklerin tamamlanmasını bekleyen ve sonlandırmadan önce bağlantıları kapatan bir durdurma betiği ile ölçek küçültmede zarif kapatma özelliğini etkinleştirin.

  • Sürüm tutarlılığını sağlama: Yeni örneklerin her zaman en son sürümü çalıştırması için ölçek büyütmede otomatik yayınlama özelliğini etkinleştirin.

SSS

  • Windows desteği

    Hayır. Yalnızca Linux tabanlı ECS örnekleri desteklenir.

  • Yayınlama sırasında ölçeklendirme

    Evet. Uygulama yayınlama, ölçeklendirme etkinliklerini engellemez.

  • Yayınlama günlükleri ve sonuçları

    Deployment Release listesine gidin ve her örnek için yürütme durumu ile betik çıkış günlüklerini görüntülemek üzere bir Execution ID değerine tıklayın.

  • Dağıtım hatasının etkisi

    Bir betik başarısız olursa ilgili örnek Başarısız durumunda görünür. Toplu iş yayınlaması ve Suspend Each Batch veya Suspend First Batch seçeneğiyle sonraki toplu işler işlenmez, böylece etki alanı sınırlanır. Önce küçük bir örnek kümesi üzerinde doğrulama yapmak için Canary Release kullanın.

  • Betik yürütme dizini

    Betikler, dağıtım yapıtı oluşturulurken belirtilen Çalışma Dizini'nde yürütülür.