Blog

Extending Your Current Capabilities with AWS

April 14, 2020 / Bryan Reynolds

Reading Time: 11 minutes

The defining characteristic of cloud computing is the allocation of computing resources on-demand without direct management by the user. Data storage and computing power are the common resources allocated in cloud computing, although it can distribute any such resources to its users. The most common implementation of cloud computing is a data center that distributes resources to many users over the internet. The large platforms that now dominate the cloud-computing landscape typically have multiple servers that are geographically separated. In cases where the distance between the server and users is relatively small, the architecture may also be known as edge computing.

Amazon Web Services (AWS) provides cloud-computing platforms and application programming interfaces (APIs) to its users, which include individuals and organizations. Resources are metered, and users pay for them as the resources are allocated. AWS’s services provide all the basic tools users need to build an abstract infrastructure. AWS provides many benefits in data management, including storage, backup and disaster recovery. It also improves the scalability of an organization’s operations, reduces its workload and generally makes IT functions more convenient.

Overview

Amazon primarily markets AWS as a means of obtaining large-scale computing capability faster and cheaper than using physical infrastructure. Synergy Group reports that AWS dominates the cloud-computing market, with a market share of 34 percent as of 2017. The next three competitors are Microsoft, Google and IBM with market shares of 11, 8, and 6 percent respectively.

Amazon implements and maintains AWS on server farms throughout the world. Subscriber fees are based on a pay-as-you-go model in which users pay for resources as they use them. However, they also pay for services that affect the operation of their hardware, software, operating system (OS) and network. While the fees for services are based on usage, each service measures usage differently. AWS systems can be a single virtual machine (VM), dedicated physical server or clusters of either type. Amazon also provides system security as part of its subscription agreement.

AWS comprises over 212 services as of 2020. These tools cover many categories, including the following:

  • Analytics
  • Applications
  • Computing
  • Database
  • Deployment
  • Development
  • Internet of Things (IoT)
  • Management
  • Mobile
  • Networking
  • Storage

Amazon Simple Storage Service (S3) and Amazon Elastic Compute Cloud (EC2) are some of the most popular AWS services, although most of them aren’t directly accessible by to end users. Instead, they typically provide their functionality through APIs, allowing developers to use them in applications. Users access services over the internet by using an HTTP-enabled browser and the representational state transfer (REST) architecture. AWS uses the JavaScript Object Notation (JSON) for older APIs and the JavaScript Object Notation (JSON) for newer ones.

Convenience

AWS generally provides convenience for its users as compared to maintaining physical infrastructure. These benefits fall into the following categories:

  • Flexibility
  • Productivity
  • Cost effectiveness
  • Backend services
  • Communication

Flexibility

AWS provides its users with greater flexibility in a number of ways, which is one of the primary reasons that organizations move their infrastructure to the cloud. For example, they can scale operations up or down in response to changes in business requirements without making system changes. It also allows employees to access their files from any device with internet connectivity, including smartphones, laptops and notebooks.

The ability to instantly share files over the internet is particularly useful for companies with bring-your-own-device BYOD policies. AWS provides tools that allow enterprises to management mobile devices and avoid data breaches due to the loss of a phone or compromised password. This capability is particularly important in today’s security environment, where attacks are becoming increasingly specific to internet devices.

Productivity

Many organizations report an increase in productivity resulting in greater revenue after moving to a cloud platform. These gains are largely due to the reduction in time spent on maintenance activities like making regular backups. AWS performs most of these activities automatically, which accounts for a large portion of an administrative time on a physical server. Automated maintenance is becoming an increasingly important requirement for organizations as the amount of data they must manage continues to grow exponentially.

Cost Effectiveness

Cost savings is also a significant benefit of cloud computing. A physical data center typically requires a capital expenditure to buy the equipment, software and other infrastructure components. The pay-as-you-go model that AWS uses means that these capital expenses are transferred to operational costs, which are much more preferable for organizations. Furthermore, an organization that maintains a physical data center must pay for these resources whether it uses them or not. In comparison, AWS users only pay for the resources they consume.

Backend Services

AWS provides secure backend services that allow users to scale and transform their processes while operating in a protected environment. This feature means that users can safely allocate data between their cloud platform and external interfaces such as Web servers. They can also implement backend APIs and other components. Additional benefits of backend services include the ability to monitor and maintain application server logs, isolate the server from the rest of the infrastructure and control access to the cloud platform.

Communication

Migrating to AWS also facilitates communications between employees, which is essential for an organization’s long-term growth. The collaboration of a team on a specific project is particularly easy on AWS because team members can easily access the resources they need to perform the role, regardless of their position within the company or strategies they’re using. The platform also allows pertinent material to circulate easily between team members, resulting in continuous output.

Data Management

The data management benefits of AWS may be classified into storage, backup and recovery capabilities.

Storage

The storage options for an on-premises infrastructure include direct-attached storage (DAS) such as a collection of local hard disk drives. The raw performance of this type of storage is better than cloud storage because data doesn’t need to move across a network. However, it isn’t as redundant for both temporary and persistent files, nor is the storage of boot files as robust.

AWS storage options include storage area network (SAN), in which data is consolidated and stored at the block level. It’s primarily used to make storage devices more accessible because they appear to be locally attached. A SAN is typically a dedicated network that isn’t accessible through the local area network (LAN), which prevents the interference of LAN traffic with data transfers. Network attached storage (NAS) is another option that provides file-level storage across multiple devices, although it’s usually slower than either DAS or SAN.

A SQL relational database is the traditional method of storing and organizing data, but non-relational databases and data warehouses are often better choices for large datasets on AWS. Both DAS and SAN devices can easily store databases, but they can also be stored in memory. In-memory storage methods like RAM disks offer much faster access to data than persistent storage. Message queues also provide robust data storage in cases where the data isn’t synchronized between applications and their components.

Backup

AWS offers a complete backup service known as AWS Backup that allows users to automate their backup of data across their cloud platform. This process uses the AWS storage gateway, which manages backups based on policies. Users can also set policies, back them up and restore them.

AWS Backup is easy to use and highly secure. It allows users to manage their backups from a central console, which makes it easier to confirm that backups are complete and secure across the AWS platform. Users can also run Backup from APIs or a command line interface (CLI) on the platform and on-premises by using Storage Gateway.

The ability to automate backups saves time and money in addition to minimizing human error due to manual entry. Backup also eliminates the need for developers to write scripts since scheduling, maintenance and development is completely automated. Furthermore, administrators can apply backup policies to other AWS resources. This process requires administrators to simply classify the resources, allowing them to easily develop their backup strategy across the resources and confirm the proper backup of data.

The figure below shows how the AWS resources involved in a backup can include services such as Amazon EFS, AWS Storage Gateway, Amazon DynamoDB, Amazon RDS and Amazon EBS.

Workflow of automatic backup in AWS

Figure 1: Workflow of automatic backup in AWS

AWS Backup also allows organizations to meet many regulatory compliance requirements, primarily because it encrypts data for storage and transfer. For example, it’s ISO and PCI compliant in addition to being eligible for HIPAA compliance. The ability of administrators to review actions from a centralized location is also critical for regulatory compliance. Backup’s policies make it easy to align backup strategies with monitoring requirements, whether they originate from within the organization or external agencies. Another feature that allows Backup to pass compliance audits is that its backup action logs can be joined across services.

Disaster Recovery

Backups are useless if that data can’t be recovered when needed. In addition, system downtime and the time needed to recover a system are both major factors for most organizations today. AWS recovery services have various features to facilitate disaster recovery (DR).

For example, backups and archives are stored on portable media by default, which can be easily stored off-site. Using the cloud for storage also provides continuity when an organization deploys a new release of mission-critical software, which routinely incurs some downtime. An AWS cloud platform also has a much higher uptime rate than a typical in-house data center in most cases due to the redundancy of multi-site backups, which recovers data more quickly than a single-site backup.

AWS allows customers to back up data to Amazon S3 from the AWS platform itself and from an on-site data center. Backups from AWS merely require the transfer of data from Amazon Elastic Compute Cloud (EC2) to Amazon S3. For backups from an on-site data center, the data transfer can occur through three primary methods. Most commonly, the data can be simply transferred over the internet through the customer’s normal internet connection. It can also use AWS Direct Connect, which has a connection speed of 10 gigabytes per second (Gb/S). Lastly, the data can be transferred via AWS Import/Export.

Specific features of AWS that facilitate DR include the centralized administration of its VR recovery environment, which can be deployed automatically. This streamlined process minimizes security concerns and facilitates system failover. AWS also keeps VRs in reserve pre-loaded with backups, often allowing recovery within minutes. Additional DR capabilities of AWS include the global de-duplication of data, which reduces storage requirements. Regular incremental backups also decrease the bandwidth they require.

The benefits of AWS DR include its rapid retrieval of files due from disk-based storage. It’s also highly elastic, meaning a large amount of data can be quickly added to the backup with minimal impact on performance. Furthermore, AWS DR uses industry-standard audit trails to ensure it’s a robust, secure process. The quick recovery of data also helps customers avoid penalties due to falling outside compliance limits for recovery time. In addition, AWS uses partners to resolve recovery issues and assist with deployments.

Scalability

Predicting growth rate is one of the biggest challenges in business. AWS minimizes the consequences of this uncertainty with respect to infrastructure by easily changing the scale of its customers’ operations, whether it’s to increase or decrease the allocation of computing resources. Scaling operations in the cloud can be done on-demand, as compared to days or even weeks for on-premise infrastructure.

Amazon DynamoDB is a NoSQL database service that supports auto-scaling, allowing users to optimize resource allocation for cost and usage. For example, they can analyze the read/write capacity of DynamoDB tables to determine the minimum and maximum allocation. This feature means that AWS users can tune the performance and scalability of their databases.

Considerations

Users must consider a number of factors when scaling resources, especially in an environment where performance is critically important. Data volume and the number of concurrent users are usually the significant factors in optimizing scaling, followed by hardware configurations such as the number of nodes in the database. The interface for accessing data is also of concern, depending on whether the user accomplishes this through files or APIs. Additional scaling considerations include database operations and use cases such as blending, profiling and structuring.

Maintenance

Organizations that operate in the cloud typically want to automate maintenance tasks to the greatest extent practical, especially when they begin scaling up. The AWS cloud is particularly robust, given the degree of its automation in the administration, delivery and growth of resources. The automatic scheduling of task such backups and the deployment of software is particularly useful in minimizing the human effort needed to maintaining an AWS platform.

Bandwidth

Cloud platforms routinely scale resource allocation automatically as part of application maintenance, although most platforms only perform auto-scaling for individual services. However, AWS has options for auto-scaling a customer’s entire platform. For example, AWS can adapt to changes in traffic levels by automatically adjusting bandwidth, which ultimately reduces operational costs.

This feature is particularly useful for web servers, since web traffic can vary dramatically over time. For example, business sites typically have high, steady traffic during business hours that drops to very low levels outside this time frame. On the other hand, an ecommerce site may experience unusually high traffic volume on Black Friday, when many products are heavily discounted. This condition can cause various problems such as taking longer to place orders, emptying of the shopping cart and even bringing the site down.

Social media shows another example of how site traffic can degrade a site’s performance. Visitors want the page to load as soon as they access it, but high traffic can increase load times and reduce revenue when visitors lose patience. This problem is especially common when a social media page has a lot of photographs. Small businesses are particularly vulnerable to the challenges of revenue being limited by the traffic that a site can handle.

Enabling auto-scaling during times when you expect high traffic volume can fix these problems. Not only can it handle sudden traffic spikes by quickly increasing resource allocation, it can also save the customer money by releasing those resources just as quickly when traffic returns to its baseline level.

The figure below shows how AWS auto-scaling works. Users review their applications to identify the ones they want to auto-scale. They then optimize those applications by cost or performance and monitor the scaling as it occurs.

Application scaling to optimize performance and costs

Figure 2: Application scaling to optimize performance and costs

Workload

A cloud platform reduces an organization’s IT workload, especially the maintenance of servers and other hardware. The cloud provider has direct responsibility for maintaining the hardware, unlike an in-site data center where the customer must perform these tasks. Likewise, software maintenance such as installing and updating software is also the provider’s responsibility when using a cloud platform. AWS uses a central management system to easily implement software licenses and updates. Amazon can also fix problems remotely, further reducing the customer’s IT workload.

Additional workload reductions from AWS include the significant reduction in downtime due to upgrades. The use of VMs instead of actual hardware means that administrators can perform upgrades on one VM while the organization continues using another VM. AWS’ ability to schedule jobs for automatic execution means that administrators don’t need to perform these tasks manually. The secure transfer of files is also easier, since AWS can automatically retrieve data. This benefit becomes particularly useful when an organization uses big data such as a data warehouse.

The DevOps concept of Jobs-as-Code also allows jobs to be submitted and deployed more quickly on a cloud platform. Jobs-as-Code refers to rules that define how batch applications are run automatically. Operations has traditionally defined these rules at the end of the software development lifecycle, meaning they weren’t tested when the application was built. The Jobs-as-Code approach allows developers to include jobs in the continuous delivery pipeline that’s an inherent characteristic of devops.

Example

Static content provides an example of how the AWS cloud can reduce IT workload. This content includes images and text that only change occasionally, as opposed to dynamic content that changes regularly. Migrating web servers to an instance of Amazon EC2 means that EC2 will host all the web site’s content, whether it’s static or dynamic. However, introducing static content to an EC2 instances incurs several workload costs such as the instance itself, Amazon Elastic Block Store (EBS) volumes and probably a load balancer.

Moving static content to S3 instead reduces the overhead needed to host a web application on AWS. This change is often non-disrupted, since it can be done at the Content Delivery Network (CDN) or Domain Name Server (DNS) layer. The figure below illustrates this approach:

Figure 3: Reducing web hosting costs with S3 static web hosting

Figure 3: Reducing web hosting costs with S3 static web hosting

Summary

Migrating from an on-premises data center to AWS provides multiple opportunities to extend your organization’s capabilities. Data management is one the most significant of these benefits, including data storage and disaster recovery. The redundancy of data storage in the cloud means that organizations have greater protection from disasters that are specific to a geographic location. The ability to scale operations is also a highly useful capability, particularly for organizations that often experience sudden and dramatic changes in demand. The reduction in IT workload allows an organization to devote fewer resources on infrastructure and focus on its core competencies. Baytech, an AWS Migration consulting firm, has experience staff ready to assist you on your next project.

Posted in AWS Migration