How to update platform version in AWS ElasticBeanStalk? - amazon-web-services

We have a production ElasticBeanStalk on N.Virginia region. This environment uses a deprecated platform branch. Amazon recommended that we upgrade to a supported platform branch.
Platform branch - Node.js running on 64bit Amazon Linux
Current Platform version - 4.10.2
Current node js version - 10.16.3
Recommended Platform version - 4.17.9
I just tried to upgrade to a supported platform branch for Elastic Beanstalk. When I try to change the version in Platform, Amazon recommend us to clone the current environment, which creates a newer version of the platform, and then swap the CNAME of the environments.
After I cloned my environment, its Health status like "No Data".
When I try to change the Platform version in cloned environment, it doesn't allow me to update due to Health status is Invalid state.
Can any one please advice on this issue? Thanks in Advance.

Nodejs 4.17.9 is only available for 64bit Amazon Linux 2 v5.4.4 running Node.js 14 EB platform version. This EB is based on Amazon Linux 2 (AL2). Your current version uses AL1. They are incompatible with each other.
This means you have to manually migrate your current EB application to new environment based on AL2. The general steps for this are described in AWS docs:
Migrating your Elastic Beanstalk Linux application to Amazon Linux 2

Related

How do I change the platform branch when cloning an environment?

I need help fixing a deprecated Elastic Beanstalk Environment running Python with Amazon Linux. Based on the information provided Amazon Linux is deprecated and I have to switch the platform to Amazon Linux 2. My Elastic Beanstalk status is severe and my web portal is not working.
See image insert.
I tried to clone the platform and simply change to the recommended supported platform Amazon Linux2 however the option to switch is not provided as seen in the screenshot below:
How do I get this done the easy way without having to do it from scratch?
Please help. Thank you.
How do I get this done the easy way without having to do it from scratch?
You can't. It must be done manually as EB platforms based on AL2 are much different then those based on AL1. AWS provides a guide how to do it:
Migrating your Elastic Beanstalk Linux application to Amazon Linux 2

Unable to upgrade platform version on Elastic Beanstalk

Currently my workload is running on "Tomcat 8.5 with Java 8 running on 64bit Amazon Linux/3.3.9" and want to upgrade to Amazon Linux 2 and run my workload on "Tomcat 8.5 with Corretto 8 running on 64bit Amazon Linux 2/4.2.5". For testing was trying to clone the existing environment but don't see an option to upgrade the platform. The platform option is greyed out. Is this by design or am i doing something wrong ?
Is this by design or am i doing something wrong ?
Its by design and you have to do it manually. The reason is that EB platforms based on Amazon Linux (AL1) are incomtabile with those based on AL2. This means that there is no automated procedure for the upgrade. You have to follow the AWS docs to do manual upgrade:
Migrating your Elastic Beanstalk Linux application to Amazon Linux 2

Update deprecated php platform on Elastic Beanstalk

When I log in Elastic Beanstalk, I see that my platform is deprecated:
I guess it is because of the 7.2 PHP version that is now unsupported.
But when I click on change I don't see any higher version. In addition I can't find where in ElasticBeanstalk I can change the PHP version of my app.
The support for 64bit Amazon Linux 2018.03 v2.9.17 running PHP 7.2 finished on May 2, 2021. The only current versions of EB for PHP are based on Amazon Linux 2 (AL2).
Since AL1 is largely different then AL1 (what you have now), the only way to upgrade is to perform migration from AL1 to AL2 as explained in:
Migrating your Elastic Beanstalk Linux application to Amazon Linux 2

Can AWS CodeDeploy be used to deploy a single application to both Linux and Windows servers?

The AWS CodeDeploy appspec.yaml format defines an os parameter, which the documentation defines as:
This section specifies the operating system value of the instance to
which you deploy. It is required. The following values can be
specified:
linux – The instance is an Amazon Linux, Ubuntu Server, or RHEL
instance.
windows – The instance is a Windows Server instance.
Does this mean that CodeDeploy does not support deploying the same application to both Windows and Linux servers using the same application definition? For example, I may have a java application that will run quite happily on both servers - is this supported?

Auto pick the latest java SE configuration for EBS in AWS

A spring-boot application is deployed to AWS using a cloud -formation script. It fails to deploy the application when the Java SE is updated to a later version giving a similar error as below.
No Solution Stack named '64bit Amazon Linux 2018.03 v2.7.1 running Java 8' found.
Is it possible to determine the Java SE version supported by the AWS (for EBS) authomatically? Can I retrieve the latest value somehow?
Thanks in advance
Can you run this aws elasticbeanstalk list-available-solution-stacks from the CLI by giving the region also if it is not configured before. Then you can see whether the above give solution stack is listed. If not you have to raise a ticket to aws, asking them to make the solution stack available in your region. 64bit Amazon Linux 2018.03 v2.7.1 running Java 8 is one of the aws new solution stack so use the CLI and make confirm it's available in your region.