What is AWS Elastic Beanstalk?
Elastic Beanstalk is Amazon Web Services' web application platform, designed for the deployment and scaling of web applications developed with server-side languages such as Java, PHP and Python.
We use Elastic Beanstalk as part of our AWS development and web application hosting, as it's well-suited for deploying PHP and MySQL web applications in the cloud, especially if they require load-balanced scalable capacity or multi-instance redundancy. Elastic Beanstalk is often our platform of choice when migrating a legacy PHP & MySQL application to the cloud from a more traditional Linux VPS server - we can leverage the service layer of Elastic Beanstalk to provide enhanced stability, scalability and reliability.
Your AWS Elastic Beanstalk Platform Version is Approaching Retirement
Amazon Web Services will send you alerts if it detects that an application hosted on Elastic Beanstalk is running a platform version that is approaching retirement. You may receive an email warning you of the platform retirement around 20 days before the retirement date.
This isn't a whole lot of warning time, so it's worth putting in place processes to make platform updates on a regular basis.
If you don't have in-house capacity for making the required platform updates, we'd also recommend contacting an AWS development agency such as Si Novi as soon as possible to assist with the migration.
Using Managed Updates with your Elastic Beanstalk applications
We use Elastic Beanstalks's own Managed Updates feature to provide regular platform updates for EB-hosted web applications. This automated service allows you to schedule platform updates and EC2 instance replacements on a regular basis. This keeps platform versions up-to-date and running the latest software. However it only permits minor and patch or patch-only updates.
Minor version updates include support for new Elastic Beanstalk features, while Patch version updates provide bug fixes and performance improvements, and can include minor changes to the EC2 instance software, scripts, and configuration settings.
The limitation of Managed Updates is that you can't apply major version updates, becasue a major version update might introduce changes that are backwardly incompatible, and therefore might inadvertently break your application.
This is the main reason why AWS issues notifications about Elastic Beanstalk platform version retirement - because a major platform update must be performed manually.
How to update your Elastic Beanstalk platform version before retirement
As experienced AWS developers with a range of web applications hosted on Elastic Beanstalk, we're accustomed to making Elastic Beanstalk platform updates.
Unfortunately updating retired Elastic Beanstalk platform versions isn't as easy as clicking a button. A new Elastic Beanstalk Environment must be provisioned using the new platform version, and the web application deployed to it.
At this point it's important to test the web application within the new EB environment to make sure it's operating normally and there are no incompatiblilies. For example, this could be an issue with newer PHP versions, where updating the EB platform version also requires an update to the PHP software version. PHP 7.1 has recently become end-of-life, and this has meant the retirement of Elastic Beanstalk platform versions running PHP 7.1. We like to regularly maintain web applications, updating PHP to latest versions so we're familiar with the typical updates required to make an application compatible with later version of PHP.
Once any required PHP or other application updates have been made, and it has been confirmed that the web application is running normally in the new Elastic Beanstalk environment (and on the new platform version), traffic can be diverted to the new server. This is usually achieved with a Blue/Green switch approach using DNS changes to point web traffic to the new EB environment. Done properly, your users should not experience any downtime.
What happens if I ignore my Elastic Beanstalk platform version retirement?
At first, not a lot. AWS say that once an Elastic Beanstalk platform version is retired, they will no longer issue patches or security fixes for these retired platform versions. This means that your EB environment and the web application hosted on it will continue to operate for some time following the retirement - but possibly at increased risk of reliability or security issues.
Eventually however, AWS may withdraw the platform version entirely which may have a severe impact on your application.
We'd always recommend working with AWS architects and developers such as ourselves to make the platform updates in plenty of time to ensure the continued operation of your web applications.