Skip to content

Instantly share code, notes, and snippets.

@laxika
Last active March 8, 2019 09:42
Show Gist options
  • Save laxika/28bd56e42ede3a897d77172f0f2acb4d to your computer and use it in GitHub Desktop.
Save laxika/28bd56e42ede3a897d77172f0f2acb4d to your computer and use it in GitHub Desktop.

Basics

What is a datacenter? What tasks do we have there?

  • Easy to scale or adopt to new requirements.
  • Handling peak performance is easier.
  • Less infrastructure bulls**t because the interaction with the hardware layer is minimized.

Why AWS is good, when to use?

  • Wouldn’t put bank application on it (for a good reason).
  • Simple to use/develop on.
  • Speed up the development time with a lots of available plug & play services.
  • Can be cheap or expensive based on the usage scenario.

Regions & availability zones

  • Each region is designed to be completely isolated from the other regions. Greatest possible fault tolerance.
  • AZs good for fault tolerance in a region.
  • AZs different for everyone.
  • Prices can differ by regions.

Storage

S3 (Standard/Infrequent access/Glacier)

Cloudfront

Computing

EC2

EBS

Spot instances

AutoScaling

  • https://aws.amazon.com/autoscaling/
  • Free (yaay!).
  • Preditive scaling: Predictive Scaling predicts future traffic, including regularly-occurring spikes, and provisions the right number of EC2 instances in advance of predicted changes. Predictive Scaling’s machine learning algorithms detect changes in daily and weekly patterns, automatically adjusting their forecasts.

LoadBalancer

  • https://aws.amazon.com/elasticloadbalancing/
  • https://aws.amazon.com/elasticloadbalancing/pricing/
  • Types:
    • Network: best suited for load balancing of Transmission Control Protocol (TCP) and Transport Layer Security (TLS) traffic where extreme performance is required. Operating at the connection level (Layer 4).
    • Application: Application Load Balancer is best suited for load balancing of HTTP and HTTPS traffic and provides advanced request routing targeted at the delivery of modern application architectures, including microservices and containers. Operating at the individual request level (Layer 7) and able to use layer 7-specific features, such as X-Forwarded-For headers.
    • Classic: Classic Load Balancer provides basic load balancing across multiple Amazon EC2 instances and operates at both the request level and connection level. Classic Load Balancer is intended for applications that were built within the EC2-Classic network.
  • Slow start: Slow start mode can be enabled by target group and can be configured for a duration of 30 seconds to 15 minutes. The load balancer linearly increases the number of requests sent to a new target in a target group up to its fair share during the slow start ramp-up window.
  • Health checks: Elastic Load Balancing can detect unhealthy targets, stop sending traffic to them, and then spread the load across the remaining healthy targets.
  • Expensive and scales slowly in throughput (however it's improved).

RDS

  • https://aws.amazon.com/rds/
  • Makes it easy to set up, operate, and scale a relational database in the cloud. It provides cost-efficient and resizable capacity while automating time-consuming administration tasks such as hardware provisioning, database setup, patching and backups.
  • DB Engines:
    • Amazon Aurora
    • PostagreSQL
    • MySQL
    • MariaDB
    • Oracle
    • SQL Server

Lambda

ElastiCache

Extras

SQS

  • Standard -> Least once delivery, nearly-unlimited number of transactions per second.
  • FIFO -> Exactly-once processing, limited to 300 transactions per second.
  • Dead letter queue support.
  • https://aws.amazon.com/sqs/pricing/

Elastic Beanstalk

IAM

AWS CLI tools

AWS Java SDK/API

Maintance

Cost planner

Billing

Cloudwatch

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment