Multi-Cloud notes on AWS, Azure, GCP Compute ServicessteemCreated with Sketch.

in #aws4 years ago

This is a continuation of multi-cloud notes based on courses in Pluralsight, Udemy etc... Today, I cover compute services in AWS, Azure, and GCP.

AWS Compute Services

Elastic Compute Cloud (EC2)

  • It's the core AWS compute service to create virtual machines on-demand

  • EC2 supports multiple compute, memory, OS configurations

  • There are multiple familes and types of EC2 instances: general purpose, compute optimized, memory optimized, storage optimized, accelerated compute

  • EC2 can scale within minutes and provision 100s to 1000s servers for your operation. There are EC2 instances that charge by second or hour depending upon the type chosen.

AWS Lambda

  • Lambda functions are the serverless compute offering in AWS. It saves cost by not having to worry about turning off unused server.
  • All you need to do is upload your lambda code, which executes automatically on triggers like API, SNS, file upload in s3 buckets etc...

Common Lambda use cases

  • Serverless mobile apps, web back-end
  • Internet of Things
  • API creation
  • Highly demanding application that require scaling to millions of requests automatically
  • AWS grants 1 million lambda requests free per month. After that 20 cents per million requests.

Azure Compute Services

  • Just like AWS, it's the core compute service where you can create on-demand virtual machines

There are multiple VM series:

A Series

  • These are the entry level economical VMs
  • Their usecase is suited for development and testing

B Series

  • They are as economical as A, but slightly more burstable
  • Their workloads can handle moderate CPU utilization and occasional burst

D Series

  • These are general purpose VMs with the most optimal CPU-memory config
  • They are best suited for enterprise level apps or memory caching

DC Series

  • This series are designed for security of data and code.
  • They enable confidential data processing.

E Series

  • These are memory optimized VMs.
  • Their use case is in-memory hyper threaded applications.

F Series

  • These are compute optimized with higher CPU-memory ratio.
  • They are ideal for analytics or compute heavy operations. Could be leveraged for streaming analytics.

G Series

  • These are memory and storage optimized VMs.
  • They are geared toward SQL and NOSQL Databases. Think Data Warehouse or Big Data!!!

H Series

  • These are high performance compute optimized
  • They are ideal for risk analysis, quantum simulation.

Ls Series

  • High throughput low latency storage optimized VMs
  • These can also be utilized for important database and data warehouses.

M Series

  • These are the largest memory optimized VMs.

N Series

  • These VMs have GPU for DataScience and Machine Learning projects.
  • Their capabilities make them ideal for graphic intensive operations like deep learning, graphic rendering, and video editing.

Virtual Machine Pricing

Azure Functions

  • It's equivalent to AWS lambda which enables serverless computing.
  • This is Function-As-A-Service, driven by events.
  • Just like AWS, one needs to upload the code, that triggers on API requests, data, file binding, db updates, and various other triggers that gets added constantly in Azure EcoSystem
  • Testing and Development can be done locally.
  • If you want to find out if your programming language is supported, visit https://docs.microsoft.com/en-us/azure/azure-functions/supported-languages
  • Just like AWS, it's able to scale on-demand automatically. Also, Azure functions are allowed 1 million free transations per month

GCP Compute Services

GCP Compute Engine

  • Compute Engines are the VMs in GCP. Just like AWS, & Azure one can provision on-demand virtual machines for wide range of workloads
  • Users get to utilize this infrastructure-as-a-service offering to configure, administer, and monitor the instances
  • Their supported OS are Windows and Linux just like AWS and Azure. Due to EULA, Mac OS isn't generally supported in the cloud. However, there are ways to run Mac OS in VmWare and VirtualBox. They are generally unstable.

Term: vCPU - Virtual CPU

Predefined Machine types:

  • Standard: 1) balanced CPU and memory needs, 2) 3.75 GB memory per vCPU
  • High CPU: Useful for high processing needs and get 0.9 GB memory per vCPU
  • High Memory: 6.5 GM memory per vCPU
  • Memory Optimized: These are good for in-memory-database applications and provides 14 GB memory per vCPU

Compute engine pricing:

Sustained Usage Discount

  • Automatic discount for running compute engine resource for significan part of the month.
  • If a compute engine / vm runs for the entire month 100% of the time, a 30% discount is applied
  • Discount gets reset at beginning of each month... Must create the VM in the 1st day of the month to take this advantage.

Committed Use Discount

  • These are applied for stable and predictable workloads.
  • You can purchase vCPUs, memory, GPUs or SSDs for discount.
  • The contract must be for 1 or 3 year terms. This option is similar to Azure.
  • This discount is up to 57%.

Preemptible Instances

  • These provide 80% savings.
  • The risk is that GCP can take these instances back without asking.

Google Kubernetes Engine aka GKE

  • This is google's answer to container-as-a-service or container based computing.
  • It utilizes open source kubernetes system

GKE's fully managed kubernetes cluster capable of

  • creation, deployment, and management of containers managed by GCP
  • perform health check of containers in a cluster and ensure their availability
  • can scale automatically
  • portable

GKE bills for underlying compute engine resources

Google App Engine

  • This is GCP's 1st service.
  • It's their Platform-as-a-service (PaaS) offering.
  • GCP does all server management through this. If servers need to be scaled, GCP manages it automatically.
  • Supported application languages are: Java, PHP, NodeJS, Python, C#, Rudy, Go

Google App Engine Environment Types:

  • Standard: applications run in a preconfigured sandbox with one of the runtimes.
  • Flexible: applications run within docker containers on compute engine VMs.

Google Cloud Functions

  • Just like AWS, and Azure this serverless computing assets are triggered by events.
  • You'd upload your code that executes automatically on watched events.
  • This reduces server management overheads and reduces cost.
  • GCP's cloud functions free tier provider double the number of free invocations provided by AWS, Azure. It stands at 2 million function calls per month. Also, 1 million seconds (11 days) free compute per month.

In the scale of 1 to 4 (1 being most involvement, 2 being decent involvement, 3 being some involvement, & 4 being least involvement)

  • Compute Engine or VM Infrastructure is 1
  • Kubernetes Engine aka GKE or Container Cluster management is 2
  • App Engine or Managed App platform is 3
  • Cloud functions or Serverless execution environment is 4