eb upgrade
_ from Ruby 2.1 to Ruby 2.2私はこれに頭をぶつけてきました。 5月に、AWSはRuby Elastic EnvironmentsがRuby-2.2を提供するようになったと発表しました(例:Ruby-2.2-(passenger-standalone)
またはRuby-2.2-(puma)
)。アップグレードできません。既存のRuby-2.1環境からRuby-2.2へ。完全に再作成する必要があるようです...それはばかげているようです。他の誰かがこれを経験していますか?単純なものが欠けているだけですか?
stagingおよびproduction環境で、数か月間Ruby-2.1-(passenger-standalone)
を喜んで使用しています。今度はアップグレード最新のRuby-2.2プラットフォームにアップグレードしたいと思います。 AWSのドキュメントには、これは非常に簡単であると記載されています。実際、一部のドキュメントには、_eb clone <env-name> --update
_を使用できると記載されているようです。そのフラグは、私が使用している_EB CLI 3.4.5
_には存在しません:(さらに、Webコンソールには最新のプラットフォームで複製オプションメニュー項目がありますが、無効になっています。
最新のRuby-2.2インスタンスを取得するためにできることは、まったく新しい環境を最初から作成することだけのようです。これは非常に面倒です。
_$ eb status
Environment details for: staging
Application name: xyz
Region: us-west-2
Deployed Version: fbe7
Environment ID: someId
Platform: 64bit Amazon Linux 2015.03 v1.4.3 running Ruby 2.1 (Passenger Standalone)
Tier: WebServer-Standard
CNAME: bla.bla.bla.elasticbeanstalk.com
Updated: 2015-06-26 22:48:59.689000+00:00
Status: Ready
Health: Green
_
Ruby 2.1を使用していることを確認します。アップグレードしてみましょう:
_$ eb upgrade
Environment already on most recent platform version.
_
さて、それは素晴らしいです、それでプラットフォーム自体はどうですか?
_$ eb platform select
It appears you are using Ruby. Is this correct?
(y/n): y
Select a platform version.
1) Ruby 2.2 (Puma)
2) Ruby 2.2 (Passenger Standalone)
3) Ruby 2.1 (Puma)
4) Ruby 2.1 (Passenger Standalone)
5) Ruby 2.0 (Puma)
6) Ruby 2.0 (Passenger Standalone)
7) Ruby 1.9.3
(default is 1): 2
_
さて、これが私のプラットフォーム設定です:
_$ eb platform show
Current default platform: Ruby 2.2 (Passenger Standalone)
New environments will be running: 64bit Amazon Linux 2015.03 v1.4.3 running Ruby 2.2 (Passenger Standalone)
Platform info for environment "staging":
Current: 64bit Amazon Linux 2015.03 v1.4.3 running Ruby 2.1 (Passenger Standalone)
Latest: 64bit Amazon Linux 2015.03 v1.4.3 running Ruby 2.1 (Passenger Standalone)
_
したがって、新しい環境はRuby-2.2エディションを利用します。それは素晴らしいことですが、新しく作成されたRuby-2.1エディションの代わりに、構成済みのRuby-2.1エディションを真剣に廃止する必要がありますか?いい加減にして?
この課題に対する私の解決策は次のとおりです。
起動に成功したら、すべての環境変数を設定しました。例えばすべてのデータベース、smtp、Rails_ENV/RACK_ENVなど。次に、以前にデプロイしたアプリケーションに移動し、最新の品質バージョンを新しい環境にデプロイするだけです。
これは単純なeb upgrade
よりもはるかに多くの作業であることに同意するでしょう。ラメソース。
私はこの問題に対する別のアプローチを見つけました。
私がそれを機能させる方法は上記のコメントに似ていますが、既存のbeanstalk環境を更新することができ、コードを完全に新しいものにデプロイすることはできませんでした。
私がしたステップ:
aws elasticbeanstalk update-environment --region "REGION" --environment-name "ENV_NAME" --solution-stack-name "64bit Amazon Linux 2018.03 v2.8.1 running Ruby 2.3 (Puma)" --option-settings Namespace=aws:autoscaling:launchconfiguration,OptionName=ImageId,Value="AMI-
xxxxxxxx"
AMI option-settingsが重要でした。これは、既存の環境で新しいインスタンスを起動するために使用するRuby 2.3.7がインストールされたAMIを支援するためです。以前は、ラルフの提案したコマンドを押すだけで、すべての試行で失敗していました。