TYPO3 on AWS - Migration, Maintenance, and Operations
Thanks to Sebastian Grau from root360 for sharing!
In my last blog post I highlighted some of the main benefits of operating TYPO3 in the AWS Cloud. If a migration has been decided, the successive steps involve a high degree of precise planning.
There are six different strategies of cloud migration. However, when migrating TYPO3 to the cloud, only two of them are relevant - 'Rehost' and 'Replatform'. The important question that has to be addressed is whether the infrastructure, which is required for hosting, is essentially being adapted in the cloud or whether a new infrastructure is being planned. Either changes to the application are not made at all (rehost) or they are made only to a small extent (replatform).
Migration strategy rehost (also called 'Lift and Shift')
Also known as 'Lift and Shift', rehost is the simplest form of cloud migration. This strategy can easily be performed by installing TYPO3 on a single Amazon EC2 instance. In terms of cost efficiency and reliability, it is recommended to decouple TYPO3 and the database. The AWS service Amazon RDS provides the best conditions for this. In order to enhance data security, we regularly advise our customers to use the in-house Amazon Aurora database. It stores a total of six copies of the data in three data centers ensuring optimal data durability. Furthermore, the memory increases automatically according to the required storage volume. Starting from such a simple initial setup, a number of advantages can already be used.
This setup makes it possible to ensure optimal load times and/or create a copy of your infrastructure in other AWS regions. Likewise, vertical scaling, albeit manually, is also possible at any time. From those advantages I presented in my last post, the advantages of security and performance are ensured. In any case, moving into the AWS Cloud implies an increased flexibility.
Replatform migration strategy (also called 'Lift, Tinker and Shift')
Assuming that there is an even higher focus on high availability, performance, and cost efficiency your AWS infrastructure needs to be planned accordingly. Likewise, adjustments to the TYPO3 installation are also necessary in order to make the most of the benefits of AWS.
In this way, additional services should be integrated to improve performance. In particular, Amazon ElastiCache and Amazon Cloudfront are part of a rather sophisticated caching strategy. Whilst ElastiCache is used to relieve the database, Cloudfront can be used for caching static content such as images and videos. To enhance security, AWS offers a number of different services. As root360, we implement AWS WAF (Web Application Firewall) quite often. However, security also includes optimal data availability and resiliency. Ideally, this can be solved through the AWS architecture, such as a redundant design of key components. The following figure illustrates a possible use case.
Important here is the use of a professional deployment process as well as various adjustments in TYPO3. In the simplest case, the URLs of the Cloudfront endpoints are to be included in the TYPO3 installation accordingly. It is also important to ensure that only non-executable code is stored in the EFS. This requires, in particular, a separate storage of TYPO3 temp files depending on the type of temp file on either your web-servers or your EFS. The effort to prepare TYPO3 for a scalable AWS environment with separate components should not to be underestimated.
And after migration ...?
Setting up the AWS architecture and customizing your TYPO3 installation are not the only aspects to consider when preparing for the migration. This is because ensuring operations usually requires existing know-how and effective processes for daily maintenance and response mechanisms for incidents such as database overload, outages, etc. An interesting tool for analysing whether you are prepared for the migration to the AWS cloud is the AWS Cloud Adoption Readiness Tool. This gives you a first indication as to where you currently are when it comes to "cloud readiness". The analysis highlights six areas: security, business, people, operations, platform, and process. Experience has shown that in more complex projects, the effort required for the transformation, as well as the development of skills or a corresponding team, is considerable. For this reason specialized managed service providers have established themselves, offering a migration and subsequent maintenance cost-effectively.