AWS Elastik Beanstalk'taki en son AMI'ye nasıl yükseltilir?


18

AWS Elastik Beanstalk'ta bir uygulama çalıştırıyorum ve en son AMI'yi kullanmak istersem yeni bir ortam oluşturmam gerekiyor gibi görünüyor.

En son AMI kimliğinin ne olduğunu biliyorsam, ortam yapılandırmasında güncelleyebilirim.

En son Elastik Beanstalk AMI'lerinin kimliğini bulabileceğim bir yer var mı, daha da iyisi, yeni bir sürüm yayınlandığında örneklerin otomatik olarak yeni sürümle değiştirilmesini sağlamak mümkün müdür?


2
Yeni bir ortam başlatın ve başlattığı sunucuda AMI kimliğinin ne olduğunu görün.
ceejayoz

2
Bu biraz acı verici, değil mi?
Benjamin

EB ortamını en son kurduğumda yaklaşık beş dakika sürdü. Amazon Linux AMI'leri üç ayda bir IIRC çıkar. Ayda 1,6 dakika bana çok fazla acı vermiyor.
ceejayoz

Yeniden ifade edeyim: daha iyi bir yol olmalı gibi geliyor . Ama haklısın, önemli değil.
Benjamin

2
Bunları gerçekten sadece sessizce yaymak yerine bazı sürüm notlarına veya yapışkan bir yere göndermeliler.
Ken Liu

Yanıtlar:


2

AWS Beanstalk ortamınızı yükseltmenin önerilen ve desteklenen yolu burada belgelenmiştir ve yönetilen platform güncellemeleri burada tartışılmıştır , dürüst olmak gerekirse, işlerin kolay olmasını istiyorsanız (ve Beanstalk'ın hepsi budur) teorik olarak yalnızca kesintisiz güncellemeler alın ve AWS işlemi yönetir, böylece kesinti olmaz.

Bu nedenle, yönetilen platform güncellemelerinin muhtemelen sizin veya Google'dan gelen başkalarının isteyeceği şey olduğunu tekrarlamak istiyorum, ancak Beanstalk ortamınız için AMI tarafından sağlanan en son AWS'yi bilmek istiyorsanız, AWS CLI ile oldukça önemsiz bir şekilde yapılabilir (teşekkürler Amazon'dan AMI'lerinde adlandırma sözleşmelerini aklına getirin).

Ortamınızdan bir örnekle başlayarak, geçerli AMI'yi almak için örneği açıklayın (geçerli AMI'yı zaten biliyorsanız atlayın).

aws ec2 describe-instances --instance-ids i-0909613f35ec0ffee --query 'Reservations[*].Instances[*].ImageId' --output text

ami-35290a56

Ortaya çıkan AMI kimliğini alın ve tanımlayın.

aws ec2 describe-images --image-ids ami-35290a56 --query 'Images[*][Architecture, Hypervisor, Name, RootDeviceType, VirtualizationType]' --output json

[
    [
        "x86_64",
        "xen",
        "aws-elasticbeanstalk-amzn-2016.03.0.x86_64-python34-hvm-201603290718",
        "ebs",
        "hvm"
    ]
]

Yukarıdaki çıktıyı yeni, sıralı bir girdi olarak kullanabiliriz, describe-imagesancak bu sefer zaman damgalarını *joker sembollerle değiştiriyoruz :

aws ec2 describe-images --filters 'Name=architecture,Values=x86_64' 'Name=virtualization-type,Values=hvm' 'Name=owner-alias,Values=amazon' 'Name=name,Values=aws-elasticbeanstalk-amzn-*.x86_64-python34-hvm-*' --query 'sort_by(Images[*], &Name)[-1].ImageId' --output text

ami-1be5de78

Sözcüksel sıralama ve ISO 8601'in gücü nedeniyle, örneğimde olan en son AMI ile sonuçlanıyoruz ami-1be5de78.

aws ec2 describe-images --image-ids ami-1be5de78 --query 'Images[*].Name' --output text

aws-elasticbeanstalk-amzn-2016.09.0.x86_64-python34-hvm-201612200708

Yine, bu AMI'ye elle değiştirmeyi denemenizi tavsiye etmem, Beanstalk'un tüm bunları sizin için yapacak hükümleri var!


0

AMI'yi değiştirseniz bile, uygun bir AMI FlexibleBeanstalk kullandığı gibi görünüyor. Düzgün çalışmıyor gibi görünüyor. Tüm dosyaları özlüyor. Doğru çalışmıyor.

Güncellenmiş AMI'ye sahip yeni bir Elastik Beanstalk ortamına başlamanız gerektiğini düşünüyorum. Her şeyin çalışmasını sağlayın ve çevre URL'lerini değiştirin.


0

Eb ile gelen, ancak bunu yapmak için gelişmiş sağlık raporlaması için ödeme yapmak zorunda kalacak yönetilen güncelleme özelliklerini kullanabilirsiniz. Veya 'eb platform show' komutunu kullanın; Çalışan bir uygulamada CURRENT = eb platform show your_env_name | sed -n '5p' | cut -d: -f2- | tr -d '[[:space:]]' LATEST = eb platform show your_env_name | sed -n '6p' | cut -d: -f2- | tr -d '[[:space:]]' - çalıştıran bir cron var - Sonra bunları karşılaştırın ve farklı ise eb klonu (varsayılan olarak yeni sürüme geçer) ve sonra cname takas kullanabilirsiniz.


0

Uygulamanızın kontrol paneline gitmek 'Yapılandırma'yı bulun ve' Değiştir'i tıklayın

Bir Platform seçebileceğiniz bir liste görmelisiniz. En son sürüm bu listede belirtilir. Platform seçme

AWS EB, farklı programlama dilleri için özel ayarlar kullanır. Kurulumların bir listesini http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html belgelerinde bulabilirsiniz.

Her platformun hangi AMI sürümünü kullandığını gösteren tablolar vardır.

Bu güncellemeleri otomatik olarak çalıştırmanın bir yolunu bulamadım. Aslında platformdaki değişiklikleri gözden geçirmeyi ve dağıtmadan önce test etmeyi tercih ediyorum.


0

Hizmetinizi Elastik Beanstalk seçin, Gösterge Tablosunda genel bakış göreceksiniz, sağ panelde AMI yapılandırmasını görebilirsiniz, Yükseltmeyi değiştir seçin veya AMI'nizi düşürün. Bu noktada, örneğin yerini alacaksınız. Bu yüzden yedeklemeyi veya klonu yapın.


-2

Beanstalk'ta barındırılan mevcut uygulamamı aşağıdaki adımları kullanarak en son Amazon Linux AMI'ye güncelleyebildim.

1- AWS Konsolu'na giriş yapın ve Beanstalk portalına gidin.

2- Uygulamanızın yapılandırma sayfasına gidin ve 'Örnekler'e tıklayın.

3- AMI-xxxxxx gibi olması gereken AMI kimliğini bulun.

4- AMI kimliğini alın ve EC2 konsoluna gidin ve AMI'ye tıklayın.

5- Görünümü Genel Görüntüler olarak değiştirin ve Beanstalk yapılandırmasından daha önce alınan AMI kimliği olup olmadığına bakın.

6- AMI'yi yeni bir örnek olarak başlatın.

7- Bir kez başlatıldığında örnek oturum açın ve uygulama gereksinimlerinize göre özelleştirin.

8- Her şey yerine getirildikten sonra istediğiniz gibi bu yeni örneğin bir AMI imajını yaratın.

9- 8. adımda oluşturulan yeni örnek AMI kimliğini alın ve bunu Beanstalk uygulama yapılandırmanıza uygulayın.

10- Eski örneği silmeyecek ve özelleştirme AMI'nizle yeni örneği oluşturmayacak ve aynı zamanda en son uygulamanızı yeni örneklere dağıtacaktır.


1
Bence soruyu yanlış anladın. Özel bir AMI nasıl oluşturulacağını ve kullanılacağını sormadım, yeni bir ortam oluşturduğunuzda uygulanan en son varsayılan Elastik Beanstalk AMI kimliğinin ne olduğunu ve mümkünse yeni AMI'nin otomatik olarak nasıl uygulanacağını nasıl sorduğumu sordum. AWS tarafından piyasaya sürüldüğünde.
Benjamin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.