First of all, if you are looking to “AWS data transfer”, this means you need to move or migrate your website, application or blog to another hosting specific to AWS. For this scenario, I will be providing a step by step guide and some considerations needed of how to transfer data to AWS.
Here’s the deal:
If you are looking to migrate or move “your domain” to AWS Route53, this implies that you have your domain DNS management on Godaddy, Registrar or any other; and need to transfer it to AWS Route 53 (Amazon DNS Manager) and manage everything from there. This process involves to change/point your Nameservers from Godaddy to AWS.
As you saw, every migration strategy is different, and its successful application depends on the careful analysis of the current assets and environment to determine the next steps. The following are the most common migration situations and our recommendations for each case.
Table of content
- Why Migrate to AWS?
- Considerations before transfer data to AWS
- Tips and Tricks for transfer your website to AWS
- Steps and procedure to migrate your website to AWS
- How much does it cost to Migrate a website or web application to AWS?
Why Migrate to AWS?
If you’re still doubtful about moving to AWS, review this post about the digital transformation with AWS and Why you need the AWS Cloud, where you can see the business and technical benefits that could bring to your organization.
What are you looking for?
“Our migration strategies have ZERO downtime, improved Website speed (at least 2 secs) and 90% score on Google PageSpeed Guaranteed.”
Another DNS and migration question is whether you can point your domain to an external server outside of Godaddy, and the answer is YES. You can have your domain at Godaddy/NameCheap and point this domain to an external server (Ex. AWS Amazon EC2 server).
Although this procedure and technique can be applied to any WooCommerce, Drupal, Magento, PHP, Laravel or any other framework, this article “transfer data to AWS” will be considering WordPress as an example. And the good news is that it also applies to any other Hosting provider like Azure, DigitalOcean, Google Cloud, Bluehost, etc. So, if you are looking how to migrate WordPress to AWS or any other hosting these considerations will be useful for your migration process.
Considerations before transfer data to AWS
Evaluate your actual hosting plan: Whether you’re using Cpanel, Cpanel reseller or VPS, it’s important to know how big your plan is, how much resources are you consuming (Ram/CPU/Storage) and, whether you’re planning to grow your hardware capacity on AWS in terms of increasing your CPU and RAM in the new AWS EC2 Server.
- Evaluate your actual hosting plan: Whether you’re using Cpanel, Cpanel reseller or VPS, it’s important to know how big your plan is, how much resources are you consuming (Ram/CPU/Storage) and, whether you’re planning to grow your hardware capacity on AWS in terms of increasing your CPU and RAM in the new AWS EC2 Server.
- Determine whether you want to GROW and scale your actual website into a highly scalable website: With AWS, you could add a high-performance server, a load balancer, website redundancy and more. Therefore, analyze whether you would like to scale your website or keep current architecture.
- Confirm you have LAMP/LEMP stack deployed on your AWS EC2 Server: “E” means Nginx Web server.
- Identify your actual PHP version and new PHP version on the destination (AWS): For example, It’s very common to have PHP 5.x and in the new AWS EC2 Server with a newer PHP version (Php 7.x) deployed, if so, you’ll probably have problems with PHP incompatibilities – Bear this in mind!
- Confirm your actual database size and WordPress installation (Code size): This consideration will help prepare you for the new setup on AWS and provision the new AWS server respectively.
- Identify Nginx and PHP modules: Map and identify current Nginx and PHP modules and quickly deploy and mirror them on the new AWS EC2 instance.
- Identify whether your actual website needs a Mail Server: Do you need a dedicated mail server or do you just need to send emails through the website contact form or registration? Ex. [email protected], [email protected], etc.
Tips and Tricks for transfer your website to AWS
- If you care about speed, high scalability, and Google Page speed score, you might need to remove cPanel/Bitnami or any other Panel. These panels can impact the website speed.
- If you can, remove Apache and replace it with Nginx. Nginx is a high-performance web server which can serve more traffic, improve server performance and use fewer resources. Nginx > Apache
- Perform this “Wordpress migration to AWS” with a Migration Expert. A web developer will take 3-4X times more than a migration expert and with a potential downtime.
- Make sure to upgrade your website with PHP 7.x. Having the most recent version, considerably improves the Speed, memory management, and cache ratio.
- Consider adding a CDN to your website. Either CloudFlare CDN or AWS CloudFront.
- Consider Amazon S3 for your static content, and integrate it with your chosen CDN.
Assumptions for this migration
The following are the assumptions made for this guide.
- We are assuming that you already have the LEMP stack setup on the new AWS EC2 Server. Otherwise, go to the tutorials mentioned at the beginning on how to setup a LAMP stack with WordPress.
- We are considering WordPress for this scenario.
- We are assuming that you used 1 server for the whole setup, it’s common to migrate a web application into a scalable environment, Ex. Split Mysql database into two EC2 Servers or AWS RDS (The AWS managed database).
Steps and procedure to migrate your website to AWS
WordPress Migration Process
- Setup LEMP stack: Again, LEMP stack is not included, you need to follow the above links.
- Backup and transfer your current WordPress files to AWS: Identify where your current WordPress (Document Root) folder is located, backup your WordPress files and move it to the new destination (AWS EC2 Server). Tools required: gzip and FTP/SFTP/SSH.
- Configure Nginx Vhost: On the side of AWS, configure your new Nginx Vhost in /etc/nginx/nginx.conf and restart Nginx.
- Create the SSL/HTTP certificate using Let’s Encrypt for FREE: Yes, you can create a certificate for free with “Let’s encrypt” tool or buy a certificate on Godaddy, rapidssl, ssls.com, etc.
Google ranks websites with a higher score on the sites that have SSL/HTTPs enabled. So, it’s essential to have your domain ready for https, after the process of transfer data to Amazon Web Service.
- Configure SSL/HTTPS certificate on Nginx: Configure SSL/HTTPS Certificate for your new WordPress site in Nginx. This activity is handled by Nginx, but you’ll also need to create another vhost on Nginx using port 443.
- Don’t forget about PHP-fpm: PHP FastCGI Process Manager is the default PHP manager for Nginx web servers. It helps increase concurrent requests and uses less memory, which is highly recommended for any PHP based application.
- Set correct permissions in your new docroot: Don’t forget to configure the correct permissions in your Document root (files and directory where your WordPress is located). It’s important to mention that the nginx configuration needs to be able to write within the Document Root folder.
- Backup and restore WordPress database: Grab a copy of your actual WordPress database in your MySQL service and send it to the new MySQL service inside AWS EC2 Server.
- Tune and tweak your MySQL database: By default, your new MySQL database can work with the default configuration (my.cnf), but it’s recommended that you tune and tweak your MySQL configuration to increase speed, reduce memory usage and optimize concurrent connections.
“Confirm that your database name, user and password match with your WordPress wp-config and the new MySQL database.”
- Emulate host file. Once your website is ready on AWS, emulate your host file to test your site in full. Verify that your new website is operating as expected in terms of menus, images, videos, login page, contact forms, etc. This technique allows your migration process, reduce downtime and website errors. Review this blog about how to emulate your host file.
- Test new WordPress site. Test your new site completely; including emails, contact form, any functional custom plugin and verify that everything works as expected.
- Live Migration Date. Prepare your DNS live migration and set a date/hour to migrate and prepare for the live event.
- Update DNS Domain (Live Migration). Once you have defined the date of migration, you’ll have to change two DNS Records from the Godaddy Panel, the www record and the naked record (without www). This involves changing the domain www.company.com and company.com to the new IP server. One record is a CNAME Record pointing to @ or company.com and the other naked record (company.com) is an A Record pointing to the new IP. Yes, this is a tricky part.
- Test DNS change. Test DNS change is propagated around the world – Link: DNS checker
- Successful Migration and AWS data transfer!
How was it? Pretty quick eh? Meanwhile, if you take into consideration the steps mentioned in this article, an AWS Cloud Migration shouldn’t take that long. Be aware that many variables could change the migration, such as software incompatibilities, amount of servers and third-party API services, new functionalities not working as expected, SEO factors, data lost and a few more. But if you follow this guide, I‘m sure you will have minimal risk.
Hopefully, this article helped you clarify what a website migration process is, and steps to transform your classic website into a modern and resilient website based on Amazon Web Services (AWS).
So, how much does it cost to Migrate a website or web application to AWS?
AWS migration services
Usually, a small WordPress blog cost around USD 100, but other blogs could cost 2-3X times, when you have several WordPress sites, the cost per site is reduced. A Woocommerce migration could cost around USD 200 – 600.
A highly scalable WordPress site with multiple servers could cost USD 700-1500 or more – it depends on the WordPress size, amount of servers, traffic and the plugins or API integrations that comes along with the website. In addition, If you are using cPanel, Webmin or Plesk, the cost could vary and the technique to migrate website to AWS could also change.
Finally, for a Web application migration such as PHP Laravel, node.js Python or Ruby, the prices could vary considerably; considering the number of deployed services, the number of servers, existing third-party scripts, CI/CD, deployment tools used and so on. This kind of application requires deeper analysis to find out how much can cost, but Ping Us if you have any question about our AWS migration services.
Grow your WordPress application into a highly scalable and high-performance architecture, add a distributed architecture, split MySQL service from the EC2 server, implement a Caching system ( Redis/Memcached ), Database Replication, integrate a CDN, Amazon S3, and improve Google PageSpeed Score. Any of these improvements it’s a good start to grow your WordPress application. Contact us if you need some help with your Amazon Web Service data transfer.