AWS

  • PostgresSQL, MySQL, MariaDB, Oracle, MS SQL Server, Aurora (AWS proprietary db).
  • Amazon aurora auto scales up to 128 TB of storage/db instances.
  • Aurora have 15 replica & MySQL have 5.
  • All caches in elasticache do not support IAM authentication.
  • Amazon redshift for analytics.
  • Complex transactions or complex queries use RDS. High Durability.
  • Massive read/write rates use no SQL db.
  • MySQL, MariaDB, PostgresSQL & Aurora support read replica.
  • Provide a static DNS name we can use in our application.
  • When using Application Load Balancer (ALB) to distribute to your EC2 instance the IP address you'll receive requests from will be the ALB's private IP addresses to get the clients IP address ALB additional header called "X-forwarded-for" contains the client's IP address.
  • Network Load Balancer(NLB) provides the highest performance and lowest latency if your app needs it.
  • ALB does not support TCP.
  • NLB support TCP & UDP.
  • ALB can route traffic to different target groups based on
  • Step Functions coordinate multiple AWS services into serverless workflows using State Machines.
  • A state machine is an abstract model which decides how one state moves to another based on a series of conditions.
  • API Gateway is a solution for creating secure API's in your cloud environment at any scale.
  • Create API's that act as a front door for applications to access data, business logic, or functionality from back-end services.
  • API Gateway throttles API endpoints at 10,000 requests per second (can be increase via service request through AWS support).
  • Stage allow you to have multiple published versions of your API eg.
  • ElastiCache is a managed in-memory caching service.
  • ElastiCache can launch either Memcached or Redis.
  • Memcached is a simple key / value store preferred for caching HTML fragments and is arguably faster than Redis.
  • Redis has richer data types and operations.
  • Simple Storage Service (S3) Object-based storage. Store unlimited amount of data without worry of underlying storage infrastructure.
  • S3 replicates data across at least 3 AZ's to ensure 99.99% availability and 11 9's of durability.
  • Objects contain your data (they are like files).
  • Objects can be size anywhere from 0 Bytes up to 5 Terabytes.
  • Buckets contain objects. Buckets can also contain folders which can in turn can contain objects.
  • Bucket names are unique across all AWS accounts.
  • Relational Database Service (RDS) is the AWS Solution for relational databases.
  • RDS instances are managed by AWS, You cannot SSH into the VM running the database.
  • There are 6 relational database options currently available on AWS, Aurora, MySQL, MariaDB, Postgres, Oracle, Microsoft SQL Server.
  • Multi-AZ is an option you can turn on which makes an exact copy of your database in another AZ that is only standby.
  • For Multi-AZ AWS automatically synchronizes changes in the database over to the standby copy.
  • Multi-AZ has automatic failover pr
  • CodePipeline is a fully-managed CI/CD pipeline to setup automatic deployments.
  • Anatomy of CodeDeploy
      1  Pipeline - encompasses all components.
      2  Stage - a step in the pipeline eg. Source > Build > Deploy.
      3  Action Group - groups several actions together.
      4  Artifact - a zip stored in S3 containing outputted files from an action to pass along to another stage of the pipeline.
      5  Stage Transitions - link to the next pipeline stage.
  • Use Cases
  • A fully-managed deploy pipeline to deploy to staging or production environments.
  • Can deploy to EC2, On-Premise, Lambda or ECS.
  • Can Perform In-Place or Blue/Green Deployments.
      1  In-Place - instances are breifly taken offline, updates are applied to existing servers.
      2  Blue/Green - Replaces instances with new instances. Swapping environments.
  • CodeDeploy Core Components
      1  Application - Encompassess all other components. Unique ID of the application being deployed.
  • CodeBuild is a fully-managed build pipeline to create temporary servers to build and test code.
  • Compile source code, runs unit tests, and produces artifacts that are ready to deploy.
  • Provides prepackaged build environments or you can build your own environments as a Docker container.
  • Uses a Buildspec.yml to provide build instructions. This file is stored in the root of your project.
      1  Version 0.1 - runs each build command in a separate instance.
      2  Version 0.2 - runs all build commands in the same instance.