EMR
- AWS EMR — AWS Elastic MapReduce, Hadoop based big data analytics.
- AWS EMR is preferred for processing log files.
- EMR can use spot instances as underlying nodes.
- We can access the underlying EC2 instances in AWS EMR cluster.
DynamoDB
AWS DynamoDB is durable, ACID compliant, can go through multiple schema changes, and changes to the database does not result in any database downtime.
DynamoDB Global Tables can be used to deploy a multi region, multi AZ, fully managed database solution.
We can create secondary indexes for DynamoDB tables. Always choose DynamoDB when possible.
DynamoDB streams can be used to monitor changes made to a database, and they can trigger lambda functions.
We can turn on autoscaling for DynamoDB.
For write heavy use cases in DynamoDB, use partition keys with large number of distinct values.
DynamoDB Accelerator, DAX is an in-memory cache for DynamoDB that reduces response time from milliseconds to
ECS
Launch types —
- Fargate
- EC2
All types of instances, i.e. on-demand, spot and reserved can be used with ECS.
Docker containers and ECS are particularly suited for batch job workloads as they can get embarassingly parallel.
Amazon ECS enables you to inject sensitive data into your containers by storing your sensitive data in either —
- AWS Secrets Manager secrets
- AWS Systems Manager Parameter Store parameters
Elastic Beanstalk
AWS Elastic Beanstalk can be used to create —
- Web application using DB
- Capacity provisioning and load balancing of websites
- Long running worker process
- Static website
It should not be used to create tasks which are run once or on a nightly basis, because the infrastructure is provisioned and will be running 24/7.
Elastic Beanstalk can be used to host Docker containers.
Storage Gateway
AWS Storage Gateways—
- File gateway
- Volume gateway: Cached volumes
- Volume gateway: Stored volumes
- Tape gateway