What's new in AWS?

With the basic services now covered, here's a quick look at some of the newer AWS services and how you can potentially leverage them to build and host your applications and infrastructure. First up on the list is Elastic Container Service (ECS).

Elastic Container Service

Before I talk about Elastic Container Service, it is essential to understand what a container is all about and why is it getting so much of importance lately.

A container is a logical entity that consists of one entire runtime environment. This environment can include an application, its dependencies, all of its libraries, and configuration files needed to run it, all packed into one small package. But wait a minute! Doesn't this all seem a bit familiar? Well to be honest, containers are nothing like virtualization, in fact I see them replacing virtualization very soon. If you see a virtual machine today, it basically comprises an entire OS plus the application hosted on top of it. You can have one or more such VMs running on top of a virtualization layer in the form of a hypervisor, which again has its own set of memory and CPU requirements. In contrast to VMs, a server running three containers runs on top of a single OS, and each container shares the OS kernel with the other containers. This means that the containers are much leaner and lightweight and use far fewer resources than conventional virtual machines, as depicted in the image here:

Elastic Container Service

Containers are a potent solution to the problem of porting one application from one environment to the other. These environments can be anything from a simple laptop to virtualized environments to public clouds. That's where ECS comes into picture. ECS is a highly scalable container management service using which you can create, run, manage, and scale Docker-based containers. Here are a few key benefits and features of using ECS:

  • Automated Clustering: One of the key advantages of ECS is that it can automatically manage clusters of containers. ECS can maintain the state of your clusters as well as help you to scale past thousands of containers, all with relative ease.
  • Container Scheduling: ECS also provides you with an in-built scheduling functionality using which you can maintain the availability as well as the scalability of your containers across your clusters.
  • Portability and extensibility: Containers that run on your ECS environment can be made to run on any other Docker-based environment without any changes made at all. This feature can come in really handy when you don't want to get tied down with a particular cloud provider and wish to have the flexibility to move your workloads anytime anywhere you want.
  • AWS integration: You can leverage ECS containers to work with other AWS services as well, such as CloudWatch, VPC, S3, Elastic File System (EFS), ELBs, and so on.

ECS was made generally available for use in the mid of 2015, and ever since then, AWS has continued to make further improvements and enhancements to it. I would really recommend trying out ECS and containers just because they are so cool to work with! There are plenty of starter guides available out there, so go ahead and try to deploy a simple web application on containers using ECS. Here is the Getting Started with ECS guide provided by AWS: http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_GetStarted.html.

Elastic File System

Elastic File System or EFS is also newly launched, still in preview service provided by AWS that provides scalable file storage services for your EC2 instances. This of EFS as a highly scalable and available NFS server that multiple EC2 instances can use at the same time as a common data source for your applications, a central repository, and so on. The best part of working with EFS is that it is designed to scale up and down automatically, so the more data that you put in, the larger it grows, and vice versa. It is also based on the pay-per-use model, which means that you only have to pay for the storage used by your filesystem and not a penny more!

How does it work? Well, it's just like any other NFS server that you would create in an on-premises environment. You can start off by simply creating an EFS, mounting it to your EC2 instances and using it just as any NFS mount point would. You can even use EFS along with your VPC environments as well, but with a minor change. In the case of VPC, you end up creating one or more special mount points called as mount targets, and you mount your filesystem to the EC2 instances using these mount targets. A pictorial representation of mount targets is shown here:

Elastic File System

Courtesy: Amazon Web Services.

Database migration made easy with Database Migration Service

Yet another newly launched service by AWS, Database Migration Service provides customers with an easy to use and secure way to migrate their on-premises databases to AWS. The databases can be anything from propriety ones, such as Microsoft SQL and Oracle, to open source ones such as MySQL as well. Once a database migration is initiated using the Database Migration Service, AWS manages all the complexities of the migration process. It also makes sure that any data changes made in the source database are automatically replicated to the target database during the migration process.

The Database Migration Service also comes equipped with a Schema Conversion Tool that makes heterogeneous database migrations a real ease. This is made possible by converting the entire schema of the source database to a format compatible with that of the target database. If any schema code is not converted during the process automatically, it is clearly marked by the Schema Conversion Tool so that it can be converted manually at a later time.

To know more about the Database Migration Service and how you can sign up for the preview, go to https://aws.amazon.com/dms/.

Go serverless with AWS Lambda

Imagine if you had the power of running and scaling your code dynamically based on certain events getting triggered! That's precisely what AWS Lambda is all about. AWS Lambda is basically a compute service very similar to EC2 or Elastic Beanstalk where you upload your code to Lambda and the service runs the code on your behalf using the underlying AWS infrastructure. Once your code is uploaded, you need to create some custom functions called as Lambda functions. These functions take care of provisioning and managing the underlying instances that you use to run the code. But how is this so different from your EC2 service? Well in the case of Lambda, all the heavy lifting and complex tasks such as server management and provisioning, OS patching, code monitoring, logging, and so on, are managed by Lambda itself. All you need to do is upload your code and voila! The rest is all taken care of by Lambda itself.

Note

As of date, AWS Lambda supports Node.js, Java, and Python as the languages for your application's code.

So when and where is Lambda useful? Well if you have any real-time log processing or analyzing a stream of data for pattern analysis, social media analysis, or even if you want to build scalable backend services for your mobile or web applications, then Lambda is the right choice for you. To know more about Lambda and how it works, check http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset