{"id":57874,"date":"2023-08-04T11:31:10","date_gmt":"2023-08-04T06:01:10","guid":{"rendered":"https:\/\/www.tothenew.com\/blog\/?p=57874"},"modified":"2023-08-08T12:18:59","modified_gmt":"2023-08-08T06:48:59","slug":"strategies-for-assessing-and-planning-a-migration-to-aws-graviton","status":"publish","type":"post","link":"https:\/\/www.tothenew.com\/blog\/strategies-for-assessing-and-planning-a-migration-to-aws-graviton\/","title":{"rendered":"Strategies for Assessing and Planning a Migration to AWS Graviton"},"content":{"rendered":"<h3><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-57872\" src=\"\/blog\/wp-ttn-blog\/uploads\/2023\/08\/AWS-Graviton-300x176.png\" alt=\"\" width=\"628\" height=\"369\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2023\/08\/AWS-Graviton-300x176.png 300w, \/blog\/wp-ttn-blog\/uploads\/2023\/08\/AWS-Graviton.png 510w\" sizes=\"(max-width: 628px) 100vw, 628px\" \/><\/h3>\n<h3><b>Introduction<\/b><\/h3>\n<p>With the rise of cloud computing, businesses continually seek ways to optimize their infrastructure for improved performance and cost efficiency. AWS Graviton, Amazon Web Services&#8217; custom-designed ARM-based processor, has emerged as a compelling option for organizations migrating their workloads to the cloud. When compared to the fifth-generation x86-based Amazon EC2 instances, Graviton2 instances offer a 20% reduction in cost. This blog post aims to provide valuable insights and strategies for assessing and planning a migration to AWS Graviton.<\/p>\n<p><b>When assessing and planning a migration to AWS Graviton, there are several strategies you can follow to ensure a smooth and successful transition. Here are some key strategies to consider:<\/b><\/p>\n<ul>\n<li><strong><span data-preserver-spaces=\"true\">Understand AWS Graviton<\/span><\/strong><span data-preserver-spaces=\"true\">: Begin by familiarizing yourself with AWS Graviton and its benefits. Graviton is an Arm-based processor that offers cost savings, improved performance, and energy efficiency. Understand the compatibility of your applications and workloads with the Arm architecture.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong><span data-preserver-spaces=\"true\">Use of multi-arch image<\/span><\/strong><span data-preserver-spaces=\"true\">\u00a0&#8211; For seamless migration of your existing architecture from intel to arm without any downtime. Build a Multi-Arch Docker image with the help of docker buildx; this will give you the flexibility to migrate easily without the hassle of any downtime in case of any issue.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong><span data-preserver-spaces=\"true\">Availability of services and features:<\/span><\/strong><span data-preserver-spaces=\"true\">\u00a0Not all AWS services and features are available on Graviton instances. Verify if the services and features you rely on are supported on Graviton. While AWS has been steadily expanding the Graviton ecosystem, there might still be some gaps compared to Intel-based instances.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong><span data-preserver-spaces=\"true\">Identify compatible workloads:\u00a0<\/span><\/strong><span data-preserver-spaces=\"true\">Assess your existing infrastructure and identify workloads that are compatible with AWS Graviton. Arm-based processors may have some limitations regarding software compatibility, so it&#8217;s important to ensure that your applications, libraries, and dependencies are compatible.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong><span data-preserver-spaces=\"true\">Evaluate performance and cost benefits:\u00a0<\/span><\/strong><span data-preserver-spaces=\"true\">Conduct a thorough evaluation of the performance and cost benefits of migrating to AWS Graviton. Use benchmarks, performance testing, and cost analysis tools provided by AWS to compare the performance and cost implications of running your workloads on Graviton versus traditional x86 processors.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong><span data-preserver-spaces=\"true\">Conduct a pilot migration:\u00a0<\/span><\/strong><span data-preserver-spaces=\"true\">Create a comprehensive migration plan that outlines the steps, timelines, and resources required for the transition. Before fully committing to the migration, consider conducting a pilot migration to AWS Graviton. Select a subset of your workloads or less critical applications and migrate them to Graviton instances. This will help you validate the compatibility, performance, and cost benefits in a controlled environment. This approach minimizes risks and ensures a smooth migration.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong><span data-preserver-spaces=\"true\">Implement load testing:\u00a0<\/span><\/strong><span data-preserver-spaces=\"true\">Perform load testing on your migrated workloads to ensure they can handle expected traffic and workload patterns. Monitor performance metrics, identify any bottlenecks, and make necessary adjustments to optimize performance.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong><span data-preserver-spaces=\"true\">Optimize for Graviton architecture:\u00a0<\/span><\/strong><span data-preserver-spaces=\"true\">Make the necessary adjustments if your applications require modifications to work optimally on Graviton. Some software may need to be recompiled, reconfigured, or have specific optimizations applied to take advantage of the Arm architecture.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong><span data-preserver-spaces=\"true\">Monitor and optimize:\u00a0<\/span><\/strong><span data-preserver-spaces=\"true\">Once your workloads are migrated to AWS Graviton, closely monitor their performance and usage patterns. Leverage AWS monitoring tools, such as CloudWatch, to gain insights into resource utilization and identify areas for optimization.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong><span data-preserver-spaces=\"true\">Plan for data migration:\u00a0<\/span><\/strong><span data-preserver-spaces=\"true\">If your migration involves moving data to AWS Graviton, develop a data migration strategy. This may include transferring data using AWS services like AWS DataSync and AWS Snowball, or leveraging database migration tools.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong><span data-preserver-spaces=\"true\">Perform Canary or Blue-Green deployment:\u00a0<\/span><\/strong><span data-preserver-spaces=\"true\">When your infrastructure is prepared to accommodate Graviton-based instances, you can implement a Canary or Blue-Green deployment strategy. This strategy involves directing a fraction of the application traffic to Graviton-based instances. It is recommended to initially conduct tests in a development environment to simulate production traffic patterns and closely monitor the application to ensure it behaves as expected. Once the application runs smoothly on Graviton, you can establish and execute your transition plan, allowing you to reap the advantages of improved price performance.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong><span data-preserver-spaces=\"true\">Implement a rollback plan:\u00a0<\/span><\/strong><span data-preserver-spaces=\"true\">It&#8217;s crucial to have a rollback plan in case you encounter unexpected issues or if the migration doesn&#8217;t meet your expectations. Document the steps to revert to your previous infrastructure if needed.<\/span><\/li>\n<\/ul>\n<ul>\n<li><strong><span data-preserver-spaces=\"true\">Leverage AWS resources and support:\u00a0<\/span><\/strong><span data-preserver-spaces=\"true\">AWS provides extensive documentation, whitepapers, and best practices for migrating to Graviton. Additionally, you can leverage AWS support services to get assistance and guidance throughout the migration process.<\/span><\/li>\n<\/ul>\n<p>Remember to thoroughly test and validate each step of the migration process to ensure a successful transition to AWS Graviton. It&#8217;s also recommended to consult with AWS experts or partners with Graviton migrations experience for additional guidance and support.<\/p>\n<p><b>Cons:<\/b><\/p>\n<p>1. <strong><span data-preserver-spaces=\"true\">Compatibility challenges: <\/span><\/strong><span data-preserver-spaces=\"true\">Migrating to Graviton may involve compatibility challenges, particularly if your applications, dependencies, or third-party libraries are not readily available or optimized for Arm architecture. You may need to invest time and effort in testing, validating, and adapting your application stack for Arm-based systems.<\/span><\/p>\n<p>2.\u00a0<strong>Limited software support<\/strong>: Not all software and tools have native support for Arm architecture. While the Arm ecosystem is growing, you may encounter limitations or gaps in software availability compared to the x86 ecosystem. This can impact your choice of tools and frameworks.<\/p>\n<p>3. <strong>Service and feature availability<\/strong>: While AWS has been expanding support for Graviton instances, not all services and features are available on Arm-based architecture. Before migrating, ensure that the specific services and features you rely on are supported on Graviton.<\/p>\n<p>4. <strong>Benchmarking and optimization<\/strong>: While Graviton instances can offer excellent performance for certain workloads, it&#8217;s important to benchmark and optimize your applications on Graviton to ensure the desired performance. This may require additional effort compared to x86-based instances, especially if your applications are highly optimized for x86.<\/p>\n<p><b>Some of the examples are illustrated below, which shows how we migrated our existing services and EC2 servers from intel to arm.<\/b><\/p>\n<ol>\n<li><b>Migration of existing infra from intel to arm-based architecture.<\/b><\/li>\n<\/ol>\n<p><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 AWS ECS <\/b>&#8211; Earlier we were using the m5.xlarge instance, we have\u00a0 moved to the m6g.xlarge instance,<\/p>\n<p><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Total Instances<\/b>: -10<\/p>\n<p><b>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Total Application<\/b>: &#8211; 6 (Java)<\/p>\n<p><b>\u00a0\u00a0\u00a0\u00a0 Challenges<\/b>:<\/p>\n<ul>\n<li><span data-preserver-spaces=\"true\">Rebuild Docker Images to Support Multi-Architecture i.e. Arm and Intel, by ensuring that all needed libraries\/packages and their required versions are available for both Arm and Intel architectures. Update and Replace Libraries\/Packages wherever required.<\/span><\/li>\n<\/ul>\n<ul>\n<li><span data-preserver-spaces=\"true\">Evaluate the Cost difference and conduct load testing to understand performance benefits with Graviton.<\/span><\/li>\n<\/ul>\n<ul>\n<li><span data-preserver-spaces=\"true\">Prepare a migration plan, ensuring that current workloads are shifted with No impact on End User\u2019s experience.<\/span><\/li>\n<\/ul>\n<h3><b>\u00a0 \u00a0 \u00a0Resolution:<\/b><\/h3>\n<ul>\n<li><span data-preserver-spaces=\"true\">To migrate running Java services from INTEL to graviton without downtime, firstly we created a multi-arch base image that can run on both intel and graviton(arm) type instances.<\/span><\/li>\n<\/ul>\n<ul>\n<li><span data-preserver-spaces=\"true\">Use of \u201c<\/span><strong><em><span data-preserver-spaces=\"true\">docker buildx<\/span><\/em><\/strong><span data-preserver-spaces=\"true\">\u201d, buildx is a plugin of docker that allows us to build multi-arch docker images. Choose your multi-arch image wisely from the docker hub, which supports both architectures.<\/span><\/li>\n<\/ul>\n<ul>\n<li><span data-preserver-spaces=\"true\">Cost and performance optimization is one of the concerns for Java applications before migrating, we did cost analysis between intel and arm type instances and performed load testing for seamless performance.<\/span><\/li>\n<\/ul>\n<p><b><em>\u00a0 \u00a0 \u00a0Total cost before<\/em><\/b> &#8211; 149.46 USD per month<\/p>\n<p><b>\u00a0\u00a0\u00a0\u00a0 <em>Total cost after<\/em><\/b><em> &#8211;<\/em> 74.888 USD per month<\/p>\n<p><b><br \/>\n<\/b><b> 2. Migration of existing standalone EC2 servers from Intel to Arm<\/b><\/p>\n<p>(i) Hazelcast(t3.xlarge) &#8211;&gt; t4g.xlarge<\/p>\n<p>(ii) Keycloak(t3.medium) &#8211;&gt; t4g.medium<\/p>\n<p><b>\u00a0\u00a0\u00a0 Challenges:<\/b><\/p>\n<ul>\n<li><span data-preserver-spaces=\"true\">Re-setup Applications hosted on StandAlone Ec2 to Graviton Based Instances. We had to rebuild and reconfigure Utilities e.g. KeyCloak, Hazelcast, etc, on Graviton. **Not all of them could be migrated, as desired versions were incompatible with Graviton. E.g. Jenkins. (at the time of writing this blog).<\/span><\/li>\n<\/ul>\n<ul>\n<li><span data-preserver-spaces=\"true\">Performance and workload.<\/span><\/li>\n<\/ul>\n<h3><b>\u00a0 \u00a0 Resolution:<\/b><\/h3>\n<ul>\n<li><span data-preserver-spaces=\"true\">In case of compatibility issues, we upgraded the libraries\/tools to higher minor versions wherever possible. We also considered the impact that changes in minor version could have on our Applications.<\/span><\/li>\n<\/ul>\n<ul>\n<li><span data-preserver-spaces=\"true\">Performed extensive load testing on Graviton-based Workloads to evaluate performance differences.<\/span><\/li>\n<\/ul>\n<h3><b>Conclusion:\u00a0<\/b><\/h3>\n<p>Migrating to AWS Graviton presents an opportunity for organizations to leverage the benefits of ARM-based architecture, including improved performance and cost savings. By following the strategies outlined in this blog post &#8211; understanding your workload, conducting performance testing, identifying compatibility and dependencies, developing a migration plan, leveraging Graviton-compatible services, optimizing your architecture, and monitoring performance &#8211; you can ensure a successful migration to AWS Graviton and unlock the full potential of cloud computing.<\/p>\n<p><b>For more information-<\/b><\/p>\n<p><a href=\"https:\/\/pages.awscloud.com\/rs\/112-TZM-766\/images\/2020_0501-CMP_Slide-Deck.pdf\"><b>https:\/\/pages.awscloud.com\/rs\/112-TZM-766\/images\/2020_0501-CMP_Slide-Deck.pdf<\/b><\/a><\/p>\n<p>Check out our other blog posts for more valuable insights.<\/p>\n<div class=\"ap-custom-wrapper\"><\/div><!--ap-custom-wrapper-->","protected":false},"excerpt":{"rendered":"<p>Introduction With the rise of cloud computing, businesses continually seek ways to optimize their infrastructure for improved performance and cost efficiency. AWS Graviton, Amazon Web Services&#8217; custom-designed ARM-based processor, has emerged as a compelling option for organizations migrating their workloads to the cloud. When compared to the fifth-generation x86-based Amazon EC2 instances, Graviton2 instances offer [&hellip;]<\/p>\n","protected":false},"author":1610,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":75},"categories":[1174,4308,2348],"tags":[248,5320,1703,5321],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/57874"}],"collection":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/users\/1610"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/comments?post=57874"}],"version-history":[{"count":4,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/57874\/revisions"}],"predecessor-version":[{"id":57910,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/57874\/revisions\/57910"}],"wp:attachment":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/media?parent=57874"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/categories?post=57874"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/tags?post=57874"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}