Application Services in AWS

Spread the love

Hello and welcome back to another tutorial of the complete tutorial series of AWS. If you directly jumped to this topic then we would advise you to start the AWS tutorial series from here.

If you are on the track of this fabulous series then let’s get started.

In this chapter, we will go through the various important application services which are commonly used in AWS architecture as well as so many questions that you would get in exams.

The application services are:

  • Route 53 and DNS(Domain Name Services)
  • AWS Cloudformation
  • Ops Works
  • Application management solutions
  • Cloud trail
  • Direct connect
  • Elasticache
  • API Gateway

Let’s go through the above services one by one:

Route 53 and DNS:

  • Amazon Route 53 DNS service is one of the popular AWS services, which solely responsible to resolve IP from the given domain name.
  • For example, It will convert word-based names www.amazon.in to 11.22.33.44, etc.
  • It also supports registering domain names as well.
  • The public DNS is actually assigned by AWS automatically for every EC2 instance.
  • Well, that’s not what we want at the end, as we all want to brand our web application with a public suitable domain name, that goes completely with our business.
  • We definitely will need to map this server to a globally recognizable and easy readable domain name.

Few advantages of Route 53:

Fast:

Route 53 uses Anycast with 24+ DNS servers distributed across the world. Queries to your domain name will be resolved by the nearest DNS server.

Reliable:

AWS guarantees 100% availability for Route 53. Read the SLA to know more about this.

Integration with other services:

It’s designed to work closely with other services like EC2, S3, Cloudfront, etc.

API Support:

The ability to manipulate DNS is an important feature in Route 53. You can automate DNS management along with instant provisioning.

Route53 routing policy:

Routing policies are used with recordsets and enable us to configure failover scenarios like active-active and active-passive.

Currently, Amazon Route 53 supports four types of routing policies:

  • Simple,
  • Weighted,
  • Latency
  • Failover

Simple routing policy:

A simple routing policy is used only for a specific record. Our DNS query will resolve to only one IP/host like:

Weighted routing policy:

Weighted routing policy enables us to reply to a single DNS queries with different IP addresses.

Imagine that we have two EC2 instances and have different instance types, m3.medium and m3.large.

Since one of the instances has more resources, we can forward more traffic to it by using a weighted routing policy.   And also we may want to test our new deployed code on real traffic without effecting our whole clients/visitors. Again we can use a weighted routing policy to redirect a small portion of traffic to our new deployed instances.

Latency routing policy:

Now imagine that your website analysis shows that most visitors source countries are Japan and UK.

In that case, you may want to improve your website speed by lowering your latency between your website and visitors. In this example, we can use the latency routing policy.

Failover routing policy:

We can use this policy as a primary and a secondary site solution.

For example, you may have two instances and in case one of them fails, DNS queries will resolve as secondary records.

Before configuring failover policy, we have to create health checks for our records. Then we can associate with health checks and create our records.

AWS CloudFormation:

AWS CloudFormation is a service that allows the configuring of AWS resources so that developers can focus more on application development, rather than spending time in creating and managing the infrastructure to run an application.

It provides a way for the management, provisioning, and updating of AWS resources in an orderly and predictable fashion. In other words, we can say it is a way to enable “AWS Resource Automation.”

AWS CloudFormation provides an easy way to create and maintain AWS-related resources like Elastic Beanstalk, EC2 instance, RDS, security groups, and the dependencies between them.

It provides a way to define AWS resources, their dependencies, and the connection between the two resources in one template.

The AWS formation engine uses that template to create a ready-to-use environment in the cloud.

The AWS CloudFormation template is a text file defined in JavaScript Object Notation (JSON) format.

Cloudformation template:

It is required that CloudFormation follows a pre-defined AWS template.

We must define resources in a manner so that AWS identifies these resources and dependencies between them, and create the required infrastructure.

An AWS CloudFormation template has six top-level sections, which must be defined in the order given below:

  {

  “AWSTemplateFormatVersion”:”Version Date”,

  “Description”:”A description of template”,

  “Metadata”:{},

  “Parameters”:{},

  “Mappings”:{},

  “Conditions”:{},

  “Resources”:{},

  “Output”:{}   }

AWSTemplateFormatVersion

AWSTemplateFormatVersion is an optional section that takes a literal string value.

Currently, it is “2010-09-09.”

Description

The description is a text line that describes your template. It must follow the format version section.

Metadata

Metadata is an optional section used to provide the details of the template.

We can define the details about the different resources we are using, like the database we are configuring, the instance we are using, and so on.

Parameters

Parameters are an optional section used to pass parameters to the template variables at runtime.

Mappings

Mappings is an optional section used to define named-value pairs. For example, if we want to set a named-value pair by region name, then we can provide a mapping.

Conditions

This section defines the conditions that will be used by the CloudFormation. It is like “If” in any programming language. We can combine multiple conditions with the COMMA(,) delimiter. Conditions are evaluated with the input parameter that we defined in the “Parameters” section.

Resources

Resources is a required section of any CloudFormation template. This section is used to define the resources that are required for our infrastructure.

Output

This section is used to get output values from the CloudFormation engine, i.e. EC2 instance physical ID.

The output will be shown on the CloudFormation console.

Ops works:

AWS OpsWorks is a configuration management service that provides managed instances of Chef and Puppet.

Chef and Puppet are automation platforms that allow you to use code to automate the configurations of your servers.

OpsWorks lets you use Chef and Puppet to automate how servers are configured, deployed and managed across your Amazon EC2 instances or on-premises compute environments.

With the availability of AWS OpsWorks Amazon Web Services now has a number of different Application Management Services that address the different needs of Administrators and Developers.

OpsWorks consists of the following things:

  •   Stack
  •   Layer
  •   Instances
  •   Monitoring   Permission

AWS Application management solutions:

AWS Elastic Beanstalk is an easy-to-use solution for building web apps and web services with popular application containers such as Java, PHP, Python, Ruby, and .NET.

You upload your code and Elastic Beanstalk automatically does the rest. Elastic Beanstalk supports the most common web architectures, application containers, and frameworks.

AWS OpsWorks is a powerful end-to-end solution that gives you an easy way to manage applications of nearly any scale and complexity without sacrificing control.

You model, customize, and automate the entire application throughout its lifecycle. OpsWorks provides integrated experiences for IT administrators and ops-minded developers who want a high degree of productivity and control over operations.

AWS CloudFormation is a building block service that enables customers to provision and manages almost any AWS resource via a domain-specific language.

You define JSON templates and use them to provision and manage AWS resources, operating systems and application code.

CloudFormation focuses on providing foundational capabilities for the full breadth of AWS, without prescribing a particular model for development and operations.

Cloudtrail:

AWS CloudTrail is an application program interface (API) call-recording and log-monitoring Web service offered by Amazon Web Services (AWS).

AWS CloudTrail allows AWS customers to record API calls, sending log files to Amazon S3 buckets for storage.

The service provides API activity data including the identity of an API caller, the time of an API call, the source of the IP address of an API caller, the request parameters and the response elements returned by the AWS service.

CloudTrail can be configured to publish a notification for each log file delivered, allowing users to take action upon log file delivery — a process that according to AWS should only take about 15 minutes.

Direct Connect:

AWS Direct Connect enables you to directly interface your on-premises network with a device at an AWS Direct Connect location.

Features of Direct Connect:

Reduces bandwidth costs − The cost gets reduced in both ways, i.e. it transfers the data to and from AWS directly. The data transferred over your dedicated connection is charged at reduced AWS Direct Connect data transfer rate rather than Internet data transfer rates.

Compatible with all AWS services − AWS Direct Connect is a network service, supports all the AWS services that are accessible over the Internet, like Amazon S3, Amazon EC2, Amazon VPC, etc.

Private connectivity to Amazon VPC − AWS Direct Connect can be used to establish a private virtual interface from our home-network to Amazon VPC directly with high bandwidth.

Elastic − AWS Direct Connect provides 1 Gbps and 10 Gbps connections, having provision to make multiple connections as per requirement.

Easy and simple − Easy to sign up on AWS Direct Connect using the AWS Management Console. Using this console, all the connections and virtual interfaces can be managed.

Elasticache:

Amazon ElastiCache is a web service that simplifies the setup and management of distributed in-memory caching environments.

This service makes it easy and cost-effective to provide a high-performance and scalable caching solution for your cloud applications.

You can use Amazon ElastiCache in your applications to speed the deployment of cache clusters and reduce the administration required for a distributed cache environment.

With Amazon ElastiCache, you can choose from a Memcached or Redis protocol-compliant cache engine and quickly launch a cluster within minutes. Because Amazon ElastiCache is a managed service, you can start using the service today with very few or no modifications to your existing applications that use Memcached or Redis.

Because Amazon ElastiCache is protocol-compliant with both of these engines, you only need to change the endpoint in your configuration files.

Using Amazon ElastiCache, you can implement any number of caching patterns.

If the data does not exist in the cache node, it will query the database and serialize and write the query results to the cache.

The next user request will then be able to read the data directly from the cache instead of querying the database.

API Gateway:

Amazon API Gateway is an AWS service that enables developers to create, publish, maintain, monitor, and secure APIs at any scale.

You can create APIs that access AWS or other web services, as well as data stored in the AWS Cloud.

API Gateway can be considered a backplane in the cloud to connect AWS services and other public or private websites.

It provides consistent RESTful application programming interfaces (APIs) for mobile and web applications to access AWS services.

In practical terms, API Gateway lets you create, configure, and host a RESTful API to enable applications to access the AWS Cloud. For example, an application can call an API in API Gateway to upload a user’s annual income and expense data to Amazon Simple Storage Service or Amazon DynamoDB, process the data in AWS Lambda to compute tax owed, and file a tax return via the IRS website.

In this chapter, we have gone through different application services that we can use in AWS based on our requirements. I hope you enjoy this chapter. See you in the next chapter.