☰ See All Chapters |
What is AWS
AWS stands for Amazon Web Services is a leading cloud services provider. AWS is a platform that provides on-demand resources for hosting web services, security, storage, networking, databases and other resources over the internet with a pay-as-you-go pricing. With pay-as-you-go pricing mode user will only pay for services being used, so the user doesn't have to pay any upfront fees to acquire hardware resources. With AWS, we can create high availability and fault tolerant applications with minimal configurations. AWS reduces the stress of managing on-premises physical servers and allows us to focus on application layers.
AWS has maintained data centers in multiple regions worldwide. The user has the choice to select the regions based on the application usage so that latency is low. Each region has multiple Availability Zones (AZ), which means you have an option to select Availability Zones where the application will reside, to avoid failure when one availability zone is down but another may be up.
What can you do with AWS?
Create virtual machines
Users can create any number of virtual machines to perform desired task like running web servers. Users are saved from outages on virtual machines of on-premise data centers. Users can maintain load balancer that checks the health of the web servers on virtual machines and forwards requests to healthy machines.
Hosting a web App
You can use maintenance-free services including a database, an object store, and a DNS system would free users from having to manage these parts of the system, decreasing operational costs and improving quality. You can use multiple smaller virtual machines at no extra cost and run your web app. If one of these virtual machines fails, the load balancer will send customer requests to the other virtual machines. This setup improves the web shop’s reliability.
Deploy and run any enterprise application in your private network
You can run enterprise applications (such as Java EE applications) consisting of an application server and an SQL database on AWS. Install enterprise application servers on virtual machines to run the any enterprise application and install any SQL database servers on virtual machines to store data. By using AWS users get the enhanced security to database by making access to database only from the JEE server’s subnet which helps to protect mission-critical data.
Run batch jobs cost effectively
When you run a job only once in a day then keeping machine which runs the job up for entire day is useless consumption of resource. Instead, you can launch a virtual machine when starting a batch job, and terminates it immediately after the job finished. Doing so allows users to pay for computing infrastructure only when actually using it. This is a big game changer compared to the traditional data center where users had to pay a monthly fee for each machine, no matter how much it was used. AWS bills virtual machines per minute. So you have to pay only for the time durations your batch job runs and not for complete month.
Benefits of AWS
Flexibility and scalability
AWS enables you to select the operating system, programming language, web application platform, database, and other services you need. You can scale from one virtual machine to thousands of virtual machines. Your storage can grow from gigabytes to petabytes. You can start new virtual machines within minutes and throw them away a few hours after that.
Easy to use
AWS is designed to allow application providers, ISVs, and vendors to quickly and securely host your applications – whether an existing application or a new SaaS-based application. You can use the AWS Management Console or well-documented web services APIs to access AWS’s application hosting platform. Because AWS has an API, you can automate everything: you can write code to create networks, start virtual machine clusters, or deploy a relational database. Automation increases reliability and improves efficiency. Common problems such as load balancing, queuing, sending email, and storing files are solved for you by services. You don’t need to reinvent the wheel. It’s your job to pick the right services to build complex systems. So let AWS manage those services while you focus on your customers.
Cost-Effective
AWS is a platform that provides on-demand resources for hosting web services, security, storage, networking, databases and other resources over the internet with a pay-as-you-go pricing. With pay-as-you-go pricing mode user will only pay for services being used, so the user doesn't have to pay any upfront fees to acquire hardware resources.
Reliable
Most AWS services are highly available or fault tolerant by default. If you use those services, you get reliability for free. AWS supports you as you build systems in a reliable way. It provides everything you need to create your own highly available or fault tolerant systems.
Secure
AWS utilizes an end-to-end approach to secure and harden our infrastructure, including physical, operational, and software measures. You can be sure that their quality and security follow the latest standards and certifications. For example:
ISO 27001—A worldwide information security standard certified by an independent and accredited certification body.
ISO 9001—A standardized quality management approach used worldwide and certified by an independent and accredited certification body.
PCI DSS Level 1—A data security standard (DSS) for the payment card industry (PCI) to protect cardholders data.
Global infrastructure
AWS has maintained data centers in multiple regions worldwide. The user has the choice to select the regions based on the application usage so that latency is low. Each region has multiple Availability Zones (AZ), which means you have an option to select Availability Zones where the application will reside, to avoid failure when one availability zone is down but another may be up. AWS’s global infrastructure has the following advantages: low network latencies between your customers and your infrastructure, being able to comply with regional data protection requirements, and benefiting from different infrastructure prices in different regions.
AWS Free Tier
Just learning AWS concepts without practicing and experiencing it has no value. If you really want to learn how to get things done the right way, here’s no alternative to rolling up your sleeves and experimenting on your own. You can use lighter versions of just about every service AWS offers for free within the first 12 months of your signing up. The idea behind the Free Tier is to enable you to experiment with AWS and get some experience using its services. Here is a taste of what’s included in the Free Tier:
750 hours (roughly a month) of a small virtual machine running Linux or Windows. This means you can run one virtual machine for a whole month or you can run 750 virtual machines for one hour.
750 hours (or roughly a month) of Managed Relational Database Service for MySQL, PostgreSQL, MariaDB, or SQL Server.
750 hours (or roughly a month) of Managed service that makes it easy to perform interactive log analytics, real-time application monitoring, website search, and more.
1 million of API gateway to publish, maintain, monitor, and secure APIs at any scale.
2 months of Machine learning for every data scientist and developer.
There are many free tier offers do not expire and are available to all AWS customers, below are the sample non expiry service:
25 GB of Dynamo DB for fast and flexible NoSQL database with seamless scalability.
1 million AWS lambda to compute service that runs your code in response to events and automatically manages the compute resources.
AWS billing models
There are many billing models available in AWS, below are some important ones:
Billing per minutes or hours of usage: A virtual machine is billed per minute. A load balancer is billed per hour.
Billing based on traffic: Traffic is measured in gigabytes or in number of requests.
Billing based on storage usage: Usage can be measured by capacity (for example, 10 GB volume no matter how much you use) or real usage (such as 0.5 GB used).
Services offered by AWS
AWS offers services in the following categories:
Compute
| Business productivity
| Desktop and app streaming
|
Storage
| Database
| Mobile services
|
Networking and content delivery
| Migration
| Development tools
|
Analytics
| Media services
| Application integration
|
Security, identity, and compliance
| Management tools
| Machine learning
|
Storage
| Database
| Mobile services
|
Internet of Things
| Contact center
| Game development
|
AWS API
The only way you can interact with AWS is via its API. Every service you can ever use is called (and returns data) via its API, so using the API is critical to working with AWS. There are four mechanisms using which you can interact with the AWS API.
AWS management console
Command-line interface (CLI)
SDK
Third-party tools
AWS management console
The AWS Management Console is a graphical user interface (GUI), which runs in every modern web browser that allows you to interact with service (and your own) computing resources.
Command-line interface (CLI)
The AWS Command Line Interface or CLI is a command-line shell program that allows you to manage your AWS services from your shell terminal. Once installed and set up with proper permissions, you can write commands to manage AWS services. The idea here is to offer a simpler programmatic interface to the set of functions that do the heavy lifting of interacting with the AWS API.
Software Development Kits (SDK)
SDK is a DLL Library, SDK/COM can't be run by manual in CMD window, you can only call it from the source code, e.g., you can call it from VB, VC++, Delphi, C#, VB.NET, Java, etc. program languages. SDK is only useful for Developers. In general, the Command Line can be used easier than SDK version. If you are not a developer, we suggest you may choose the Command Line version. If you’re doing software development and want to integrate an AWS service like a NoSQL database or a push-notification service, an SDK is the right choice for the job. Some services, such as queues and topics, must be used with an SDK.
Third-party tools
Many companies build tools that incorporate AWS. These third party tools are the custom tools developed by extending AWS itself or cloud management software that offers additional functionality not offered by the AWS management console like Heroku and Engine Yard, data warehousing technology from Informatica and JasperSoft, and load-testing services from SOASTA. What these tools have in common is that they provide functionality to shield users from interacting with the AWS API, making AWS easier and faster to use.
All Chapters