AWS Fargate: Overview and Alternatives

shipping containers

AWS Fargate is a serverless container management service (container as a service) that allows developers to focus on their application and not their infrastructure. While AWS Fargate does help with container orchestration, it does leave areas of concern where IronWorker fills the void.

You should be paying less for your AWS Fargate workloads.  Workload efficient enterprises are leaving Fargate for IronWorker. Speak to us to talk about why.

What are containers?

Before we talk about AWS Fargate, let’s talk about making software and containers. Making software applications behave predictably on different computers is one of the biggest challenges for developers. Software may need to run in multiple environments: development, testing, staging, and production. Differences in these environments can cause unexpected behavior, yet be very hard to track down.

To solve these challenges, more and more developers are using a technology called containers. Each container encapsulates an entire runtime environment. This includes the application itself, as well as the dependencies, libraries, frameworks, and configuration files that it needs to run.

Docker and Kubernetes were two of the first container technologies, but they are by no means the only alternatives. These containers are then used in container management services. For example, IronWorker, Iron.io’s container management service, uses Docker containers.

What is AWS Fargate?

Amazon’s first entry into the container market was Amazon Elastic Container Service (ECS). While many customers saw value in ECS, this solution often required a great deal of tedious manual configuration and oversight. For example, some containers may have to work together despite needing entirely different resources.

Performing all this management is the bane of many developers and IT staff. It requires a great deal of resources and effort, and it takes time away from what’s most important: deploying applications.

In order to solve these problems, Amazon has introduced AWS Fargate. According to Amazon, Fargate is “a compute engine for Amazon ECS that allows you to run containers without having to manage servers or clusters.”

Fargate separates the task of running containers from the task of managing the underlying infrastructure. Users can simply specify the resources that each container requires, and Fargate will handle the rest. For example, there’s no need to select the right server type, or fiddle with complicated multi-layered access rules.

AWS Fargate vs ECS vs EKS

docked ship with containers

Besides Fargate, Amazon’s other cloud computing offerings are ECS and EKS (Elastic Container Service for Kubernetes). ECS and EKS are largely for users of Docker and Kubernetes, respectively, who don’t mind doing the “grunt work” of manual configuration aka container orchestration.

One advantage of Fargate is that you don’t have to start out using it as an AWS customer. Instead, you can begin with ECS or EKS and then migrate to Fargate if you decide that it’s a better fit.

In particular, Fargate is a good choice if you find that you’re leaving a lot of compute power or memory on the table. Unlike ECS and EKS, Fargate only charges you for the CPU and memory that you actually use.

AWS Fargate: Pros and Cons

AWS Fargate is an exciting technology, but does it really live up to the hype? Below, we’ll discuss some of the advantages and disadvantages of using AWS Fargate.

Pro’s:

    • Less Complexity
    • Better Security
    • Lower Costs (Maybe)

Con’s:

    • Less Customization
    • Higher Costs (Maybe)
    • Region Availability

Pro: Less Complexity

These days, tech companies are offering everything “as a service,” taking the complexity out of users’ hands. There’s software as a service (SaaS), infrastructure as a service (IaaS), platform as a service (PaaS), and dozens of other buzzwords.

In this vein, Fargate is a Container as a Service (CaaS) technology. You don’t have to worry about where you’ll deploy your containers, or how you’ll manage and scale them. Instead, you can focus on defining the right parameters for your containers (e.g. compute, storage, and networking) for a successful deployment.

Pro: Better Security

Due to their complexity, Amazon ECS and EKS present a few security concerns. Having multiple layers of tasks and containers in your stack means that you need to handle security for each one.

With Fargate, however, the security of your IT infrastructure is no longer your concern. Instead, you embed security within the container itself. You can also combine Fargate with container security companies such as Twistlock. These companies offer products for guarding against attacks on running applications in Fargate.

Pro: Lower Costs (Maybe)

If you’re migrating from Amazon ECS or EKS, then Fargate could be a cheaper alternative. This is for two main reasons:

    • As mentioned above, Fargate charges you only when your container workloads are running inside the underlying virtual machine. It does not charge you for the total time that the VM instance is running.
    • Fargate does a good job at task scheduling, making it easier to start and stop containers at a specific time.

Want some more good news? In January 2019, Fargate users saw a major price reduction that will slash operating expenses by 35 to 50 percent.

Con: Less Customization

Of course, the downside of Fargate is that you sacrifice customization options for ease of use. As a result, Fargate is not well-suited for users who need greater control over their containers. These users may have special requirements for governance, risk management, and compliance that require fine-tuned control over their IT infrastructure.

Con: Higher Costs (Maybe)

Sure, Fargate is a cost-saving opportunity in the right situation when switching from ECS or EKS. For simpler use cases, however, Fargate may actually end up being more expensive. Amazon charges Fargate users a higher per-hour fee than ECS and EKS users. This is to compensate for the complexity of managing your containers’ infrastructure.

In addition, running your container workloads in the cloud will likely be more expensive than operating your own infrastructure on-premises. What you gain in ease of use, you lose in flexibility and performance.

Con: Regional Availability

AWS Fargate is slowly rolling out across Amazon’s cloud data centers, but it’s not yet available in all regions. As of June 2020, Fargate is not available for the following Amazon regions:

    • AWS Fargate (EKS)
      • Northern California 
      • Montreal
      • São Paulo
      • GovCloud (US-West and US-East)
      • London
      • Milan*
      • Paris
      • Stockholm
      • Bahrain
      • Cape Town
      • Osaka*
      • Seoul
      • Mumbai
      • Hong Kong
      • Beijing
      • Ningxia
    • * = Includes AWS Fargate (ECS)

AWS Fargate Reviews

user reviews

Even though AWS Fargate is still a new technology, it has earned mostly positive feedback on the tech review platform G2 Crowd. As of this writing, AWS Fargate has received an average score of 4.5 out of 5 stars from 12 G2 Crowd users.

Multiple users praise AWS Fargate’s ease of use. One customer says that Fargate “made the job of deploying and maintaining containers very easy.” A second customer praises Fargate’s user interface, calling it “simple and very easy to navigate.”

Another reviewer calls AWS Fargate an excellent solution: “I have been working with AWS Fargate for 1 or 2 years, and as a cloud architect it’s a boon for me…  It becomes so easy to scale up and scale down dynamically when you’re using AWS Fargate.”

Despite these advantages, AWS Fargate customers do have some complaints:

    • One user wishes that the learning curve were easier, writing that “it requires some amount of experience on Amazon EC2 and knowledge of some services.”
    • Multiple users mention that the cost of AWS Fargate is too high for them: “AWS Fargate is costlier when compared with other services”; “the pricing isn’t great and didn’t fit our startup’s needs.”
    • Finally, another user has issues with Amazon’s support: “as it’s a new product introduced in 2017, the quality of support is not so good.”

AWS Fargate Alternatives: AWS Fargate vs Iron.io

While AWS offers Fargate as a serverless container platform running on Docker, Iron.io offers an alternative industry leading solution called IronWorker. IronWorker is a container-based platform with Docker support for performing work on-demand. Just like AWS Fargate, IronWorker takes care of all the messy questions about servers and scaling. All you have to do on your end is develop applications, and then queue up tasks for processing.

Why select IronWorker over AWS Fargate?

IronWorker has been helping customers grow their business since 2015. Even with IronWorker’s AWS Fargate’s similarities, IronWorker has the advantage in:

    • Support
    • Simplicity
    • Deployment Options

Support

We understand every application and project is different. Luckily, Iron.io offers a “white glove” approach by developing custom configurations to get your tasks up and running. No project is too big, so please contact our development team to get your project started.  We also understand that documentation is critical to any developer and have made a Dev Center to help answer your questions.

Simplicity

When you start your free 14 day trial, you will get to interact with the simple and easy to use Iron.io dashboard.  Once you have your project running, you will receive detailed analytics providing both a high level synopsis and granular metrics.

Deployment Options

As of June 2020, Fargate’s container scaling technology is not available for on-premises deployments. On the other hand, one of the main goals of Iron.io is for the platform to run anywhere. Iron.io offers a variety of deployment options to fit every company’s needs:

    • Shared
      • Users can run containers on Iron.io’s shared cloud infrastructure.
    • Hybrid
      • Users benefit from a hybrid cloud and on-premises solution. Containers run on in-house hardware, while Iron.io handles concerns such as scheduling and authentication. This is a smart choice for organizations who already have their own server infrastructure, or who have concerns about data security in the cloud.
    • Dedicated
      • Users can run containers on Iron.io’s dedicated server hardware, making their applications more consistent and reliable. With Iron.io’s automatic scaling technology, users don’t have to worry about manually increasing or decreasing their usage.
    • On-premises
      • Finally, users can run IronWorker on their own in-house IT infrastructure. This is the best choice for customers who have strict regulations for compliance and security. Users in finance, healthcare, and government may all need to run containers on-premises.

Conclusion

Like it or now, AWS Fargate is a leader in serverless container managment services. As we’ve discussed in this article, however, it’s certainly not the right choice for every company. It’s true that Fargate often provides extra time and convenience. However, Fargate users will also sacrifice control and incur potentially higher costs.

As alternative to AWS Fargate, IronWorker has proven itself an enterprise solution for companies such as Hotel Tonight, Bleacher Report and UntappdIronWorker, made by Iron.io, offers a mature, feature-rich alternative to Fargate, ECS and EKS. Users can run containers on-premises, in the cloud, or benefit from a hybrid solution. Like Fargate, IronWorker takes care of infrastructure questions such as servers, scaling, setup, and maintenance. This gives your developers more time to spend on deploying code and creating value for your organization.

Looking for an AWS Fargate alternative?

Speak to us to learn about overcoming the issues associated with Fargate.

On-Premises or On-Cloud? How to Make the Choice

on prem container management

Introduction

It was once a tech buzzword, but cloud computing has become a mature best practice for companies of all sizes and industries. Even if you don’t know it, it’s highly likely that part or all of your business has already moved into the cloud.

Case in point: A whopping 96 percent of organizations now report that they use cloud computing in some form or fashion.

Despite this lofty statistic, many companies are also choosing to maintain some or all of their technology on-premises. So what exactly is the difference between on-premises and on-cloud? How can you make the choice for yourself? We’ll discuss the answers in this article.

What Is On-Premise Computing?

On-premise computing (also known as “on-premises”) is the traditional (and, until recently, the dominant) model of enterprise IT.

In the on-premises model, organizations buy their own hardware and software, and then run applications and services on their own IT infrastructure. On-premises applications are sometimes called “shrinkwrap.” This refers to the plastic film used to package commercial off-the-shelf software.

The term “on-premises” implies that the technology is physically located on the organization’s own property. This could be in the building itself or at a nearby facility. This grants the organization full control over the technology’s management, monitoring, configuration, and security.

Companies that use the on-premises model usually need to purchase their own software licenses and handle their own tech support. For these reasons, on-premise computing is well-suited for larger enterprises. They are more likely to have sizable IT budgets and skilled IT employees.

What Is Cloud Computing?

Cloud computing vs. on premise

Cloud computing is an enterprise IT model in which hardware and/or software are hosted remotely, rather than on company premises.

There are two main types of cloud computing: public cloud and private cloud.

  • In a public cloud, a third party is responsible for providing your business cloud services, software, and storage via the internet. Your data is hosted within the cloud provider’s remote data center, separate from the data of other customers.
  • In a private cloud, your business owns or maintains its own cloud infrastructure. The cloud is provisioned for the use of a specific organization. Like the public cloud, software, storage, and services are provided remotely via the internet.

In addition to the public-private division, there are three different types of cloud computing that you should know about: IaaS, PaaS, and SaaS.

  • IaaS (infrastructure as a service): This is the most bare-bones cloud computing offering. Users rent IT infrastructure such as virtual machines (VMs), servers, networks, and storage and access them via the internet. However, they are responsible for managing all other aspects of the system: runtime, middleware, operating systems, applications, and data.
  • PaaS (platform as a service): PaaS includes all the services provided by IaaS, as well as the runtime, middleware, and operating system. Users are only responsible for managing the applications and data.
  • SaaS (software as a service): SaaS is an all-in-one offering that includes everything from the VMs and servers to the applications running atop them and the data that they use. A few examples of SaaS products are Dropbox, Google Apps, Microsoft Office 365, and Adobe Creative Cloud.

On-Premise vs. On-Cloud: The Pros and Cons

Rather than jumping on the cloud bandwagon, it’s important to perform a sober evaluation of the pros and cons of both on-premise and on-cloud for your own business needs. Now that we’ve defined both on-premise computing and cloud computing, let’s discuss which one is more convenient in terms of four considerations: cost, scalability, security, and backups.

Cost Model

In terms of cost, the cloud vs. on-premises comparison boils down to two different pricing models: capital expenses and operating expenses.

With on-premise computing, businesses need to make a large capital investment up front when buying hardware and software. They’re also responsible for any support and maintenance costs incurred during a product’s lifetime.

Cloud computing, meanwhile, is usually an operating expense. Businesses pay a monthly or annual subscription fee in order to have continued access to the cloud. Upgrades, support, and maintenance are the vendor’s responsibility and usually baked into the costs of the subscription.

Some companies find that the subscription model of cloud computing is more convenient for their purposes. Subscribing to a new service for a few months can be more cost-efficient for businesses that are looking to experiment, and for smaller businesses that don’t have large amounts of capital available. For example, Xplenty is a cloud-based ETL (extract, transform, load) tool that offers code-free transformations. The cost of paying for Xplenty’s platform monthly is less expensive than paying a data engineer to handle the process. However, research by firms such as Gartner have shown that both cost models are equivalent over the long term.

Scalability

container management on-prem

Scalability refers to a system’s capacity to easily handle increases in load. For example, a website that usually sees very little traffic could suddenly have thousands or millions of visitors if it starts to receive attention on social media.

Cloud computing is able to rapidly scale storage and services up and down during peaks and lulls in activity. This is tremendously helpful for companies that see frequent changes in demand, such as a greeting card e-commerce website that does most of its business during a few holidays.

When compared with the cloud, on-premise computing is fairly brittle and difficult to scale. Businesses that operate on-premises may need to buy powerful hardware that goes unused for much of the time, wasting time and resources.

Compliance and Security

For many organizations, concerns about security and compliance are the biggest reason that they haven’t yet moved their data and infrastructure into the cloud. Fifty-six percent of IT security decision-makers say that their company’s on-premises security is better than what they can have in the cloud.

Industries that handle sensitive personal information — such as heath care, finance, and retail — have their own regulations about how this data can be stored and processed. In addition, many U.S. federal agencies have chosen to keep some or all of their workloads on-premises.

Nevertheless, despite popular concerns about the security of cloud computing, there has yet to be a large-scale breach of one of the major public cloud providers that was due to a fault in their technology. The breaches involving Amazon Web Services, Microsoft Azure, and Google Cloud Platform have been due to human error. This presents one advantage of on-premise: containment of human errors.

As Adrian Sanabria, director of ThreatCare says: “Since everything in the cloud is virtualized, it’s possible to access almost everything through a console. Failing to secure everything from the console’s perspective is a common (and BIG) mistake. Understanding access controls for your AWS S3 buckets is a big example of this. Just try Googling “exposed S3 bucket” to see what I mean.”

With an on-premise workload, if a person makes a configuration error, the possibility of a breach is lessened because there is no single console for everything in their IT system. So a single error is less likely to result in a data loss, big or small. After all, human errors will persist for the foreseeable future.

As a final note, both on-premises and cloud storage solutions support encryption for data while in transit and at rest.

Backups and Disaster Recovery

running containers on premise devops

One of the biggest selling points of the cloud is the ability to securely back up your data and applications to a remote location.

Whether it’s a natural disaster or a cyberattack, the effects of a catastrophe can devastate organizations that are caught unprepared. According to FEMA, 40 to 60 percent of small businesses never reopen after suffering a disaster.

In an era when threats both natural and virtual are multiplying, it’s critical to have a robust strategy for disaster recovery and business continuity. Customers, employees, and vendors must all be assured that your doors will be reopened as soon as possible.

The benefits of the cloud as a backup strategy are clear. Data stored in the cloud will survive any natural disaster that befalls your physical infrastructure, thanks to its storage at a remote site.

However, this benefit is also a double-edged sword; restoring data from cloud backups is usually slower than restoring data from on-premises. Therefore, organizations that can afford it often choose a two-pronged backup strategy: on-premises backups as the first line of defense, as well as secondary backups in the cloud.

Hybrid Cloud: The Best of Both Worlds?

So far we’ve presented on-premises and the cloud as polar opposites. However, reality isn’t quite that simple. Fifty-one percent of organizations have chosen to pursue a “hybrid” cloud strategy.

In a hybrid cloud solution, businesses use a combination of both on-premises and cloud technology, mixing and matching as best suits their goals and requirements.

For example, the city government of Los Angeles has opted for a hybrid cloud deployment using both public cloud and on-premises infrastructure. Officials decided that data and applications from certain departments — such as emergency services, traffic control, and wastewater management — are too risky to host in the cloud.

Other enterprises are attracted by the features of the cloud, but are still content with their current on-premises deployment. These organizations choose a hybrid strategy for now, slowly migrating to the cloud while replacing their on-premises infrastructure piece by piece.

Still other companies prefer the business agility that a hybrid cloud strategy offers. Different software, data, and components can operate between different clouds and between the cloud and on-premises. These organizations usually have needs and objectives that evolve quickly, making flexibility an essential concern.

Conclusion

Whether you’re staying on-premises for now or you’re totally committed to the cloud, there’s no wrong answer when it comes to on-premises and on-cloud. Instead of blindly following trends, each business needs to examine its own situation to determine the best fit.

Here at Iron.io, we understand that each organization has a unique timeline and different goals for its enterprise IT. That’s why we offer both IronWorker and IronMQ in cloud, hybrid, and on-premise deployments.  IronMQ is a high-performance message queue solution, while IronWorker is a highly flexible container orchestration tool that allows background task processing with ease.

Want to find out more? Get in touch with us to sign up for a free trial of IronWorker and IronMQ today.