The overhead of acquiring and maintaining in-house data centers has small to large businesses searching for cost-effective, cloud-based software and hardware infrastructure replacements. These avoid capital expenditures while returning time otherwise spent on server upgrades, storage expansions, on-site backups, 2 AM service calls and vendor re-evaluations every few years.
Thus, startups and established enterprises are turning to the world’s largest IaaS/PaaS cloud platform, namely Amazon Web Services, which continues to grow its footprint and service offerings at a phenomenal rate. One of the many reasons enterprises choose AWS is the ease of app and service migrations.
Dipping Your Toes in AWS
AWS Free Tier
Especially if your enterprise is relatively new to cloud services, a good first step is using AWS’ free tier to evaluate AWS capabilities hands-on. This provides a deeper understanding of AWS virtual machine instances, networking, relational databases, data transfers, data storage and comprehending the means to managing cloud resources effectively. Another option is to take advantage of free introductory training without an AWS account via qwikLabs.
Full-on scalability and access to AWS services is available in the free tier, although they are subject to monthly time allotments beyond which you are charged on a unit basis. Some Amazon Machine Images and third-party apps or services from Amazon Marketplace are not available in the free tier. Otherwise, free tier provides adequate capabilities to support a fully functional Proof-of-Concept or a less resource-hungry app without incurring charges. A word of advice: Be sure to track free tier component expirations to avoid ongoing charges.
Moving Up the Ladder
As your company’s first foray into AWS via the free tier runs out of headroom, the next logical move is to select an EC2 configuration with appropriate hardware capability. EC2 Instances can be specified along multiple dimensions including cost, CPU power, number of virtual CPUs, memory size, storage capacity or network performance.
As your AWS comfort level rises, begin identifying individual workload characteristics and develop a plan to migrate these one at a time. Leverage ready-made reference deployments supplied by AWS on their QuickStart page when possible to increase forward progress. Another alternative is to use AWS managed services such as RDS that streamline deployments and operations.
Things That May Work Differently Than Expected
In TriNimbus’ experience, companies that wish to take full advantage of AWS cloud benefits must make a few paradigm shifts in how they manage app resources. The most common of these is moving from thinking in terms of fixed resources to a pay-as-you-go, instantly scalable server, storage and networking paradigm.
Allocating Non-Optimal Resources
Failure to make this thinking adjustment may be seen when organizations initially over-provision static EC2 instances or choose non-optimal EC2 configurations that negatively impact app performance while at the same time lead to underutilized resources and unnecessary costs. Another example is when organizations fail to monitor Elastic Block Store (EBS) resources, such as EBS Snapshots or Elastic IPs, which contributes to paying for unused storage resources.
A method to avoiding such mistakes is to perform benchmarking on selected EC2 instances and set up monitoring on those instances and their storage resources in order to ensure cost-effective utilization.
Application Environment Adjustments
Application architectures assuming individually managed servers may encounter glitches in a dynamic cloud environment. For example, store app state in central storage instead of maintaining it in the local system to withstand server switches (virtual or physical) that occur in a cloud environment. Likewise, logs should record in remote storage and include metadata that helps identify instances in a highly distributed system such as an app’s region or instance ID.
TriNimbus finds that many organizations initially prefer a “lift and shift” approach to migrating apps to the cloud. It is a valid approach for getting apps up and running relatively quickly, but it also leads to higher initial costs since these apps are not taking full advantage of cloud runtime benefits.
Completely refactoring each of your apps before migration, however, is often less efficient when your cloud team is in AWS spin-up mode. A third approach is to concentrate on speeding up app responsiveness, optimizing resource usage and building in redundancy that ensures apps scale horizontally. In other words, structure them to run on many smaller instances simultaneously and manage resource usage through auto-scaling.
Issues such as these are why TriNimbus recommends evaluating and migrating your organization’s workloads one at a time since each one typically has unique characteristics.
Speeding up Migration
In TriNimbus’ experience, there are several techniques for accelerating cloud migrations. AWS provides many automation tools such as the AWS CLI, AWS Elastic Beanstalk or AWS Code Deploy that enable you to move apps or code quickly to the AWS environment. They also have Managed VCentre Portal to help move VM environments over We also use best of breed 3rd party tools like CloudEndure which not only help with migrations but can be flipped into a Disaster Recovery tool as well. When you have lots of data to move and not enough pipe, consider using a AWS service called Snowball which is a device that has capacity for 80TB of data that can be loaded and encrypted, and couriered back to AWS to load into your environment.
Practice “Infrastructure as Code” from the Beginning
An enormous advantage with AWS for developers, testers and Ops is the opportunity for increased development and deployment automation. The cloud infrastructure upon which an enterprise’s apps and services run is versioned right along with the code itself.
Such a technique, which TriNimbus has helped numerous companies implement, duplicates production infrastructure instantiations used for testing, bug fixes or new features. These can be switched to instantaneously to replace a running production system to the accepted, improved version without service interruption. This approach provides consistency and reliability throughout the organization’s deployment pipeline.
You Don’t Have to Go It Alone
Networking Doesn’t Always Use Routers
While AWS may be new to your company, it isn’t new to everyone. Network with other people to find out about their experiences and tips for using AWS. There are some great ways to meet with people from companies like yours at conferences like re:Invent, online discussion forums, and local user group events.
Return of the Fall TV Season
While Fall traditionally has lots of new shows premiering to entertain you, don’t forget that AWS has lots of great content to watch coming out all year long. Look for monthly AWS Webinars that interest you and don’t forget to check out AWS on YouTube to find videos for beginners to experts.
Leveraging an AWS Partner
Amazon invests heavily in its Amazon Partner Network to ensure APN consultancies deliver the highest quality and business value. Just like with AWS, they continually improve upon their service to ensure APN partners meet enterprise-grade cloud computing needs including certifications in specific domains such as Big Data, DevOps, Migration and Healthcare. APN Premier Consulting Partner TriNimbus guides companies to the most cost-effective cloud-based migrations while enabling your organization to take full control over its customized solution.