Sunday, 20 March 2022

Application Load Balancer vs Network Load Balancer vs Gateway Load Balancer

Application Load Balancer vs Network Load Balancer vs Gateway Load Balancer

Common features between the load balancers:

  • Has instance health check features
  • Has built-in CloudWatch monitoring
  • Logging features
  • Support zonal failover
  • Supports connection draining
  • Support cross-zone load balancing (evenly distributes traffic across registered instances in enabled AZs)
  • Resource-based IAM permission policies
  • Tag-based IAM permissions
  • Flow stickiness – all packets are sent to one target and return the traffic that comes from the same target.

Amazon Simple Workflow (SWF) vs AWS Step Functions vs Amazon SQS

 Amazon Simple Workflow (SWF)

  • A web service that makes it easy to coordinate work across distributed application components.
  • In Amazon SWF, tasks represent invocations of logical steps in applications. Tasks are processed by workers which are programs that interact with Amazon SWF to get tasks, process them, and return their results.
  • The coordination of tasks involves managing execution dependencies, scheduling, and concurrency in accordance with the logical flow of the application.

AWS Step Functions

  • A fully managed service that makes it easy to coordinate the components of distributed applications and microservices using visual workflows.
  • you define state machines that describe your workflow as a series of steps, their relationships, and their inputs and outputs. State machines contain a number of states, each of which represents an individual step in a workflow diagram. States can perform work, make choices, pass parameters, initiate parallel execution, manage timeouts, or terminate your workflow with a success or failure.

Amazon SQS

  • A message queue service used by distributed applications to exchange messages through a polling model, and can be used to decouple sending and receiving components.
  • FIFO (first-in-first-out) queues preserve the exact order in which messages are sent and received. Standard queues provide a loose-FIFO capability that attempts to preserve the order of messages.
Amazon SWF vs AWS Step FunctionsAWS Step Functions vs Amazon SQSAmazon SQS vs AWS SWF
  • Consider using AWS Step Functions for all your new applications, since it provides a more productive and agile approach to coordinating application components using visual workflows. If you require external signals (deciders) to intervene in your processes, or you would like to launch child processes that return a result to a parent, then you should consider Amazon SWF.

  • With Step Functions, you write state machines in declarative JSON. With Amazon SWF, you write a decider program to separate activity steps from decision steps. This provides you complete control over your orchestration logic, but increases the complexity of developing applications. You may write decider programs in the programming language of your choice, or you may use the Flow framework, which is a library for building SWF applications, to use programming constructs that structure asynchronous interactions for you.
  • Use Step Functions when you need to coordinate service components in the development of highly scalable and auditable applications. Use SQS when you need a reliable, highly scalable, hosted queue for sending, storing, and receiving messages between services.

  • Step Functions keeps track of all tasks and events in an application. Amazon SQS requires you to implement your own application-level tracking, especially if your application uses multiple queues.

  • The Step Functions Console and visibility APIs provide an application-centric view that lets you search for executions, drill down into an execution’s details, and administer executions. Amazon SQS requires implementing such additional functionality.

  • Step Functions offers several features that facilitate application development, such as passing data between tasks and flexibility in distributing tasks. Amazon SQS requires you to implement some application-level functionality.

  • You can use Amazon SQS to build basic workflows to coordinate your distributed application, but you get this facility out-of-the-box with Step Functions, alongside other application-level capabilities.
  • SWF API actions are task-oriented. SQS API actions are message-oriented.

  • SWF keeps track of all tasks and events in an application. SQS requires you to implement your own application-level tracking, especially if your application uses multiple queues.

  • The SWF Console and visibility APIs provide an application-centric view that lets you search for executions, drill down into an execution’s details, and administer executions. SQS requires implementing such additional functionality.

  • SWF offers several features that facilitate application development, such as passing data between tasks, signaling, and flexibility in distributing tasks. SQS requires you to implement some application-level functionality.

  • In addition to a core SDK that calls service APIs, SWF provides the Flow Framework with which you can write distributed applications using programming constructs that structure asynchronous interactions.

Amazon S3 vs Glacier

 

  • Amazon S3 is a durable, secure, simple, and fast storage service, while Amazon S3 Glacier is used for archiving solutions.
  • Use S3 if you need low latency or frequent access to your data. Use S3 Glacier for low storage cost, and you do not require millisecond access to your data.
  • You have three retrieval options when it comes to Glacier, each varying in the cost and speed it retrieves an object for you. You retrieve data in milliseconds from S3.
  • Both S3 and Glacier are designed for durability of 99.999999999% of objects across multiple Availability Zones.
  • S3 and Glacier are designed for availability of 99.99%.
  • S3 can be used to host static web content, while Glacier cannot.
  • In S3, users create buckets. In Glacier, users create archives and vaults.
  • You can store a virtually unlimited amount of data in both S3 and Glacier.
  • A single Glacier archive can contain 40TB of data.
  • S3 supports Versioning.
  • You can run analytics and querying on S3.
  • You can configure a lifecycle policy for your S3 objects to automatically transfer them to Glacier. You can also upload objects directly to either S3 or Glacier.
  • S3 Standard-IA and One Zone-IA have a minimum capacity charge per object of 128KB. Glacier’s minimum is 40KB.
  • Objects stored in S3 have a minimum storage duration of 30 days (except for S3 Standard). Objects that are archived to Glacier have a minimum 90 days of storage. Objects that are deleted, overwritten, or transitioned to a different storage class before the minimum duration will incur the normal usage charge plus a pro-rated request charge for the remainder of the minimum storage duration.
  • Glacier has a per GB retrieval fee.
  • You can transition objects from some S3 storage classes to another. Glacier objects can only be transitioned to the Glacier Deep Archive storage class.
  • S3 (standard, intelligent-tiering, standard-IA, and one zone-IA) and Glacier are backed by an SLA.

Amazon S3 vs EBS vs EFS

 


S3

EBS

EFS

Type of storage

Object storage. You can store virtually any kind of data in any format.

Persistent block level storage for EC2 instances.

POSIX-compliant file storage for EC2 instances.

Features

Accessible to anyone or any service with the right permissions

Deliver performance for workloads that require the lowest-latency access to data from a single EC2 instance

Has a file system interface, file system access semantics (such as strong consistency and file locking), and concurrently-accessible storage for multiple EC2 instances

Max Storage Style 

Virtually unlimited 

16 TiB for one volume 

Unlimited system size

Max File Size

Individual Amazon S3 objects can range in size to a maximum of 5 terabytes.

Equivalent to the maximum size of your volumes

47.9 TiB for a single file

Performance (Latency)

Low, for mixed request types, and integration with CloudFront

Lowest, consistent; SSD-backed storages include the highest performance Provisioned OPS SSD and General Purpose SSD that balance price and performance. 

Low, consistent; use Max I/O mode for higher performance

Performance (Throughput)

Multiple GBs per second; supports multi-part upload

Up to 2 GB per second. HDD-backed volumes include throughput intensive workloads and Cold HDD for less frequently accessed data.

10+ GB per second. Bursting Throughput mode scales with the scales with the size of the file system. Provisioned throughput mode offers higher dedicated throughput than bustring throughput

Durability 

Stored redundantly across multiple AZs; has 99.999999999% durability 

Stored redundantly in a single AZ

Stored redundantly across multiple AZs

Availability 

S3 Standard – 99.99% availability S3 Standard-IA – 99.9% availability

S3 One Zone-IA – 99.5% availability.

S3 Intelligent Tiering – 99.9%

Has 99.999% availability

99.9% SLA. Runs in multi – AZ

Scalability

Highly scalable 

Manually increase/decrease your memory size. Attach and detach additional volumes to and from your EC2 instance to scale.

EFS file systems are elastic, and automatically grow and shrink as you add and remove files.

Data Accessing 

One to millions of connections over the wed; S3 provides a REST web services interface

Single EC2 instance in a single AZ 

Amazon EBS Multi-Attach a single Provisioned IOPS SSD (io1 or io2) volume to up to 16 Nitro-based instances that are in the same Availability Zone.

One to thousands of EC2 instances or on-premises servers, from multiple AZs, regions, VPCs, and accounts concurrently 

Access Control

Uses bucket policies and IAM user policies. Has Block Public Access settings to help manage public access to resources.

IAM Policies, Roles, and Security Groups 

Only resources that can access endpoints in your VPC, called a mount target, can access your file system; POSIX-compliant user and group-level permissions.

Encryption Methods 

Supports SSL endpoints using the HTTPS protocol, Client-Side and Server-Side Encryption (SSE-S3, SSE-C, SSE – KMS)

Encrypts both data-at-rest and data-in-transit through EBS encryption that uses AWS KMS CMKs.

Encrypt data at rest and in transit. Data at rest encryption uses AWS KMS. Data in transit uses TLS.

Backup and Restoration 

Use versioning or cross-region replication

All EBS volume types offer durable snapshot capabilities.

EFS to EFS replication through third party tools or AWS DataSynch 

Pricing

Billing prices are based on the location of your bucket. Lower costs equals lower prices. You get cheaper prices the more you use S3 storage.

You pay Gb-month of provisioned storage, provisioned IOPS-month, GB-month of snapshot data stored in S3

You pay more the amount of file system storage used per month. When using the Provisioned Throughput mode you pay for the throughput you provision per month.

Use Cases 

Web serving and content management, media and entertainment, backups, big data analytics, data lake

Boot volumes, transactional and NoSQL databases, data warehousing & ETL

Web serving and content management,enterprise applications, media and entertainment, home directories, database backups, developer tools, container storage, big data analytics

Service endpoint 

Can be accessed within and outside a VPC ( via S3 bucket URL)

Accessed within one’s VPC 

Accessed within one’s VPC

Amazon S3 vs Glacier

 

  • Amazon S3 is a durable, secure, simple, and fast storage service, while Amazon S3 Glacier is used for archiving solutions.
  • Use S3 if you need low latency or frequent access to your data. Use S3 Glacier for low storage cost, and you do not require millisecond access to your data.
  • You have three retrieval options when it comes to Glacier, each varying in the cost and speed it retrieves an object for you. You retrieve data in milliseconds from S3.
  • Both S3 and Glacier are designed for durability of 99.999999999% of objects across multiple Availability Zones.
  • S3 and Glacier are designed for availability of 99.99%.
  • S3 can be used to host static web content, while Glacier cannot.
  • In S3, users create buckets. In Glacier, users create archives and vaults.
  • You can store a virtually unlimited amount of data in both S3 and Glacier.
  • A single Glacier archive can contain 40TB of data.
  • S3 supports Versioning.
  • You can run analytics and querying on S3.
  • You can configure a lifecycle policy for your S3 objects to automatically transfer them to Glacier. You can also upload objects directly to either S3 or Glacier.
  • S3 Standard-IA and One Zone-IA have a minimum capacity charge per object of 128KB. Glacier’s minimum is 40KB.
  • Objects stored in S3 have a minimum storage duration of 30 days (except for S3 Standard). Objects that are archived to Glacier have a minimum 90 days of storage. Objects that are deleted, overwritten, or transitioned to a different storage class before the minimum duration will incur the normal usage charge plus a pro-rated request charge for the remainder of the minimum storage duration.
  • Glacier has a per GB retrieval fee.
  • You can transition objects from some S3 storage classes to another. Glacier objects can only be transitioned to the Glacier Deep Archive storage class.
  • S3 (standard, intelligent-tiering, standard-IA, and one zone-IA) and Glacier are backed by an SLA.

Amazon RDS vs DynamoDB

 


RDS

DynamoDB

Type of database

Managed relational (SQL) database

Fully managed key-value and document (NoSQL) database

Features

Has several database instance types for different kinds of workloads and supports six database engines – Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle Database, and SQL Server.

Delivers single-digit millisecond performance at any scale.

Storage Size

-128 TB for Aurora engine.

-64 TB for MySQL, MariaDB, Oracle and PostgreSQL engines.

-16 TB for SQL Server engine.

Supports tables of virtually any size.

Number of tables per unit

Depends on the database engine

256

Performance

General Purpose Storage is an SSD-backed storage option that delivers at consistent baseline of 3 IOPS per provisioned GB with the ability to burst up to 3,000 IOPS.

Provisioned IOPS Storage is an SSD-backed storage option designed to deliver a consistent IOPS rate that you specify when creating a database instance, up to 40,000 IOPS per database Instance. Amazon RDS provisions that IOPS rate for the lifetime of the database instance. Optimized for OLTP database workloads.

Magnetic – Amazon RDS also supports magnetic storage for backward compatibility.

Single-digit millisecond read and write performance. Can handle more than 10 trillion requests per day with peaks greater than 20 million request per second, over petabytes ofstorage.

DynamoDB Accelerator (DAX) is an in-memory cache that can improve the read performance of your DynamoDB tables by up to 10 times – taking the time required for reads from milliseconds to microseconds, even at millions of requests per second.

You specify the read and write throughput for each of your tables.

Availability and durability

Amazon RDS Multi-AZ deployments synchronously replicates your data to a standby instance in a different Availability Zone

Amazon RDS will automatically replace the compute instance powering your deployment in the event of a hardware failure.

DynamoDB global tables replicate your data automatically across 3 Availability Zones of your choice of AWS Regions and automatically scale capacity to accommodate your workloads.

Backups

The automated backup feature enables point-in-time recovery for your database instance. Database snapshots are user-initiated backups of your instance stored in Amazon S3 that are kept until you explicitly delete them.

Point-in-time recovery (PITR) provides continuous backups of your DynamoDB table data, and you can restore that table to any point in time up to the second during the preceding 35 days. On-demand backups and restore allows you to create full backups of your DynamoDB tables’ data for data archiving.

Scalability

The Amazon Aurora engine will automatically grow the size of your database volume. The MySQL, MariaDB, SQL Server, Oracle, and PostgreSQL engines allow you to scale on-the-fly with zero downtime.

RDS also supports storage auto scaling Reads replicas are available in Amazon RDS for MySQL, MariaDB, and PostgreSQL as well as Amazon Aurora.

Support tables of virtually any size with horizontal scaling.

For tables using on-demand capacity mode, DynamoDB instantly accommodates your workloads a they ramp up or down to any previously reached traffic level. For tables using provisioned capacity, DynamoDB delivers automatic scaling of throughput and storage based on your previously set capacity.

Security

Isolate your database in your own virtual network.

Connect to your on-premises IT infrastructure using industry-standard encrypted IPsec VPNs.

You can configure firewall settings and control network access to your database instances.

Integrates with IAM.

Integrates with IAM.

Encryption 

Encrypt your databases using keys you manage through AWS KMS. With encryption enabled, data stored at rest is encrypted, as are its automated backups, read replicas, and snapshots.

Supports Transparent Data Encryption in SQL Server and Oracle.

Supports the use of SSL to secure data in transit.

DynamoDB encrypts data at rest by default using encryption keys stored in AWS KMS.

Maintenance 

Amazon RDS will update databases with the latest patches. You can exert optional control over when and if your database instance is patched.

No maintenance since DynamoDB is serverless.

Pricing 

A monthly charge for each database instance that you launch.

Option to reserve a DB instance for a One or three year term and receive discounts in pricing, compared to On-Demand instance pricing.

Charges for reading, writing, and storing data in your DynamoDb tables, along with any optional features you choose to enable. There are specific billing options for each of DynamoDB’s capacity modes.

Use cases 

Traditional applications, ERP, CRM, and e-commerce.

Internet-scale applications, real-time bidding, shopping carts, and customer Preferences, content management, Personalization, and mobile applications.

Amazon Kinesis Data Streams vs Data Firehose vs Data Analytics vs Video Streams

 


Data Streams

Data Firehose

Data Analytics

Video Streams

Short definition

Scalable and durable real-time data streaming service.

Capture, transform, and deliver streaming data into data lakes, data stores, and analytics services.

Transform and analyze streaming data in real time with Apache Flink.

Stream video from connected devices to AWS for analytics, machine learning, playback, and other processing.

Data sources

Any data source (servers, mobile devices, IoT devices, etc) that can call the Kinesis API to send data.

Any data source (servers, mobile devices, IoT devices, etc) that can call the Kinesis API to send data.

Amazon MSK, Amazon Kinesis Data Streams, servers, mobile devices, IoT devices, etc.

Any streaming device that supports Kinesis Video Streams SDK.

Data consumers

Kinesis Data Analytics, Amazon EMR, Amazon EC2, AWS Lambda

Amazon S3, Amazon Redshift, Amazon Elasticsearch Service, generic HTTP endpoints,  Datadog, New Relic, MongoDB, and Splunk

Analysis results can be sent to another Kinesis stream, a Kinesis Data Firehose delivery stream, or a Lambda function

Amazon Rekognition, Amazon SageMaker, MxNet, TensorFlow, HLS-based media playback, custom media processing application

Use cases

– Log and event data collection

– Real-time analytics

– Mobile data capture

– Gaming data feed

– IoT Analytics

– Clickstream Analytics

– Log Analytics

– Security monitoring

– Streaming ETL

– Real-time analytics

– Stateful event processing

– Smart technologies

– Video-related AI/ML

– Video processing