AWS Web Services is a cloud computing platform that is widely used by different types of organizations and developers all over the world. For example: Medical industries are using it to create personalized treatments for their patients. Finance industries are using it for real-time fraud detection and prevention. Moreover, video game organizations are building online games to provide them to players all over the world.
Why are they called web services?
The reason why we consider them as web services is because they are accessible over the network through standard protocol using HTTP/HTTPS. These web services are flexible and remotely accessed. Therefore, we may practically access them from any location in the world. Moreover, AWS provides services like EC2 machine, RDS database, S3 bucket which can be accessed using API.
What is each of the following used for?
EC2 – Types
Amazon Elastic Compute Cloud or Amazon EC2 is used to provide resizable computing capacity servers in the Amazon data centers which you can scale according to your need for your software system.
The following are the major types of EC2 instances:
General purpose:
These instances are perfect for servers and databases since they have a balanced CPU, memory, and networking configuration.
Compute-optimized instance: designed to calculate complex applications that demand powerful CPUs.
Memory-optimized: offers a high ratio of RAM to CPU. primarily utilized for applications requiring a lot of memory.
Storage optimized: optimized for high-performance storage needs. Ideal for situations where having read and write access to huge databases is necessary.
High-performance computing: designed for high-performance computing where you need maximum speed to process large amounts of data.
Accelerated computing: Specifically used for machine learning models, video rendering, and GPUs.
Aws Lambda:
One of its outcomes in serverless computing is AWS Lambda. So you don’t have to worry about the management and configuration of the server. All the execution and scaling are handled by lambda and with cost-effective features. The function in which we write our code is called the lambda function.
The following are features of AWS lambda:
Trigger-event: You write a code to upload a file on s3. If the lambda function is set, it will execute automatically when the file is uploaded to S3.
Cost efficient: It only charges you til the code runs for the lambda function.
Automatic scalability: The number of user requests determines how automatically Lambda scales.
SNS and SQS:
Amazon SNS is a managed publish-subscribe service on AWS, enabling publishers to send messages to a topic, which subscribers receive. It supports both A2A (application-to-application) and A2P (application-to-person) message delivery.
A2A includes services: Aws lambda(file upload), Aws SQS, Http endpoints etc.
A2P includes services: Email, SMS, Aws chatbot etc.
Because SNS is so efficient, messages are published instantly in milliseconds. SNS follows a fanout pattern that means one to fan out one event to various subscribers within aws.
Both standard and FIFO topics are permitted on SNS. Unlike the Standard, FIFO topics adhere to message ordering. FIFO topics have much harder limits.
SQS: (simple queue service) Amazon SQS is a fully distributed, poll-based messaging service commonly used for asynchronous workloads, allowing producers to send messages to a queue where they await retrieval by consumers. Messages can be retried or sent to a Dead Letter Queue (DLQ) if processing fails, helping to manage errors. SQS supports standard and FIFO queues, enabling sequence control when needed, and allows multiple producers to communicate with a single consumer, such as EC2 or Lambda.
RDS: is an AWS-provided relational database management system. Many database engines are supported, including Microsoft SQL Server, MariaDB, Postgresql, Mysql, Oracle, and Aurora DB.
Aurora Db is a component of RDS, but it differs from Standard RDS in certain ways.
It supports two database engines Mysql and PostgreSQL compatible. However, RDS supports Mysql, PostgreSQL, MariaDB, Oracle, etc. The main differences between aurora and RDS are the following:
Performance: It delivers 5 times faster performance compared to Standard RDS MySQL and 2 times compared to RDS PLSQL.
High Availability:
Aurora provides high availability with Aurora Replicas, automatically replicating data across Availability Zones and failing over if the primary instance fails. Similarly, RDS supports Multi-AZ deployments, which replicate data to a standby instance and automatically switch to it during failures.
Scalability
Aurora supports auto-scaling of storage, meaning it automatically increases the storage capacity as needed, up to 128 TiB.
Aurora can scale compute resources and storage independently, with the ability to add up to 15 read replicas to distribute read traffic.
RDS also supports scaling, but the storage capacity must be manually adjusted, and it scales up to 64 TiB for certain engines. Although RDS enables fewer replicas than Aurora (e.g., up to 5 replicas for MySQL), it still permits read replicas.
Cost:
Aurora is costlier than standard RDS due to its advanced features, with costs varying by instance type and storage. Standard RDS engines like MySQL and PostgreSQL are usually cheaper.