Introduction to AWS

Angel Borroy López
Angel Borroy LópezDeveloper Evangelist um Hyland
Angel Borroy
10th March 2021
AWS
Introduction
XXI NEOCOM
Organizer:
2
2
AWS Introduction
What is AWS
Alternatives
Open Source
Core Concepts
Hands on
Cost Calculator
Training & Certifications
XXI NEOCOM
3
Speaker :: Angel Borroy
• Computer Engineer by the University of Zaragoza (EINA, 1999)
• Working as Senior Software Engineer for Alfresco in Hyland
• 20+ years developing software
• Open-Source enthusiast!
4
4
What is AWS
5
What is AWS
Amazon Web Services (AWS) provides cloud-based products with a pay-as-you-go pricing.
A Cloud Services Platform, like AWS, owns and maintains the network-connected hardware required for the cloud
products while the customer provision and use required resources via an application.
Types of Cloud Computing
Cloud Computing Models
• IaaS
• PaaS
• SaaS
Cloud Computing Deployment Models
• Cloud
• Hybrid
• On-premises
6
Global Infrastructure
Zaragoza, Spain
7
Services (175+)
S3
EC2
Route
53
RDS
VPC
Lambda
API
Gateway
Amplify
8
Using AWS
• Web Console using a browser: https://aws.amazon.com
• Command line client (AWS Command Line Interface): https://aws.amazon.com/cli/
• SDKs: JavaScript, Python, PHP, .NET, Ruby, Java, Go, Node.js, C++ https://aws.amazon.com/getting-started/tools-
sdks/
AWS Service Endpoints (REST API)
protocol://service-code.region-code.amazonaws.com
• protocol: http or https
• service-code: ec2, s3, vpc, lambda, route53, rds, apigateway, amplify…
• region-code: us-east-1, ap-south-1, eu-west-1…
>> Europe (Ireland) is eu-west-1, so to use EC2 service:
https://ec2.eu-west-1.amazonaws.com
9
Amazon Resource Names (ARN)
Amazon Resource Names (ARNs) uniquely identify AWS resources.
Used to specify a resource unambiguously across all of AWS, such as in IAM policies, Amazon Relational Database
Service (Amazon RDS) tags, and API calls.
Format
arn:partition:service:region:account-id:resource-id
• partition: aws, aws-cn or aws-us-gov (group of AWS Regions)
• service: ec2, s3, vpc, lambda, route53, rds, apigateway, amplify…
• region: us-east-1, ap-south-1, eu-west-1…
• account-id: 123456789012 (ID of the AWS account owner of the resource)
• resource-id: instance/i-1234567890abcdef0 (ID of the resource)
>> Europe (Ireland) is eu-west-1, so the ARN of an EC2 instance:
arn:aws:ec2:eu-west-1:123456789012:instance/i-1234567890abcdef0
10
10
Alternatives
11
Alternatives
Leaders
Microsoft Azure: https://azure.microsoft.com/en-us/
Google Cloud: https://cloud.google.com
Other
Alibaba Cloud: https://eu.alibabacloud.com
Oracle Cloud: https://www.oracle.com/cloud/
IBM Cloud: https://www.ibm.com/cloud
Tencent Cloud: https://intl.cloud.tencent.com
12
Free Tier
AWS Free Tier
• 750 hours of Linux or Windows micro instances
• 1GB of memory, 15GB of bandwidth, a load balancer, and access to a database, caching, and other tools
• Free resources will renew for 12 months
Microsoft Azure Free Tier
• 750 hours of Linux or Windows machines
• Ample storage, SQL database, 15GB of bandwidth
• Several other popular services are free for at least 12 months, and new customers also receive a $200 credit to try
any other service for 30 days
Google Cloud Platform Free Tier
• One month of a micro instance
• 30GB of storage, plus a 12-month free trial with $300 credit to try any service
• Limited access to many common tools is provided for free, always
13
13
Open Source
14
Open Source at AWS
https://github.com/aws
15
Managed Services: Deployment at Scale
16
Amazon forked Elasticsearch and Kibana!
Amazon Why Open Distro for Elasticsearch
• Elasticsearch development has shifted to non-open source licenses
• Open Distro for Elasticsearch provides an open source, community-
driven distribution
• We are maintaining forks based on Elasticsearch and Kibana 7.10 while
continuing to build functionality into plugins and tools
Elastic Why we had to change Elastic licensing
• There is only one Elastic Cloud
• Software from the source
• Support from the creators
• Engaged Community
• Exclusive capabilities
“The Amazon Elasticsearch Service offers a subset of the functionality, choice and support
capabilities of Elastic. Rest easy knowing Elastic, the company behind Elasticsearch, is backing
your mission-critical deployments with our experts, solutions, support and roadmap”
17
17
Core Concepts
18
Core Concepts
• IAM Identity and Access Management: Manage accounts and permissions
• VPC Virtual Private Cloud: Networking layer with Security Groups
• S3 Simple Storage Service: Cloud storage placed into Buckets
• EC2 Elastic Compute Cloud: Named as instance, is a virtual private server
• AMI Amazon Machine Image: Immutable image used to launch a preconfigured EC2 instance
• Elastic IPs: Assigned IP addresses
• Load Balancers: Single point of contact for clients
• RDS Relational Database Service: Managed service (PostgreSQL, MariaDB, MySQL, Oracle, SQLServer and Aurora)
• Lambda allows to define functions invoked via triggers (SNS notification, API invocation…)
• API Gateway allows to create RESTful APIs or WEBSOCKET APIs
• Route 53 is AWS DNS Service, and it allows to register domain names
• Amplify is a set of tools to connect a backend with the UI components
• CloudFormation provides templatized configuration of collections of AWS Resources
• Containers are supported by EC2, ECS and EKS services
19
IAM
• IAM identities
• Users: people or services using AWS
• Groups: sets of users
• Roles: permissions assigned to AWS Service instances
• IAM permissions are named policies
• Identity-based
• Resource-based
• Permissions boundaries
• Organizations Service Control Policies (SCPs)
• Access Control Lists (ACLs)
• Session policies
• IAM authentication
• Passwords
• Access keys
• Multi-factor authentication (MFA)
Policy
https://aws.amazon.com/iam
20
VPC
• For basic AWS use, one default VPC may be enough
• Security groups
• Access policy is “deny by default”
• Open selected ports (SSH 22, HTTP 80, HTTPs 443) using CIDRs (Classless Inter-Domain Routing)
• Consider using a Load Balancer
• Other components
• Subnet: segment of VPC IP address range
• Internet Gateway: connection to public Internet
• NAT Gateway: NAT service in a private subnet to access Internet
https://aws.amazon.com/vpc
21
S3
• Despite EC2 Instances mount local volumes for storage (EBS or EFS), S3 is the service for Cloud Storage
• Objects are placed into named buckets stored with names called keys. The main content is the value.
• It’s a common practice to write S3 locations as S3 URIs
s3://bucket-name/path/to/key
• S3 Capacity can be considered unlimited
• Permissions for a bucket can be specified as IAM Policies for operations, Bucket Policies for the access to the bucket
and ACLs for every object inside the bucket
• S3 buckets are always outside the VPC, so bucket policies are required
• Other types of AWS Storage
• EBS Elastic Block Secure (performance)
• Glacier Storage for archiving and backup
• EFS Elastic File System (scalability)
https://aws.amazon.com/s3
22
EC2
• An EC2 Instance can run Linux, Windows and Mac OS operating systems
• An Amazon Machine Image AMI is a template that contains a software configuration (for example, an operating
system, an application server, and applications)
• From an AMI, you launch an Instance, which is a copy of the AMI running as a virtual server in the cloud
• Several Instance Types to run your instances
• General Purpose: Mac, T4, T3, T2, M6, M5, M4, A1
• Compute Optimized: C6, C5, C4
• Memory Optimized: R6, R5, R4, X1, z1
• Accelerated Computing: P4, P3, P2, G4, G3, F1
• Storage Optimized: i3, i2, D2, D3, H1
• Virtualization or Bare Metal instances are available
• For every new instance at least one SSH key pair needs to be set up
• An instance can be stopped (reusable) or terminated (deleted)
https://aws.amazon.com/ec2
23
RDS
• Managed relational database service, allowing you to deploy and scale databases more easily
• As when using EC2, there are several Instance Types to run your instances
• Common deployment scenario includes 1 VPC with 2 Subnets
https://aws.amazon.com/rds
24
Lambda
https://aws.amazon.com/lambda
• Serverless compute service that runs your code in response to events and automatically manages the underlying
compute resources for you
• The code you run on AWS Lambda is called a Lambda function
• After you upload your code to AWS Lambda, you can associate your function with specific AWS resources
• Lambda function code can be written in Python, .NET, Ruby, Java, Go and Node.js
https://github.com/srcecde/aws-lambda-cheatsheet
SERVERLESS
25
API Gateway
• Scalable, secured front-end for service APIs
• Common scenario working with Lambda and EC2 instances to provide serverless deployment
• This service only supports HTTPs endpoints
• API Types
• RESTful APIs
• REST APIs
• HTTP APIs: RESTful APIs with lower latency and lower cost than REST APIs
• WebSocket APIs
• Bidirectional
• Client send messages to a service
• Service can independently send messages to clients
https://aws.amazon.com/api-gateway
MICROSERVICES
26
Route 53
• Supports all the standard DNS record types
• Limitations
• It’s not available over VPC
• It doesn’t provide forwarding options for domains used on premise
• It doesn’t support private zone transfer
• example.com >> cloud.example.com
• Supported services
• EC2 Instance
• S3 Bucket
• Load Balancer
• CloudFront
• API Gateway
https://aws.amazon.com/route53
HYBRID CLOUD
27
Amplify
• Set of tools and services used to build full stack applications:
• Configure backends
• Connect frontend applications to backends
• Deploy static web applications
• Support for popular web frameworks: JavaScript, React, Angular, Vue, Next.js, Android, iOS, Ionic
https://aws.amazon.com/amplify
28
Cloud Formation
• Manage sets of resources from AWS Services grouped in Stacks
• Stacks are defined in JSON or YAML
• Provides a Cloud Formation Designer interface
https://aws.amazon.com/cloudformation
INFRASTRUCTURE AS CODE
29
Containers
• Docker and the containerization changed deployment methods
• AMIs and boot scripts are replaced by Docker Images
• Amazon ECR (Elastic Container Registry) provides a private Docker Image Registry
• Amazon ECS (EC2 Container Service) allows to manager cluster of services deployed via Docker.
• However currently many users are using raw EC2 Instances to deploy Docker Images
• Amazon EKS (Elastic Kubernetes Service) provides managed Kubernetes Cluster to deploy K8s services and Pods
using EC2 Instances
https://aws.amazon.com/containers
CONTAINERIZATION
30
30
Hands on
31
Hands on
• Build a Basic Web Application
• Step by step tutorial
• Covering Amplify, Lambda, API Gateway, IAM and DynamoDB
• Cloud Formation
• Analyzing a real use case
• Scaling up
• Additional use cases
32
32
Sample Use Case
Build a Basic Web Application
33
Sample use case: Build a Basic Web Application
Sample available in AWS web site:
https://aws.amazon.com/getting-started/hands-on/build-web-app-s3-lambda-api-gateway-dynamodb/
34
Sample use case: Create Web App
Deploy static resources for your web application using the AWS Amplify Console
Create a simple HTML file named index.html and compress it with ZIP (index.html.zip)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>
Hello World
</body>
</html>
Access to Amplify Console in Ireland zone:
https://eu-west-1.console.aws.amazon.com/amplify/home?region=eu-west-1#/
Deploy the web application without Git provider.
35
Sample use case: Build a Serverless Function
Create a Lambda function from scratch using the AWS Console in JavaScript
Access to Lambda Console in Ireland zone and Create Function HelloWorldFunction
https://eu-west-1.console.aws.amazon.com/lambda/home?region=eu-west-1#/functions
Replace default index.js code with the following one:
// Define handler function, the entry point to our code for the Lambda service
// We receive the object that triggers the function as a parameter
exports.handler = async (event) => {
// Extract values from event and format as strings
let name = JSON.stringify(`Hello from Lambda, ${event.firstName} ${event.lastName}`);
// Create a JSON object with our response and store it in a constant
const response = {
statusCode: 200,
body: name
};
// Return the response constant
return response;
};
36
Sample use case: Build a Serverless Function
Test the Lambda function using the AWS Console in JavaScript
Use Test tab to create a new Event named HelloWorldTestEvent with the following body:
{
"firstName": "Ada",
"lastName": "Lovelace"
}
Click Invoke button to execute the Lambda function
37
Sample use case: Link a Serverless Function to App
Deploy a serverless function using the AWS Console
Access to API Gateway Console in Ireland zone and Create API HelloWorldAPI
https://eu-west-1.console.aws.amazon.com/apigateway/main/apis?region=eu-west-1
Create a POST method associated to the Lambda function
Actions
• Enable CORS
• Deploy API in stage dev
38
Sample use case: Link a Serverless Function to App
Deploy a serverless function using the AWS Console
Test the REST API in Resources option using a default Request Body
39
Sample use case: Create a Data Table
Create a DynamoDB table using the AWS Console
Access to DynamoDB Console in Ireland zone and Create table HelloWorldDatabase with Primary key ID
https://eu-west-1.console.aws.amazon.com/dynamodb/home?region=eu-west-1#
Access to Lambda Console in Ireland zone and Add IAM Policy
https://eu-west-1.console.aws.amazon.com/lambda/home?region=eu-west-1#/functions
40
Sample use case: Create a Data Table
Access to Lambda Console in Ireland zone and Modify Lambda function
https://eu-west-1.console.aws.amazon.com/lambda/home?region=eu-west-1#/functions
const AWS = require('aws-sdk');
let dynamodb = new AWS.DynamoDB.DocumentClient();
let date = new Date();
let now = date.toISOString();
exports.handler = async (event) => {
let name = JSON.stringify(`Hello from Lambda, ${event.firstName} ${event.lastName}`);
let params = {
TableName:'HelloWorldDatabase',
Item: {
'ID': name,
'LatestGreetingTime': now
}
};
await dynamodb.put(params).promise();
const response = {
statusCode: 200,
body: name
};
// Return the response constant
return response;
};
41
Sample use case: Create a Data Table
Create a DynamoDB table using the AWS Console
Invoke Test again from Lambda Console
Verify the new row has been inserted from DynamoDB Console
42
Sample use case: Update Web App
Deploy static resources for your web application using the AWS Amplify Console
Modify the HTML file named index.html and compress it with ZIP (index.html.zip)
fetch("https://v75gajngfa.execute-api.eu-west-1.amazonaws.com/dev/", requestOptions)
Access to Amplify Console in Ireland zone:
https://eu-west-1.console.aws.amazon.com/amplify/home?region=eu-west-1#/
Update deployment and test it:
https://aws.amazon.com/getting-started/hands-on/build-web-app-s3-lambda-api-gateway-dynamodb/module-five/?e=gs2020&p=build-a-web-app-intro
43
43
Cloud Formation
Analyzing a Real Use Case
44
Cloud Formation Template
Performance test environment for Alfresco
45
45
Additional Use Cases
46
Additional Use Cases
47
47
Cost Calculator
48
AWS Pricing Calculator
https://calculator.aws/#/
49
49
Training & Certifications
50
Training & Certifications
Certifications
Training for certifications
Training is offered by AWS themselves (mainly instructor-led and on-site) and various third-party companies (usually as video-
based training) such as A Cloud Guru, CloudAcademy and Linux Academy.
51
References
Official AWS Documentation
https://docs.aws.amazon.com
Short Open Guide for AWS
https://github.com/open-guides/og-aws
Source Code
https://github.com/aws
https://github.com/awslabs
https://github.com/aws-samples
Book ”Amazon Web Services for Dummies”
https://www.amazon.com/Amazon-Services-Dummies-Bernard-Golden/dp/1118571835
Book “Effective DevOps with AWS”
https://www.amazon.com/Effective-DevOps-AWS-incredible-productivity/dp/1786466813/
Thank you!
XXI NEOCOM
Organizer:
1 von 52

Recomendados

AWS TEchnical Essentials Workshop von
AWS TEchnical Essentials Workshop AWS TEchnical Essentials Workshop
AWS TEchnical Essentials Workshop Muhammad Usman Khan
1.5K views60 Folien
Azure storage von
Azure storageAzure storage
Azure storageAdam Skibicki
1.7K views40 Folien
Intro to Amazon ECS von
Intro to Amazon ECSIntro to Amazon ECS
Intro to Amazon ECSAmazon Web Services
4.5K views32 Folien
Introduction to Amazon Athena von
Introduction to Amazon AthenaIntroduction to Amazon Athena
Introduction to Amazon AthenaAmazon Web Services
5K views37 Folien
Azure App Service Deep Dive von
Azure App Service Deep DiveAzure App Service Deep Dive
Azure App Service Deep DiveAzure Riyadh User Group
1.8K views54 Folien
Azure Arc Overview from Microsoft von
Azure Arc Overview from MicrosoftAzure Arc Overview from Microsoft
Azure Arc Overview from MicrosoftDavid J Rosenthal
3.5K views78 Folien

Más contenido relacionado

Was ist angesagt?

A quick introduction to AKS von
A quick introduction to AKSA quick introduction to AKS
A quick introduction to AKSAlessandro Melchiori
423 views59 Folien
Azure 101 von
Azure 101Azure 101
Azure 101Korry Lavoie
12.4K views282 Folien
Creating AWS infrastructure using Terraform von
Creating AWS infrastructure using TerraformCreating AWS infrastructure using Terraform
Creating AWS infrastructure using TerraformKnoldus Inc.
278 views13 Folien
Amazon API Gateway von
Amazon API GatewayAmazon API Gateway
Amazon API GatewayMark Bate
1.4K views32 Folien
Introduction to Amazon Athena von
Introduction to Amazon AthenaIntroduction to Amazon Athena
Introduction to Amazon AthenaAmazon Web Services
2.1K views46 Folien
Azure App Service von
Azure App ServiceAzure App Service
Azure App ServiceBizTalk360
4.7K views38 Folien

Was ist angesagt?(20)

Creating AWS infrastructure using Terraform von Knoldus Inc.
Creating AWS infrastructure using TerraformCreating AWS infrastructure using Terraform
Creating AWS infrastructure using Terraform
Knoldus Inc.278 views
Amazon API Gateway von Mark Bate
Amazon API GatewayAmazon API Gateway
Amazon API Gateway
Mark Bate1.4K views
Azure App Service von BizTalk360
Azure App ServiceAzure App Service
Azure App Service
BizTalk3604.7K views
Azure kubernetes service (aks) von Akash Agrawal
Azure kubernetes service (aks)Azure kubernetes service (aks)
Azure kubernetes service (aks)
Akash Agrawal4.1K views
Monitor Azure HDInsight with Azure Log Analytics von Ashish Thapliyal
Monitor Azure HDInsight with Azure Log AnalyticsMonitor Azure HDInsight with Azure Log Analytics
Monitor Azure HDInsight with Azure Log Analytics
Ashish Thapliyal1.2K views
Aws Architecture Fundamentals von 2nd Watch
Aws Architecture FundamentalsAws Architecture Fundamentals
Aws Architecture Fundamentals
2nd Watch4.5K views
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기 von NHN FORWARD
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
NHN FORWARD829 views
AWS S3 Tutorial For Beginners | Edureka von Edureka!
AWS S3 Tutorial For Beginners | EdurekaAWS S3 Tutorial For Beginners | Edureka
AWS S3 Tutorial For Beginners | Edureka
Edureka!608 views
Azure DDoS Protection Standard von arnaudlh
Azure DDoS Protection StandardAzure DDoS Protection Standard
Azure DDoS Protection Standard
arnaudlh4.4K views
Introduction to Azure IaaS von Robert Crane
Introduction to Azure IaaSIntroduction to Azure IaaS
Introduction to Azure IaaS
Robert Crane1.4K views

Similar a Introduction to AWS

Deep Dive on AWS Lambda - January 2017 AWS Online Tech Talks von
Deep Dive on AWS Lambda - January 2017 AWS Online Tech TalksDeep Dive on AWS Lambda - January 2017 AWS Online Tech Talks
Deep Dive on AWS Lambda - January 2017 AWS Online Tech TalksAmazon Web Services
5.9K views30 Folien
Getting Started with AWS Lambda and the Serverless Cloud von
Getting Started with AWS Lambda and the Serverless CloudGetting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless CloudAmazon Web Services
1.1K views43 Folien
AWS Lambda and Serverless Cloud von
AWS Lambda and Serverless CloudAWS Lambda and Serverless Cloud
AWS Lambda and Serverless CloudAmazon Web Services
7.6K views39 Folien
Travel hackathon von
Travel hackathonTravel hackathon
Travel hackathonVladimir Simek
225 views24 Folien
AWS Fundamentals @Back2School by CloudZone von
AWS Fundamentals @Back2School by CloudZoneAWS Fundamentals @Back2School by CloudZone
AWS Fundamentals @Back2School by CloudZoneIdan Tohami
11.2K views225 Folien
Getting Started with Windows Workloads on Amazon EC2 von
Getting Started with Windows Workloads on Amazon EC2Getting Started with Windows Workloads on Amazon EC2
Getting Started with Windows Workloads on Amazon EC2Amazon Web Services
623 views38 Folien

Similar a Introduction to AWS(20)

Deep Dive on AWS Lambda - January 2017 AWS Online Tech Talks von Amazon Web Services
Deep Dive on AWS Lambda - January 2017 AWS Online Tech TalksDeep Dive on AWS Lambda - January 2017 AWS Online Tech Talks
Deep Dive on AWS Lambda - January 2017 AWS Online Tech Talks
Amazon Web Services5.9K views
Getting Started with AWS Lambda and the Serverless Cloud von Amazon Web Services
Getting Started with AWS Lambda and the Serverless CloudGetting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless Cloud
Amazon Web Services1.1K views
AWS Fundamentals @Back2School by CloudZone von Idan Tohami
AWS Fundamentals @Back2School by CloudZoneAWS Fundamentals @Back2School by CloudZone
AWS Fundamentals @Back2School by CloudZone
Idan Tohami11.2K views
Getting Started with Windows Workloads on Amazon EC2 von Amazon Web Services
Getting Started with Windows Workloads on Amazon EC2Getting Started with Windows Workloads on Amazon EC2
Getting Started with Windows Workloads on Amazon EC2
SAP on Amazon web services von cloudnonstop
SAP on Amazon web servicesSAP on Amazon web services
SAP on Amazon web services
cloudnonstop616 views
Sameer Mitter | What are Amazon Web Services (AWS) von Sameer Mitter
Sameer Mitter | What are Amazon Web Services (AWS)Sameer Mitter | What are Amazon Web Services (AWS)
Sameer Mitter | What are Amazon Web Services (AWS)
Sameer Mitter9 views
Getting Started with AWS Lambda and the Serverless Cloud von Amazon Web Services
Getting Started with AWS Lambda and the Serverless CloudGetting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless Cloud
Amazon Web Services2.8K views
Eliminate repetitive work by using AWS Serverless Application Repository von Igor Soroka
Eliminate repetitive work by using AWS Serverless Application RepositoryEliminate repetitive work by using AWS Serverless Application Repository
Eliminate repetitive work by using AWS Serverless Application Repository
Igor Soroka114 views
Architetture Serverless: concentrarsi sull'idea, non sull'infrastruttura von Amazon Web Services
Architetture Serverless: concentrarsi sull'idea, non sull'infrastrutturaArchitetture Serverless: concentrarsi sull'idea, non sull'infrastruttura
Architetture Serverless: concentrarsi sull'idea, non sull'infrastruttura
Amazon Web Services1.8K views
From Serverless to InterCloud von Wayne Scarano
From Serverless to InterCloudFrom Serverless to InterCloud
From Serverless to InterCloud
Wayne Scarano434 views
Getting Started with AWS Lambda and the Serverless Cloud von Amazon Web Services
Getting Started with AWS Lambda and the Serverless CloudGetting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless Cloud von Amazon Web Services
Getting Started with AWS Lambda and the Serverless CloudGetting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless Cloud
Amazon Web Services1.5K views
Getting Started with AWS Lambda and the Serverless Cloud von Amazon Web Services
Getting Started with AWS Lambda and the Serverless CloudGetting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless Cloud
Amazon Web Services4.8K views
Developing serverless applications with .NET on AWS von Woody Pewitt
Developing serverless applications with .NET on AWSDeveloping serverless applications with .NET on AWS
Developing serverless applications with .NET on AWS
Woody Pewitt169 views
AWS Architecture Fundamentals - Houston von Nicole Maus
AWS Architecture Fundamentals - HoustonAWS Architecture Fundamentals - Houston
AWS Architecture Fundamentals - Houston
Nicole Maus584 views

Más de Angel Borroy López

La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1 von
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1Angel Borroy López
5 views22 Folien
Docker Init with Templates for Alfresco von
Docker Init with Templates for AlfrescoDocker Init with Templates for Alfresco
Docker Init with Templates for AlfrescoAngel Borroy López
9 views24 Folien
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise von
How to migrate from Alfresco Search Services to Alfresco SearchEnterpriseHow to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterpriseAngel Borroy López
230 views24 Folien
CSP: Evolución de servicios de código abierto en un mundo Cloud Native von
CSP: Evolución de servicios de código abierto en un mundo Cloud NativeCSP: Evolución de servicios de código abierto en un mundo Cloud Native
CSP: Evolución de servicios de código abierto en un mundo Cloud NativeAngel Borroy López
53 views27 Folien
Alfresco Embedded Activiti Engine von
Alfresco Embedded Activiti EngineAlfresco Embedded Activiti Engine
Alfresco Embedded Activiti EngineAngel Borroy López
40 views10 Folien
Collaborative Editing Tools for Alfresco von
Collaborative Editing Tools for AlfrescoCollaborative Editing Tools for Alfresco
Collaborative Editing Tools for AlfrescoAngel Borroy López
143 views38 Folien

Más de Angel Borroy López(20)

La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1 von Angel Borroy López
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise von Angel Borroy López
How to migrate from Alfresco Search Services to Alfresco SearchEnterpriseHow to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
CSP: Evolución de servicios de código abierto en un mundo Cloud Native von Angel Borroy López
CSP: Evolución de servicios de código abierto en un mundo Cloud NativeCSP: Evolución de servicios de código abierto en un mundo Cloud Native
CSP: Evolución de servicios de código abierto en un mundo Cloud Native
Docker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza von Angel Borroy López
Docker 101 - Zaragoza Docker Meetup - Universidad de ZaragozaDocker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Docker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
10 Tips Every New Developer in Alfresco Should Know von Angel Borroy López
10 Tips Every New Developer in Alfresco Should Know10 Tips Every New Developer in Alfresco Should Know
10 Tips Every New Developer in Alfresco Should Know
Docker community leader application angel borroy - 20180801 von Angel Borroy López
Docker community leader application   angel borroy - 20180801Docker community leader application   angel borroy - 20180801
Docker community leader application angel borroy - 20180801

Último

360 graden fabriek von
360 graden fabriek360 graden fabriek
360 graden fabriekinfo33492
37 views25 Folien
WebAssembly von
WebAssemblyWebAssembly
WebAssemblyJens Siebert
37 views18 Folien
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra... von
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra....NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...Marc Müller
38 views62 Folien
MariaDB stored procedures and why they should be improved von
MariaDB stored procedures and why they should be improvedMariaDB stored procedures and why they should be improved
MariaDB stored procedures and why they should be improvedFederico Razzoli
8 views32 Folien
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme... von
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...Deltares
5 views28 Folien
Programming Field von
Programming FieldProgramming Field
Programming Fieldthehardtechnology
5 views9 Folien

Último(20)

360 graden fabriek von info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info3349237 views
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra... von Marc Müller
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra....NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
.NET Developer Conference 2023 - .NET Microservices mit Dapr – zu viel Abstra...
Marc Müller38 views
MariaDB stored procedures and why they should be improved von Federico Razzoli
MariaDB stored procedures and why they should be improvedMariaDB stored procedures and why they should be improved
MariaDB stored procedures and why they should be improved
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme... von Deltares
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...
Deltares5 views
A first look at MariaDB 11.x features and ideas on how to use them von Federico Razzoli
A first look at MariaDB 11.x features and ideas on how to use themA first look at MariaDB 11.x features and ideas on how to use them
A first look at MariaDB 11.x features and ideas on how to use them
Federico Razzoli45 views
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with... von sparkfabrik
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
sparkfabrik5 views
DSD-INT 2023 Exploring flash flood hazard reduction in arid regions using a h... von Deltares
DSD-INT 2023 Exploring flash flood hazard reduction in arid regions using a h...DSD-INT 2023 Exploring flash flood hazard reduction in arid regions using a h...
DSD-INT 2023 Exploring flash flood hazard reduction in arid regions using a h...
Deltares5 views
FIMA 2023 Neo4j & FS - Entity Resolution.pptx von Neo4j
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptx
Neo4j6 views
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium... von Lisi Hocke
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Lisi Hocke28 views
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t... von Deltares
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...
Deltares9 views
Tridens DevOps von Tridens
Tridens DevOpsTridens DevOps
Tridens DevOps
Tridens9 views
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols von Deltares
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - DolsDSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
DSD-INT 2023 European Digital Twin Ocean and Delft3D FM - Dols
Deltares7 views

Introduction to AWS

  • 1. Angel Borroy 10th March 2021 AWS Introduction XXI NEOCOM Organizer:
  • 2. 2 2 AWS Introduction What is AWS Alternatives Open Source Core Concepts Hands on Cost Calculator Training & Certifications XXI NEOCOM
  • 3. 3 Speaker :: Angel Borroy • Computer Engineer by the University of Zaragoza (EINA, 1999) • Working as Senior Software Engineer for Alfresco in Hyland • 20+ years developing software • Open-Source enthusiast!
  • 5. 5 What is AWS Amazon Web Services (AWS) provides cloud-based products with a pay-as-you-go pricing. A Cloud Services Platform, like AWS, owns and maintains the network-connected hardware required for the cloud products while the customer provision and use required resources via an application. Types of Cloud Computing Cloud Computing Models • IaaS • PaaS • SaaS Cloud Computing Deployment Models • Cloud • Hybrid • On-premises
  • 8. 8 Using AWS • Web Console using a browser: https://aws.amazon.com • Command line client (AWS Command Line Interface): https://aws.amazon.com/cli/ • SDKs: JavaScript, Python, PHP, .NET, Ruby, Java, Go, Node.js, C++ https://aws.amazon.com/getting-started/tools- sdks/ AWS Service Endpoints (REST API) protocol://service-code.region-code.amazonaws.com • protocol: http or https • service-code: ec2, s3, vpc, lambda, route53, rds, apigateway, amplify… • region-code: us-east-1, ap-south-1, eu-west-1… >> Europe (Ireland) is eu-west-1, so to use EC2 service: https://ec2.eu-west-1.amazonaws.com
  • 9. 9 Amazon Resource Names (ARN) Amazon Resource Names (ARNs) uniquely identify AWS resources. Used to specify a resource unambiguously across all of AWS, such as in IAM policies, Amazon Relational Database Service (Amazon RDS) tags, and API calls. Format arn:partition:service:region:account-id:resource-id • partition: aws, aws-cn or aws-us-gov (group of AWS Regions) • service: ec2, s3, vpc, lambda, route53, rds, apigateway, amplify… • region: us-east-1, ap-south-1, eu-west-1… • account-id: 123456789012 (ID of the AWS account owner of the resource) • resource-id: instance/i-1234567890abcdef0 (ID of the resource) >> Europe (Ireland) is eu-west-1, so the ARN of an EC2 instance: arn:aws:ec2:eu-west-1:123456789012:instance/i-1234567890abcdef0
  • 11. 11 Alternatives Leaders Microsoft Azure: https://azure.microsoft.com/en-us/ Google Cloud: https://cloud.google.com Other Alibaba Cloud: https://eu.alibabacloud.com Oracle Cloud: https://www.oracle.com/cloud/ IBM Cloud: https://www.ibm.com/cloud Tencent Cloud: https://intl.cloud.tencent.com
  • 12. 12 Free Tier AWS Free Tier • 750 hours of Linux or Windows micro instances • 1GB of memory, 15GB of bandwidth, a load balancer, and access to a database, caching, and other tools • Free resources will renew for 12 months Microsoft Azure Free Tier • 750 hours of Linux or Windows machines • Ample storage, SQL database, 15GB of bandwidth • Several other popular services are free for at least 12 months, and new customers also receive a $200 credit to try any other service for 30 days Google Cloud Platform Free Tier • One month of a micro instance • 30GB of storage, plus a 12-month free trial with $300 credit to try any service • Limited access to many common tools is provided for free, always
  • 14. 14 Open Source at AWS https://github.com/aws
  • 16. 16 Amazon forked Elasticsearch and Kibana! Amazon Why Open Distro for Elasticsearch • Elasticsearch development has shifted to non-open source licenses • Open Distro for Elasticsearch provides an open source, community- driven distribution • We are maintaining forks based on Elasticsearch and Kibana 7.10 while continuing to build functionality into plugins and tools Elastic Why we had to change Elastic licensing • There is only one Elastic Cloud • Software from the source • Support from the creators • Engaged Community • Exclusive capabilities “The Amazon Elasticsearch Service offers a subset of the functionality, choice and support capabilities of Elastic. Rest easy knowing Elastic, the company behind Elasticsearch, is backing your mission-critical deployments with our experts, solutions, support and roadmap”
  • 18. 18 Core Concepts • IAM Identity and Access Management: Manage accounts and permissions • VPC Virtual Private Cloud: Networking layer with Security Groups • S3 Simple Storage Service: Cloud storage placed into Buckets • EC2 Elastic Compute Cloud: Named as instance, is a virtual private server • AMI Amazon Machine Image: Immutable image used to launch a preconfigured EC2 instance • Elastic IPs: Assigned IP addresses • Load Balancers: Single point of contact for clients • RDS Relational Database Service: Managed service (PostgreSQL, MariaDB, MySQL, Oracle, SQLServer and Aurora) • Lambda allows to define functions invoked via triggers (SNS notification, API invocation…) • API Gateway allows to create RESTful APIs or WEBSOCKET APIs • Route 53 is AWS DNS Service, and it allows to register domain names • Amplify is a set of tools to connect a backend with the UI components • CloudFormation provides templatized configuration of collections of AWS Resources • Containers are supported by EC2, ECS and EKS services
  • 19. 19 IAM • IAM identities • Users: people or services using AWS • Groups: sets of users • Roles: permissions assigned to AWS Service instances • IAM permissions are named policies • Identity-based • Resource-based • Permissions boundaries • Organizations Service Control Policies (SCPs) • Access Control Lists (ACLs) • Session policies • IAM authentication • Passwords • Access keys • Multi-factor authentication (MFA) Policy https://aws.amazon.com/iam
  • 20. 20 VPC • For basic AWS use, one default VPC may be enough • Security groups • Access policy is “deny by default” • Open selected ports (SSH 22, HTTP 80, HTTPs 443) using CIDRs (Classless Inter-Domain Routing) • Consider using a Load Balancer • Other components • Subnet: segment of VPC IP address range • Internet Gateway: connection to public Internet • NAT Gateway: NAT service in a private subnet to access Internet https://aws.amazon.com/vpc
  • 21. 21 S3 • Despite EC2 Instances mount local volumes for storage (EBS or EFS), S3 is the service for Cloud Storage • Objects are placed into named buckets stored with names called keys. The main content is the value. • It’s a common practice to write S3 locations as S3 URIs s3://bucket-name/path/to/key • S3 Capacity can be considered unlimited • Permissions for a bucket can be specified as IAM Policies for operations, Bucket Policies for the access to the bucket and ACLs for every object inside the bucket • S3 buckets are always outside the VPC, so bucket policies are required • Other types of AWS Storage • EBS Elastic Block Secure (performance) • Glacier Storage for archiving and backup • EFS Elastic File System (scalability) https://aws.amazon.com/s3
  • 22. 22 EC2 • An EC2 Instance can run Linux, Windows and Mac OS operating systems • An Amazon Machine Image AMI is a template that contains a software configuration (for example, an operating system, an application server, and applications) • From an AMI, you launch an Instance, which is a copy of the AMI running as a virtual server in the cloud • Several Instance Types to run your instances • General Purpose: Mac, T4, T3, T2, M6, M5, M4, A1 • Compute Optimized: C6, C5, C4 • Memory Optimized: R6, R5, R4, X1, z1 • Accelerated Computing: P4, P3, P2, G4, G3, F1 • Storage Optimized: i3, i2, D2, D3, H1 • Virtualization or Bare Metal instances are available • For every new instance at least one SSH key pair needs to be set up • An instance can be stopped (reusable) or terminated (deleted) https://aws.amazon.com/ec2
  • 23. 23 RDS • Managed relational database service, allowing you to deploy and scale databases more easily • As when using EC2, there are several Instance Types to run your instances • Common deployment scenario includes 1 VPC with 2 Subnets https://aws.amazon.com/rds
  • 24. 24 Lambda https://aws.amazon.com/lambda • Serverless compute service that runs your code in response to events and automatically manages the underlying compute resources for you • The code you run on AWS Lambda is called a Lambda function • After you upload your code to AWS Lambda, you can associate your function with specific AWS resources • Lambda function code can be written in Python, .NET, Ruby, Java, Go and Node.js https://github.com/srcecde/aws-lambda-cheatsheet SERVERLESS
  • 25. 25 API Gateway • Scalable, secured front-end for service APIs • Common scenario working with Lambda and EC2 instances to provide serverless deployment • This service only supports HTTPs endpoints • API Types • RESTful APIs • REST APIs • HTTP APIs: RESTful APIs with lower latency and lower cost than REST APIs • WebSocket APIs • Bidirectional • Client send messages to a service • Service can independently send messages to clients https://aws.amazon.com/api-gateway MICROSERVICES
  • 26. 26 Route 53 • Supports all the standard DNS record types • Limitations • It’s not available over VPC • It doesn’t provide forwarding options for domains used on premise • It doesn’t support private zone transfer • example.com >> cloud.example.com • Supported services • EC2 Instance • S3 Bucket • Load Balancer • CloudFront • API Gateway https://aws.amazon.com/route53 HYBRID CLOUD
  • 27. 27 Amplify • Set of tools and services used to build full stack applications: • Configure backends • Connect frontend applications to backends • Deploy static web applications • Support for popular web frameworks: JavaScript, React, Angular, Vue, Next.js, Android, iOS, Ionic https://aws.amazon.com/amplify
  • 28. 28 Cloud Formation • Manage sets of resources from AWS Services grouped in Stacks • Stacks are defined in JSON or YAML • Provides a Cloud Formation Designer interface https://aws.amazon.com/cloudformation INFRASTRUCTURE AS CODE
  • 29. 29 Containers • Docker and the containerization changed deployment methods • AMIs and boot scripts are replaced by Docker Images • Amazon ECR (Elastic Container Registry) provides a private Docker Image Registry • Amazon ECS (EC2 Container Service) allows to manager cluster of services deployed via Docker. • However currently many users are using raw EC2 Instances to deploy Docker Images • Amazon EKS (Elastic Kubernetes Service) provides managed Kubernetes Cluster to deploy K8s services and Pods using EC2 Instances https://aws.amazon.com/containers CONTAINERIZATION
  • 31. 31 Hands on • Build a Basic Web Application • Step by step tutorial • Covering Amplify, Lambda, API Gateway, IAM and DynamoDB • Cloud Formation • Analyzing a real use case • Scaling up • Additional use cases
  • 32. 32 32 Sample Use Case Build a Basic Web Application
  • 33. 33 Sample use case: Build a Basic Web Application Sample available in AWS web site: https://aws.amazon.com/getting-started/hands-on/build-web-app-s3-lambda-api-gateway-dynamodb/
  • 34. 34 Sample use case: Create Web App Deploy static resources for your web application using the AWS Amplify Console Create a simple HTML file named index.html and compress it with ZIP (index.html.zip) <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Hello World</title> </head> <body> Hello World </body> </html> Access to Amplify Console in Ireland zone: https://eu-west-1.console.aws.amazon.com/amplify/home?region=eu-west-1#/ Deploy the web application without Git provider.
  • 35. 35 Sample use case: Build a Serverless Function Create a Lambda function from scratch using the AWS Console in JavaScript Access to Lambda Console in Ireland zone and Create Function HelloWorldFunction https://eu-west-1.console.aws.amazon.com/lambda/home?region=eu-west-1#/functions Replace default index.js code with the following one: // Define handler function, the entry point to our code for the Lambda service // We receive the object that triggers the function as a parameter exports.handler = async (event) => { // Extract values from event and format as strings let name = JSON.stringify(`Hello from Lambda, ${event.firstName} ${event.lastName}`); // Create a JSON object with our response and store it in a constant const response = { statusCode: 200, body: name }; // Return the response constant return response; };
  • 36. 36 Sample use case: Build a Serverless Function Test the Lambda function using the AWS Console in JavaScript Use Test tab to create a new Event named HelloWorldTestEvent with the following body: { "firstName": "Ada", "lastName": "Lovelace" } Click Invoke button to execute the Lambda function
  • 37. 37 Sample use case: Link a Serverless Function to App Deploy a serverless function using the AWS Console Access to API Gateway Console in Ireland zone and Create API HelloWorldAPI https://eu-west-1.console.aws.amazon.com/apigateway/main/apis?region=eu-west-1 Create a POST method associated to the Lambda function Actions • Enable CORS • Deploy API in stage dev
  • 38. 38 Sample use case: Link a Serverless Function to App Deploy a serverless function using the AWS Console Test the REST API in Resources option using a default Request Body
  • 39. 39 Sample use case: Create a Data Table Create a DynamoDB table using the AWS Console Access to DynamoDB Console in Ireland zone and Create table HelloWorldDatabase with Primary key ID https://eu-west-1.console.aws.amazon.com/dynamodb/home?region=eu-west-1# Access to Lambda Console in Ireland zone and Add IAM Policy https://eu-west-1.console.aws.amazon.com/lambda/home?region=eu-west-1#/functions
  • 40. 40 Sample use case: Create a Data Table Access to Lambda Console in Ireland zone and Modify Lambda function https://eu-west-1.console.aws.amazon.com/lambda/home?region=eu-west-1#/functions const AWS = require('aws-sdk'); let dynamodb = new AWS.DynamoDB.DocumentClient(); let date = new Date(); let now = date.toISOString(); exports.handler = async (event) => { let name = JSON.stringify(`Hello from Lambda, ${event.firstName} ${event.lastName}`); let params = { TableName:'HelloWorldDatabase', Item: { 'ID': name, 'LatestGreetingTime': now } }; await dynamodb.put(params).promise(); const response = { statusCode: 200, body: name }; // Return the response constant return response; };
  • 41. 41 Sample use case: Create a Data Table Create a DynamoDB table using the AWS Console Invoke Test again from Lambda Console Verify the new row has been inserted from DynamoDB Console
  • 42. 42 Sample use case: Update Web App Deploy static resources for your web application using the AWS Amplify Console Modify the HTML file named index.html and compress it with ZIP (index.html.zip) fetch("https://v75gajngfa.execute-api.eu-west-1.amazonaws.com/dev/", requestOptions) Access to Amplify Console in Ireland zone: https://eu-west-1.console.aws.amazon.com/amplify/home?region=eu-west-1#/ Update deployment and test it: https://aws.amazon.com/getting-started/hands-on/build-web-app-s3-lambda-api-gateway-dynamodb/module-five/?e=gs2020&p=build-a-web-app-intro
  • 44. 44 Cloud Formation Template Performance test environment for Alfresco
  • 50. 50 Training & Certifications Certifications Training for certifications Training is offered by AWS themselves (mainly instructor-led and on-site) and various third-party companies (usually as video- based training) such as A Cloud Guru, CloudAcademy and Linux Academy.
  • 51. 51 References Official AWS Documentation https://docs.aws.amazon.com Short Open Guide for AWS https://github.com/open-guides/og-aws Source Code https://github.com/aws https://github.com/awslabs https://github.com/aws-samples Book ”Amazon Web Services for Dummies” https://www.amazon.com/Amazon-Services-Dummies-Bernard-Golden/dp/1118571835 Book “Effective DevOps with AWS” https://www.amazon.com/Effective-DevOps-AWS-incredible-productivity/dp/1786466813/