Day 18: AWS Provisioning , server less services, Elastic Beanstalk

AWS Cloud Practitioner With Neel Patel

·

5 min read

Provisioning Services

  • What is provisioning?

    • The allocation or creation of resources and services to a customer.

    • AWS Provisioning Services are responsible for setting up and then managing those AWS Services

  • Elastic Beanstalk (EB) is a Platform as a Service (PaaS) to easily deploy web-applications. EB will provision various AWS services, including EC2, S3, Simple Notification Service (SNS), CloudWatch, FC2 Auto Scaling Groups, and Elastic Load Balancers. If you have ever used Heroku it the AWS equivalent

  • AWS OpsWorks is a configuration management service that also provides managed instances of the open-source configuration managed software Chef and Puppet

  • CloudFormation is a infrastructure modeling and provisioning service. Automate the provisioning of AWS Services by writing CloudFormation templates in either JSON or YAML files. This is known as Infrastructure as Code (laC)

  • AWS QuickStarts are pre-made packages that can launch and configure your AWS compute, network, storage, and other services required to deploy a workload on AWS

  • AWS Marketplace - a digital catalogue of thousands of software listings from independent software vendors you can use to find, buy, test, and deploy software.

  • AWS Amplify is a mobile and web-application framework, that will provision multiple AWS services as your backend.

  • AWS App Runner

    • It is basically Platform as a Service (Paas), but for the container

    • A fully managed service that makes it easy for developers to quickly deploy containerized web applications and APIs, at scale and with no prior infrastructure experience required

  • AWS Copilot

    • AWS Copilot is a command line interface (CLI) that enables customers to quickly launch and easily manage containerized applications on AWS.
  • AWS CodeStar

    • provides a unified user interface, enabling you to easily manage your software development activities in one place. Easily launch common types of stacks eg. LAMP
  • AWS Cloud Development Kit (CDK)

    • An Infrastructure as Code (laC) tool. Allows you to use your favorite programming language. Generates out CloudFormation templates as the means for laC

AWS Elastic Beanstalk

  • What is Platform as a Service? (PaaS)

    • A Pass allows customers to develop, run, and manage applications without the complexity of building and maintaining the infrastructure typically associated with developing and launching an app
  • Elastic Beanstalk is a PaaS for deploying web-applications with little-to-no knowledge of the underlying infrastructure so you can focus on writing application code instead of setting up an automated deployment pipeline and DevOps tasks. Choose a platform, upload your code and it runs with little knowledge of the infrastructure. Not Recommended for "Production" applications

    *Here Production means enterprise and large application

  • Elastic Beanstalk is powered by a CloudFormation template setups for you:

    • Elastic Load Balancer

    • Autoscaling Groups

    • RDS Database

    • EC2 Instance preconfigured (or custom) platforms

    • Monitoring (CloudWatch, SNS)

    • In-Place and Blue/Green deployment methodologies

    • Security (Rotates passwords)

    • Can run Dockerized environments

Serverless Services

  • What is Serverless?

    • When the underlying servers, infrastructure and Operating System (OS) is taken care of by the Cloud Service Provider (CSP). Serverless is generally by default highly available, scalable and cost-effective. You pay for what you use.
  • DynamoDB is a serverless NoSQL key/value and document database. It is designed to scale to billions of records with guaranteed consistent data return in at least a second. You don't have to worry about managing shards!

  • Simple Storage Service (S3) is a serverless object storage service. You can upload very large and an unlimited amount of files. You pay for what you store. You don't worry about the underlying file-system, or upgrading the disk size.

  • ECS Fargate is serverless orchestration container service. It is the same as ECS expect you pay-on-demand per running container (With ECS you have to keep a EC2 server running even if you have no containers running) AWS manages the underlying server, so you don't have to scale or upgrade the EC2 server.

  • AWS Lambda is a serverless functions service. You can run code without provisioning or managing servers. A You upload small pieces of code, choose much memory and how long function is allowed to run before timing out. You a charged based on the runtime of the serverless function rounded to the nearest 100ms.

  • Step Functions is a state machine service. It coordinate multiple AWS services into serverless workflows. Easily share data among Lambdas. Have a group of lambdas wait for each other. Create logical steps. Also works with Fargate Tasks.

  • Aurora Serverless is the serverless on-demand version of Aurora. When you want "most" of the benefits of Aurora but can trade to have cold-starts or you don't have lots of traffic demand

What is Serverless?

  • What is Serverless?

    • Serverless architecture generally describe fully managed cloud services. The classification of a cloud service being serverless is not a Boolean answer (yes or no), but a answer on a scale where a cloud service has a degree of serverless.
  • A serverless service could have all or most of the following characteristics:

    • Highly elastic and scalable

    • Highly available

    • Highly durable

    • Secure by default

  • Abstracts away the underlying infrastructure and are billed based on the execution of your business task.

  • Serverless can Scale-to-Zero meaning when not in use the serverless resources cost nothing.

  • Pay-for-Value (you don't pay for idle servers).

  • An analogy of serverless could be similar to an energy rating labels which allows consumers to compare the energy efficiency of a product. Some services are more serverless than others.