An Overview of AWS
IaaS vs. PaaS
When you think about cloud computing models, IaaS and PaaS come into mind. AWS offers both.
Infrastructure as a Service (IaaS) allows organizations to utilize AWS instead of owning and operating their own datacenter. You can simply rent VMs or physical servers from AWS.
IaaS stands for Infrastructure as a Service’ the fundamental aspect here is that Amazon Web Services manages the Infrastructure for you. They own and operate the data center and give the user VMs and other services at a fractional cost to the user.
The Platform as a Service (PaaS) on the other hand removes the need for your organization to manage the underlying platforms like a database, streaming services, etc. This allows you to focus on the deployment and management of your core applications and not worry about the IaaS and PaaS layers.
PaaS in turn, gets organizations to be more efficient and focused as you don’t need to worry about resource procurement, capacity planning, software maintenance, patching, or any of the other undifferentiated heavy lifting involved in running your application.
Amazon web services infrastructure
The Amazon Web Services Infrastructure consists of four primary areas which are a combination of IaaS and PaaS:
- Compute (EC2, LightSail, ECS, Lambda, Batch)
- Storage (EBS, EFS, S3, Glacier, Storage Gateway, Storage Migration Services)
- Database (RDS, Redshift)
- Network (CloudFront, VPC, Direct Connect, Load Balancing, Route 53)
In this course we will go into the details of the various services that would fall into one of these four main buckets.
Compute(EC2): This is where you create/deploy your own virtual machine. At AWS you have a wide variety of compute instances you can choose from. This ranges from the type of operating system you would choose to the RAM or CPU you would want your compute instance to have.
Elastic Container Services(ECS): It is used to run and manage your Docker containers. You can think of it as a managed Kubernetes service.
LightSail (VPS Service – Virtual Private service): AWS Lightsail launches virtual private servers, which are VMs with individual operating systems but restricted access to physical server resources.
Lambda: Lambda lets you upload a function onto AWS and you pay every time the function is executed or called. You do not need to think about managing the OS or the VM. Lambda does it all for you.
For example, think about a tax calculator. In the traditional model, you would write the code. Procure a virtual machine to deploy your code to the VM. Then you need to maintain, manage your deployment. However, with Lambda you don’t need to pay or manage the VM, Amazon does this for you.
Batch: Batch computing is used for Batch processing. AWS Batch dynamically provisions the optimal quantity and type of compute resources (e.g., CPU vs. memory optimized instances) based on the volume and specific resource requirements of the batch jobs submitted. It also manages the batch process, i.e re-starting jobs that fail, scheduling jobs, etc.
Simple Storage Service (S3): Amazon Simple Storage Service (Amazon S3) is an object storage service offering industry-leading scalability, data availability, security, and performance. Customers of all sizes and industries can store and protect any amount of data for virtually any use case, such as data lakes, cloud-native applications, and mobile apps. With cost-effective storage classes and easy-to-use management features, you can optimize costs, organize data, and configure fine-tuned access controls to meet specific business, organizational, and compliance requirements.
Network Attached Storage (EFS): In the Elastic file System you upload your files to an EFS and then mount that onto multiple virtual machines.
Glacier: It is a storage service used for Data archival. It is primarily used to store data that you do not need to use right away. The cost of storage on Glacier is significantly lower. It takes 3 – 5 hours to restore from Glacier and it costs $0.01 per gigabyte, per month.
Snow Ball: It is used to transport a large amount of data onto AWS or to take it out of AWS and move it to your data center.
AWS ships you a hardware device that you plug into your data center and then upload your encrypted data onto the snowball (Hardware device). You will then ship it to AWS and they will upload your data onto AWS. This way you do not need to move your data through the internet as it might take months to move petabytes of data onto AWS.
Storage Gateway: It is a VM you install in your data center and this replicates data back into S3. This is used when you have an on-premises data-center and would like to replicate the data onto AWS. Once you have a Storage gateway setup you can replicate to S3 on AWS.
Relational Database Service (RDS): Provides cost-efficient and resizable capacity while managing time-consuming database administration tasks, freeing you to focus on your applications and business.
Amazon RDS gives you access to several familiar database engines, including Amazon Aurora, MySQL, PostgreSQL, MariaDB, Oracle, and SQL Server. This means that the code, applications, and tools you already use with your existing databases can be used with RDS.
RDS automatically patches the database software and backs up your database, storing the backups for a user-defined retention period and enabling point-in-time recovery.
Aurora: It is an AWS proprietary relational Database that is compatible with MySQL and PostgreSQL. It combines the performance and availability of high-end commercial databases with the simplicity and cost-effectiveness of open source databases.
DynamoDB: It is a nonrelational database i.e a NoSQL DB. It is a managed service, i.e you do not need to tune or manage it in any way, AWS does this for you.
Neptune: It is a fully managed graph database. Relationships are first-class citizens in graph databases, and most of the value of graph databases is derived from these relationships. Graph databases use nodes to store data entities, and edges to store relationships between entities.
A graph in a graph database can be traversed along with specific edge types or across the entire graph. In graph databases, traversing the joins or relationships is very fast because the relationships between nodes are not calculated at query times but are persisted in the database. Graph databases have advantages for use cases such as social networking, recommendation engines, and fraud detection, when you need to create relationships between data and quickly query these relationships.
ElasticCache: It offers fully managed Redis and Memcached. Seamlessly deploy, operate, and scale popular open source compatible in-memory data stores.