Cloud computing has been a game-changer in the software industry because it alleviates most of the burden associated with maintaining the infrastructure of applications. AWS plays a vital role in this process, providing an affordable cloud infrastructure to the masses.
What, exactly, is AWS, and where do you start? Let’s take a deep dive into the many services that are available with AWS.
What is cloud computing?
- App services
- Web development
- Mobile development
- Code injection
- Big data
Let’s get started!
1. App services
App services provided by AWS deliver cost-effective computing resources to host applications.
Amazon Elastic Compute Cloud (Amazon EC2) provides a virtual server machine on which to host a complete application.
AWS Identity and Access Management (IAM) manages user accounts and their privileges in AWS. An admin can access all the resources, for example, whereas the average user can only access AWS Storage (S3). AWS IAM acts as a safeguard against accidental deletion and/or manipulation of resources.
AWS Simple Storage Service (S3) enables customers to store any amount of data and make it accessible from anywhere. Consistent availability is one of AWS S3’s biggest selling points. In fact, it guarantees 99.9 percent uptime.
AWS Virtual Private Cloud (VPC) is an isolated section of the cloud where you can launch and maintain AWS resources.
Why do you need a private cloud if you can access the same services from the public cloud? VPC enables you to create your own IP address range, which is especially useful if you’re running an enterprise and you want to extend your resources to the cloud.
AWS Lambda facilitates what is known as serverless computing, which lets you run your application code without having to manage the server on your own. Instead, you pay for the computing power you consume.
2. Web development
The following AWS services can be useful in developing web applications.
AWS Relational Database Service (RDS) provides a relational database for your applications. Instead of setting up a database for your application from scratch, AWS provides it out of the box with high scalability.
CloudFront is a content delivery network (CDN) service that delivers data, images, videos, and applications in a secure way. The CDN distributes data across different regions so users can access it seamlessly from wherever they are.
DynamoDB is a document database that serves as an alternative solution to MongoDB. One of the main advantages of DynamoDB is that it can handle 10 trillion requests per day.
Amazon API gateway
Ever wondered how you can access several microservices from a single endpoint? That’s where API Gateway comes in. This service enables you to connect, monitor, and access various backend services.
AWS Route 53
AWS Route 53 is a Domain Name System (DNS) provider that helps you set up a domain name for your applications. There are four common records in AWS Route 53:
- A : URL to IPv4
- AAAA: URL to IPv6
- CNAME : URL to URL
- Alias : URL to AWS Resources
AWS Simple Email Service (SES)
As its name suggests, SES is a simple email service through which you can send notifications and service emails from your application to users. You can use the SMTP interface or any other AWS SDK to integrate SES into your application.
AWS Simple Queue Service (SQS)
SQS is a message queuing tool that facilitates communication between multiple services. Let’s say, for example, you have a user accessing authentication microservices. With SQS, you can send and receive messages between those services without any data loss.
3. Mobile development
The following services are particularly helpful for mobile application developers.
Cognito is essentially a simpler and more efficient authentication mechanism. It can be used to facilitate user sign-in and sign-up on web and mobile applications.
AWS Device Farm
Testing mobile and web applications can be time-consuming. AWS Device Farm enables you to test an application using a range of mobile devices and desktop browsers. The main benefit of Device Farm is that it manages the testing infrastructure on its own.
Amazon Pinpoint is a tool for analyzing the user experience on web and mobile applications. It also helps developers and marketers engage their customers with personalized messages.
Amazon Simple Notification Service (SNS)
AWS SNS is a publisher/subscriber messaging service in which one microservice can publish a message and other microservices can subscribe and receive messages. SNS works best for microservice architecture patterns and employs a concept of topic where the pub/sub happens.
Now that we’ve covered AWS tools for app services and both web and mobile developers, let’s see how AWS services can benefit DevOps.
AWS Code Commit
AWS Code Commit provides a source control for your code. Think of it as a GitHub on the cloud. The tool helps you manage your complete source code under a highly scalable ecosystem. It can also work with other source control systems such as GitHub and Bitbucket.
AWS Code Deploy
AWS Code Deploy automates deployment and enables you to automate the process of releasing new features in development.
CodePipeline also enables you to automate the release process. First, you define your own release process. Then, CodePipeline builds, tests, and deploys your code every time there is a code change.
Amazon Elastic Container Service (ECS)
ECS is an orchestration service that manages containers, such as Docker containers. You can integrate other AWS resources, such as AWS IAM and AWS Route 53, with a container to make it perform more efficiently.
AWS Elastic Beanstalk
This easy-to-use service allows you to choose a tech stack and upload your code. AWS BeanStack will deploy the code on its own and manage the infrastructure.
AWS has some of the best services for enterprise applications. Below are some AWS services that are suitable for enterprise application development.
Amazon App Stream
AppStream provides cloud services for CPU-intensive applications. Apps such as OpenGL and desktop applications can be deployed in AppStream.
AWS Direct Connect
Direct Connect is a cloud service that helps you establish a network connection between your datacenter and AWS resources.
AWS Directory Service
AWS Directory Service is basically a Microsoft Active Directory in the AWS cloud. It helps you manage different AWS accounts in the active directory. In layman’s terms, it’s like Google Docs with different levels of account access.
This service enables enterprises to manage documents in the cloud. With AWS WorkDocs, users can share and edit documents from anywhere on any device. Put simply, moving all your files from a traditional file system to AWS cloud enables you to manage them more efficiently.
As the name suggest, WorkMail is an email service that helps you manage emails and their contents at the enterprise level.
WorkSpaces is a desktop-as-a-service solution in the cloud. It provides Windows or Linux workspaces across the enterprise, which is less expensive than typical desktop solutions and can save companies lot of money.
AWS Service Catalog
Service Catalog helps IT administrators group, organize, and govern AWS resources and manage user access to applications. This is particularly useful for granting access to users who need certain resources to work on their respective projects.
6. Big data
In the age of big data, companies in all industries face myriad challenges related to storing and managing all that information. Let’s look at some AWS services that can help developers solve those pain points.
AWS Data Pipeline
Data Pipeline processes huge amounts of data. It helps in the ETL process of data and complex data processing.
Amazon Elastic MapReduce (EMR)
Ever wonder how the cloud processes such an unfathomable volume of data? Look no further than Elastic MapReduce (EMR). This feature uses open-source tools such as Apache Spark and Apache Hive to perform extract, transform, load (ETL) operations on the data.
Glacier is essentially AWS S3 with 99.999999 percent durability and availability. It helps customers store large amounts of data with high throughput.
Kinesis processes streaming data in real time and proceeds with the pipeline. It is widely used in internet of things (IoT) applications, enterprise applications, and the gaming industry.
RedShift is a data warehouse service in the AWS cloud that stores application data for analysis. It can store and handle petabytes of data.
Amazon Machine Learning
AWS Machine Learning provides services to run and deploy machine learning models in the AWS cloud without any managed infrastructure.
Amazon Simple Workflow Service (SWF)
SWF is designed to help you develop and run background jobs for your application. If you want to monitor the processing state of your application, for example, you can use SWF to track it.
In this section, we’ll explore some of the most useful AWS services for managing IT infrastructure.
CloudFormation enables you to manage AWS resources using a script file. You simply create a service and manage the complete infrastructure of your application.
CloudTrail provides auditing for your AWS resources. It involves log monitoring, risk auditing, etc.
CloudWatch monitors the status of your application or service in the AWS cloud. It comes in handy when you want to monitor the logs and health of an application or service running in AWS.
OpsWork provides instances of Chef and Puppet, which are automation scripting tools. Chef and Puppet can be used to automate the configuration management of application infrastructures.
AWS Trusted Advisor
This online tool provides support and guidance for AWS resources in real time. It scans your infrastructure and compares it with AWS best practices to provide some recommendations and feedback.
You should now have a good understanding of what features and tools are available in AWS. Each service solves a specific problem developers commonly struggle with in their respective fields. It’s important to know the purpose of each service and to use it wisely. By that same token, it’s also critical to do your homework and understand the cost and ROI associated with each service.
Which AWS services do you look forward to using in your next project?
Plug: LogRocket, a DVR for web apps
LogRocket is a frontend application monitoring solution that lets you replay problems as if they happened in your own browser. Instead of guessing why errors happen, or asking users for screenshots and log dumps, LogRocket lets you replay the session to quickly understand what went wrong. It works perfectly with any app, regardless of framework, and has plugins to log additional context from Redux, Vuex, and @ngrx/store.