Elastic Compute Cloud
Amazon Elastic Compute Cloud (Amazon EC2) provides scalable computing capacity in the Amazon Web Services (AWS) cloud. Using Amazon EC2 eliminates your need to invest in hardware up front, so you can develop and deploy applications faster.
An AWS user can increase or decrease instance capacity as needed within minutes using the Amazon EC2 web interface or an application programming interface. A developer can code an application to scale instances automatically with AWS Auto Scaling. A developer can also define an Auto Scaling policy and group to manage multiple instances at once.
Amazon Elastic Compute Cloud is a pioneer cloud infrastructure product that allows users to create powerful virtual servers on demand. Amazon EC2 is hosted on the server consolidation/virtualization concept, where the entire computing power of server hardware can be divided into multiple instances and offered to the end-user over the Internet as a computing instance.
Amazon EC2 reduces the time required to obtain and boot new server instances to minutes, allowing you to quickly scale capacity, both up and down, as your computing requirements change. Amazon EC2 changes the economics of computing by allowing you to pay only for capacity that you actually use. Amazon EC2 provides developers the tools to build failure resilient applications and isolate them from common failure scenarios.
In AWS EC2, the users must be aware about the EC2 components, their operating systems support, security measures, pricing structures, etc.
mazon EC2 supports multiple OS in which we need to pay additional licensing fees like: Red Hat Enterprise, SUSE Enterprise and Oracle Enterprise Linux, UNIX, Windows Server, etc. These OS needs to be implemented in conjunction with Amazon Virtual Private Cloud (VPC).
AWS offers a variety of pricing options, depending on the type of resources, types of applications and database. It allows the users to configure their resources and compute the charges accordingly.
Amazon EC2-created instances can be accessed by open-source Simple Object Access Protocol (SOAP) application programming interface (API) support, giving developers the liberty to create various types of applications, just as with an on-premises computing infrastructure. The instance provided by EC2, commonly known as a virtual machine, is created using Amazon Virtual Image and is hosted over Xen Hypervisor, a server virtualizing software.
Simple Storage Service
Amazon Simple Storage Service (S3) is a storage for the internet. It is designed for large-capacity, low-cost storage provision across multiple geographical regions. Amazon S3 provides developers and IT teams with Secure, Durable and Highly Scalable object storage.
Amazon S3 or Amazon Simple Storage Service is a “simple storage service” offered by Amazon Web Services (AWS) that provides object storage through a web service interface. Amazon S3 uses the same scalable storage infrastructure that Amazon.com uses to run its global e-commerce network.
The basic difference between S3 and DynamoDB is that S3 is file storage whereas DynamoDB is a Database. … S3 uses unique Ids called Keys to retrieve files from the bucket. The maximum size for each item (Object) is 5TB. S3 is suitable for storing large objects.
Amazon Simple Storage Service (Amazon S3) is a scalable, high-speed, web-based cloud storage service designed for online backup and archiving of data and applications on Amazon Web Services. Amazon S3 was designed with a minimal feature set and created to make web-scale computing easier for developers.
S3 is Highly Scalable, since it automatically scales your storage according to your requirement and you only pay for the storage you use.
This is suitable for use cases where the data is long lived and less frequently accessed, i.e for data archival but still expects high performance. e.g. in the same hospital, people who have been discharged, their records/data will not be needed on a daily basis, but if they return with any complication, their discharge summary should be retrieved quickly.
Allows unlimited data and object storage of most data types in a variety of formats. A stored data set, which is an object, ranges from 1 B to 5 TB.
Provides Reduced Redundancy Storage (RRS), which reduces latency by storing data in regionally segregated buckets. This saves resources and facilitates application efficiency for users in geographically dispersed locations.
Strong authentication ensures the security of regionally stored data. Provides Representational State Transfer (REST) and Simple Object Access Protocol (SOAP) Web service interfaces that are built to operate with any type of Web development toolkit.
Simple Email Service
Amazon Simple Email Service (Amazon SES) is a cloud-based email sending service designed to help digital marketers and application developers send marketing, notification, and transactional emails. … You can use our SMTP interface or one of the AWS SDKs to integrate Amazon SES directly into your existing applications.
Amazon SES includes features such as content filtering technologies, dedicated IP addresses, and a reputation dashboard help protect and enhance your sender reputation. Maintaining a good reputation ensures that your messages reach your customers’ inboxes.
Amazon Simple Email Service (Amazon SES) is a highly scalable and cost-effective platform for sending and receiving email. Amazon SES eliminates the complexity and expense of building an in-house email solution or licensing, installing, and operating a third-party email solution.
The Amazon SES sandbox is an area where new users can test the capabilities of Amazon SES. When your account is in the sandbox, you can only send email to verified identities. A verified identity is an email addresses or domain that you’ve proven that you own.
Amazon SES is available in several AWS Regions in North America and Europe. In each Region, AWS maintains multiple Availability Zones. These Availability Zones are physically isolated from each other, but are united by private, low-latency, high-throughput, and highly redundant network connections. These Availability Zones enable us to provide very high levels of availability and redundancy, while also minimizing latency.
When you use Amazon Simple Email Service (Amazon SES) to send email, you connect to a URL that provides an endpoint for the Amazon SES API or SMTP interface. The AWS General Reference contains a complete list of endpoints that you use to send and receive email through Amazon SES.
Amazon SES sends email using SMTP, which is the most common email protocol on the internet. You can send email through Amazon SES by using a variety of SMTP-enabled programming languages and software to connect to the Amazon SES SMTP interface.
Notifications can be configured using the AWS Management Console or through the Amazon SES APIs for individual verified email addresses and Web domains. For security protection, Amazon IAM allows you to create policies to indicate which API actions a user can perform, like allowing specific users the ability to send email but not perform administrative duties.
Simple Queue Service
Amazon SQS provides several advantages over building your own software for managing message queues or using commercial or open-source message queuing systems that require significant up-front time for development and configuration. … Amazon SQS works on a massive scale, processing billions of messages per day.
Amazon SQS supports two modes of polling for available messages: short polling and long polling. With long polling, the consumer specifies a timeout of 1-20 seconds to wait for available messages. … Eliminate empty responses by allowing Amazon SQS to wait until a message is available in a queue before sending a response.
Amazon Simple Queue Service (Amazon SQS) offers a secure, durable, and available hosted queue that lets you integrate and decouple distributed software systems and components. Amazon SQS offers common constructs such as dead-letter queues and cost allocation tags. It provides a generic web services API and it can be accessed by any programming language that the AWS SDK supports.
AWS manages all ongoing operations and underlying infrastructure needed to provide a highly available and scalable message queuing service. With SQS, there is no upfront cost, no need to acquire, install, and configure messaging software, and no time-consuming build-out and maintenance of supporting infrastructure. SQS queues are dynamically created and scale automatically so you can build and grow applications quickly and efficiently.
Use Amazon SQS to transmit any volume of data, at any level of throughput, without losing messages or requiring other services to be available. SQS lets you decouple application components so that they run and fail independently, increasing the overall fault tolerance of the system. Multiple copies of every message are stored redundantly across multiple availability zones so that they are available whenever needed.
You can use Amazon SQS to exchange sensitive data between applications using server-side encryption (SSE) to encrypt each message body. Amazon SQS SSE integration with AWS Key Management Service (KMS) allows you to centrally manage the keys that protect SQS messages along with keys that protect your other AWS resources. AWS KMS logs every use of your encryption keys to AWS CloudTrail to help meet your regulatory and compliance needs.
What Are the Main Benefits of Amazon SQS?
Security: You control who can send messages to and receive messages from an Amazon SQS queue. Server-side encryption (SSE) lets you transmit sensitive data by protecting the contents of messages in queues using keys managed in AWS Key Management Service (AWS KMS).
Durability: To ensure the safety of your messages, Amazon SQS stores them on multiple servers. Standard queues support at-least-once message delivery, and FIFO queues support exactly-once message processing.
Availability: Amazon SQS uses redundant infrastructure to provide highly-concurrent access to messages and high availability for producing and consuming messages.
Scalability: Amazon SQS can process each buffered request independently, scaling transparently to handle any load increases or spikes without any provisioning instructions.
Reliability: Amazon SQS locks your messages during processing, so that multiple producers can send and multiple consumers can receive messages at the same time.
Customization: Your queues don’t have to be exactly alike—for example, you can set a default delay on a queue. You can store the contents of messages larger than 256 KB using Amazon Simple Storage Service (Amazon S3) or Amazon DynamoDB, with Amazon SQS holding a pointer to the Amazon S3 object, or you can split a large message into smaller messages.
AWS Lambda
AWS Lambda is a serverless compute service that runs your code in response to events and automatically manages the underlying compute resources for you. You can use AWS Lambda to extend other AWS services with custom logic, or create your own back-end services that operate at AWS scale, performance, and security.
AWS Lambda executes your code only when needed and scales automatically, from a few requests per day to thousands per second. You pay only for the compute time you consume – there is no charge when your code is not running.
The Serverless Framework helps you develop and deploy your AWS Lambda functions, along with the AWS infrastructure resources they require. It’s a CLI that offers structure, automation and best practices out-of-the-box, allowing you to focus on building sophisticated, event-driven, serverless architectures, comprised of Functions and Events.
Amazon explains, AWS Lambda (λ) as a ‘serverless’ compute service, meaning the developers, don’t have to worry about which AWS resources to launch, or how will they manage them, they just put the code on lambda and it runs, it’s that simple! It helps you to focus on core-competency i.e. App Building or the code.
AWS Lambda allows you to run code without thinking about servers, and you’ll only pay for the compute time you consume. Instead of creating and maintaining an EC2 virtual machine to host your code, you can now let AWS Lambda manage the compute resources for you.
Lambda functions are pieces of custom code that run when a certain event happens. In order to identify the events that invoke a particular Lambda function, AWS Lambda users define event source mappings. Optionally, aliases can be used to point to a specific version of a Lambda function.
Amazon Elastic Compute Cloud (Amazon EC2) service offers flexibility and a wide range of EC2 instance types to choose from. It gives you the option to customize operating systems, network and security settings, and the entire software stack, but you are responsible for provisioning capacity, monitoring fleet health and performance, and using Availability Zones for fault tolerance.
Elastic Beanstalk offers an easy-to-use service for deploying and scaling applications onto Amazon EC2 in which you retain ownership and full control over the underlying EC2 instances.
Where Will I use AWS Lambda?
AWS Lambda executes your backend code, by automatically managing the AWS resources. When we say ‘manage’, it includes launching or terminating instances, health checkups, auto scaling, updating or patching new updates etc.
So , how does it work?
The code that you want Lambda to run is known as a Lambda function. Now, as we know a function runs only when it is called, right? Here, Event Source is the entity which triggers a Lambda Function, and then the task is executed.
API GeteWay
Amazon API Gateway REST API. Amazon API Gateway allows developers to securely connect mobile and web applications to APIs that run on AWS Lambda, Amazon EC2, or other publicly addressable web services that are hosted outside of AWS.
API Gateway handles all the tasks involved in accepting and processing up to hundreds of thousands of concurrent API calls, including traffic management, authorization and access control, monitoring, and API version management.
Amazon API Gateway is an AWS service for creating, publishing, maintaining, monitoring, and securing REST and WebSocket APIs at any scale. API developers can create APIs that access AWS or other web services as well as data stored in the AWS Cloud.
Amazon API Gateway is an Amazon Web Services (AWS) service offering that allows a developer to connect non-AWS applications to AWS back-end resources, such as servers or code. Amazon API Gateway allows an AWS customer to increase the overall utility of Amazon’s other cloud services.
AWS API Gateway is an awesome service to use as an HTTP frontend. You can use it for building serverless applications, for integrating with legacy applications, or for proxying HTTP requests directly to other AWS services.
AWS customers can implement API Gateway in many forms. They can launch an AMI running third party API Management platforms such as 3Scale or Intel Mashery. For better control, DevOps teams can also configure Mashape Kong on EC2 running behind an Elastic Load Balancer.
Especially if they are implementing microservices on AWS Lambda and Amazon EC2 Container Service. When compared to enterprise API management platforms, the AWS offering may fall short of a few features. But this is a V1 service, and Amazon has the tradition of shipping an MVP and making it better with every iteration.
Amazon API Gateway provides two means of handling API call traffic. API throttling is available to limit the number of API calls per hour or per day. This helps to maintain the performance of calling applications when there is an unexpected spike in API calls — such as when many users start using an application at the same time.
Since many API calls use the same information and return the same result, caching can be invoked to provide common API responses rather than performing all of the processing required to produce a result. Caching reduces the number of API calls and further improves performance of the calling applications.
Amazon API Gateway provides security using access keys to control API access. The service interacts with Amazon Identity and Access Management and Amazon Cognito to authorize access to APIs. The service also supports AWS Signature Version 4 as an additional security option; this creates access keys for each API call. OAuth tokens can also be passed to running workloads as an alternative security measure.