Amazon Web Services (AWS) is a provider of cloud services offering easy access to a range of useful computing resources. All of it is offered on an on-demand basis, which is highly cost efficient. It is recommended that IT practitioners embrace AWS and if you are one of them, you will have to implement newer approaches, breaking your old pattern habits of application design. AWS can be used for innovation within your organization by understanding the limitations and possibilities of the service.
The examination to get AWS certified covers a range of topics and several services. Patterns, anti-patterns, integration with other services and features are covered in detail. If you are appearing for your AWS certification exam, you can get a quick summary of AWS services from the AWS cheat sheet, which covers the key points you can refer to before your exam.
Some of the main characteristics of AWS
If you want your applications to run the right way in the Amazon environment, it is important that you understand the key characteristics of the Amazon Web Services. After all, you can’t actually work with AWS if you don’t have much idea about how it works. When you plan to build your applications, you must keep the following AWS characteristics in mind:
- A wide range of services is offered by AWS. All these services are designed for delivering a single functionality set. All these services are stand alone, however; it is possible to mix them for meeting the particular requirements of your application.
- All the services are offered through APIs. Some people may prefer using the user interface of Amazon or any other third party. Others can also access AWS directly through the AWS software development kit or APIs. Regardless of how you choose to access these services, it is important to remember that the idiosyncrasies and functionalities of each service are unique.
- It is worth noting that the AWS infrastructure is, in fact, prone to failure. However, it is through redundancy that Amazon ends up being robust. Three copies are maintained for the data and computing associated with a service for which SLAs (Service Level Agreements) are offered by Amazon.
- The AWS model is an on-demand one, which requires you to only pay for what you use. Thanks to this pricing model, AWS can be really cost-effective. Particularly, when you first start developing an application, the costs are quite low. However, as the usage increases, the cost increases with it. So, tracking your usage is extremely necessary.
- AWS services are also offered on availability zone- and region-based partitioning. There are network traffic charges imposed if you access data in one region from EC2 instances in another region. So, if you want to maintain lower costs, it is important that you know where your applications have to run along with the location of your data.
What AWS Products and Services are on offer?
Amazon Web Services provides a huge range of products and services that help companies in moving faster, lowering the cost and scaling of their business. The products and services from AWS AWS include storage, computing, analytics, databases, networking, developer tools, mobile, management tools, enterprise applications, security and IoT. Different AWS products, according to their respective categories are listed below:
AWS Run an App Services
Regardless of what you are doing with AWS, these services will always be used:
- Amazon Simple Storage Service - S3: For storing phones and other materials for websites, keeping files and backups in public domain and storing static sites.
- Amazon Elastic Compute Cloud - EC2: This is the central component of AWS, allowing renting of virtual computers for running their own computer applications
- AWS Identity and Access Management – IAM: for customizing users and adding new AWS keys and certificates
- Amazon Virtual Private Cloud – VPC: Provides an additional level of protection to everything you choose to store on the internet by keeping all your AWS service in a single network instead of a huge one
AWS Services for Web Developers
These services are of particular use to those who are developing web applications:
- Amazon Relational Database Service – RDS: For simultaneous use of Oracle DB, MySQL and PostgreSQL for applications.
- Amazon API Gateway: The API of applications can be proxied through this service for handling traffic, testing new versions, etc.
- Amazon Simple Email Service – SES: For sending single letters to change passwords, deliver notifications, etc.
- Amazon Route 53: For buying a new domain and setting up DNS records
- Amazon CloudSearch: Getting all the data from RDS or S3 and looking for what you require in it.
- Amazon CloudFront: Helps in accelerating site loading and distributing static file delivery to users in an optimal manner
- Amazon DynamoDB: Scalable key store for applications
- Amazon ElastiCache: For Redis or Memcached
- SQS – Amazon Simple Queue Service: Storing data to further process in a queue
- Amazon Elastic Transcoder: Process different video oddities like compression, formats, etc.
- AWS Web Application Firewall – WAF: Blocks harmful site requests protected by Cloudfront.
AWS Mobile Developer Services
These are the services that only mobile developers need.
- Amazon Cognito: Allows users to log in via Facebook, Google, etc.
- AWS Device Farm: For testing your applications simultaneously on multiple Android and iOS devices
- Amazon Mobile Analytics: For keeping track of user activity in your application
- Amazon Simple Notification Service – SNS: Sending mobile notifications, SMS and letters
AWS Code Injection Services
These are the services required for automating, implementing and managing the code in other services.
- AWS CodeCommit: Allows controlling versions of your code
- AWS CodeDeploy: For uploading your code from CodeCommit repository to multiple entities of EC2
- AWS CodePipeline: For running automated tests of your cost and making the required changes
- Amazon EC2 Container Service: For placing the Docker file on EC2 entity for launching the website.
- AWS Elastic Beanstalk: For moving your application to AWS from Heroku.
AWS Corporate Services
These services are for networks and businesses.
- Amazon AppStream: For placing a copy of Windows application to which remote access is provided
- AWS Direct Connect: Paying for access to dedicated lines from your network or data centre to AWS.
- AWS Directory Service: Combining applications that require management through Microsoft Active Directory.
- Amazon WorkDocs: For sharing Word documents
- Amazon WorkMail: Setting up an identical calendar and mail system throughout the company.
- Amazon WorkSpaces: Remote computer control interface
- AWS Service Catalog: For providing application access to all AWS users in your group.
- AWS Storage Gateway: Simplifies file transfer to S3 from the network.
AWS Services for Big Data
These are the service for control and absorption of big data along with other fraud data
- AWS Data Pipeline: Extraction, processing and saving all data from AWS and setting up schedules and receiving error messages.
- Amazon Elastic MapReduce: Processing large amounts of raw or text data stored in S3.
- Amazon Glacier: Making backups of the backups stored in S3
- Amazon Kinesis: For quickly saving large data amounts for analysis later
- Amazon Redshift: Storing analytical data, processing it and unloading it
- Amazon Machine Learning: Predicting behaviour for different tasks depending on the present data.
- Amazon SWF: Allows developers to coordinate, audit and track multi-machine, multi-step application jobs.
- AWS Snowball: For transferring large data amounts into and out of the AWS cloud.
AWS Managed Services
The Managed Services from AWS offer ongoing management of your AWS infrastructure, allowing you to pay attention to your application.
- AWS CloudFormation: Setting up multiple related services all at once
- AWS CloudTrail: Keeping logs of activities in AWS stack
- Amazon CloudWatch: Getting notifications for incorrect behaviour of AWS services
- AWS Config: For tracking large AWS system
- AWS OpsWorks: Management of application launch through features like autoscaling
- AWS Trusted Advisor: Finding what you are spending excessively on.
- Amazon Inspector: Checking for security issues in your AWS system
- Policy-based management is provided by AWS Organizations for multiple AWS accounts
- With Organizations, you can create groups of accounts. Then, you can apply policies to these groups
- Organizations also allow central management of policies across different accounts, without any manual process or requirement of custom scripts
- With Organizations, the billing of multiple accounts is simplified. It enables setting up of one payment method for all the organization’s accounts via consolidated billing
- Multiple accounts linked with a paying account
- The paying account stays independent and should be used only for the purpose of billing
- It is not possible for the paying account to have access to the resources of other accounts unless it is exclusively given access via Cross Account roles
- All the accounts that are linked are independent and have a soft limit of 20.
- There is a single bill for each AWS account
- There is even a volume pricing discount on offer for usage across multiple accounts
- Enables the application of unused Reserved Instances across the group.
- The free tier isn’t valid across multiple accounts.
Helpful tips to design applications for AWS
Amazon Web Services does indeed differ significantly from the traditional infrastructure. Hence, the outcomes won’t necessarily be the best if you attempt to apply the conventional application design principles. The following points must be kept in mind:
- Failure is a frequent occurrence: With Amazon Web Services, a lot of things fail all the time and you should be prepared for that. Particularly, EC2 instances can stop responding or fail altogether unexpectedly. Hence, you need to make sure your application is resilient to resource failure.
- Ensure application uptime by using redundancy: Following the operating principles of Amazon is advisable since there is a chance of AWS resources failing. Designing and implementing redundancy in applications is always recommended. With redundancy, your application is protected against resource failure.
- Applications should be designed for horizontal scaling: Whether you use AWS resources heavily or not, they will always incur costs. That is why it is important for your application to be able to scale up and down. It should shrink and grow its resource so you use only what you need for supporting the resilience and performance of your application.
- Maximize the use of open source components: An open-source software is always less expensive. Not only that, it is more compatible with sporadic use because of its licensing conditions. On the other hand, there is a major license fee associated with proprietary software, regardless of whether the software runs for 10 minutes or 10 years.
Uncommon ways of using AWS for your applications
The set of services offered by AWS is far more varied than most people would recognize. Most of them are familiar with the popular AWS products such as S3 and EC2 and use them frequently. However, not many end up exploring more with AWS for learning about other services that can be used for their applications. You can leverage additional AWS services for:
- Developing richer applications: There is an entire range of AWS services with unique capabilities of their own. For instance, you can provide a search within the application through ElasticSearch.
- Developing applications much faster: AWS services can be used for quickly building your application and bringing it to production in less time. It is much quicker than locating and implementing open-source packages or spending unnecessary time with the negotiation of proprietary license contracts.
- Matching the cost of service with its use: All the services from AWS are delivered in usage-based, on-demand and no commitment pricing manner. Use of AWS services for your applications ensures good economic outcomes for your applications for matching the cost with its benefits.
- Building more scalable applications: All the services from Amazon are designed for running at scale. In case your application needs large amounts of particular AWS products, the designing of the services will allow it to scale to the level of your requirements.
- Utilizing the experience of Amazon itself: A lot of the AWS products were created originally for the e-commerce platform of Amazon.com. You have the confidence that all the AWS products you use are tested in the toughest of e-commerce environments.
Hope that now you have a basic understanding of the products provided by the Amazon Web Services and how you can use it for your own use. You can get more information on AWS through the AWS Certification course of KnowledgeHut.