- Free tier AWS account
- Laptop
- Basic knowledge of JavaScript
- Basic concepts of Cloud Computing
- Introduction to AWS concepts (Regions, Availability Zones)
- AWS Account and how to use it
- Sample app architecture and deployment strategy
- Identity & Access Management
- Computing - AWS Lambda functions and triggers (SQS, DynamoDB Streams, API Gateway)
- Queueing services - SQS, Kinesis
- Databases - AWS DynamoDB
- Graphql introduction --> Intro to Graphql Workshop
- Storage - S3 Bucket
- Monitoring – Cloud watch
- Caching - Cloud Front
- Edge location computing - Lambda@Edge
- Networking, VPC, Subnets
- Serverless as a concept vs Serverless as a framework
- Serverless framework
- Running locally
- Microservices architecture
- Cost analysis
Using CryptoCompare API we are going to fetch Crypto currencies data periodically and keep it providing historical data to client over GraphQL API.
API contains Crypto currency images that we are going to serve from S3 bucket though CloudFront and Lambda@Edge.
Client will be React application with Apollo client.
- AWS Lambda
- SQS
- DynamoDB
- API Gateway
- IAM
- CloudFront
- CloudWatch
- CloudFormation
- S3 Bucket
- Lambda@Edge
- AWS SSM
Most of these will be managed through Serverless framework.
To fetch data from CryptoCompare API, create an account and obtain API key.
Once API key is obtained, put it to AWS SSM to store it securely
aws ssm put-parameter --name API_KEY --value apikeyhere --type SecureString --key-id alias/aws/ssm --region us-east-1 --overwrite
You will fetch it in the app by requesting it from AWS SSM Parameter Store
const ssm = new SSM();
const req: GetParametersRequest = {
Names: ['API_KEY_{your-stage}'],
WithDecryption: true,
};
const response = await ssm.getParameters(req).promise();
const apiKey = response.Parameters[0].Value;