Infrastructure: AWS
Here we list the main services that we use on AWS and which one(s) product engineer should familiarize with.
Note that product engineers can request changes to web AWS accounts via our tvlk-web-terraform-aws repository, so it is recommended that you know how to work with Terraform.
| Service | Web Infra PIC | Should product know | What it is / what to do |
|---|---|---|---|
| Cloudfront | Adrian | — | Web CDN: Caches our web resources on multiple geolocation so they are closer to our users. |
| No | Configure caching behavior — manage cache policies (how and when to cache the resources), triggers captcha invalidation | ||
| No | Configure per-path behavior — how to add special headers, which ALB/origin to hit, do we need to use lambda functions when handling the request | ||
| No | Attach WAF protection | ||
| WAF | Hansen | — | Helps deny unwanted access to our services via rate-limiting, bot detection, silent/CAPTCHA challenges, etc. |
| No | Manage IP sets — for whitelisting (e.g. to limit staging access) and blacklisting | ||
| No | Modify ACL rules and rulegroups | ||
| EC2 | Ferdinand, Adrian | — | Cloud computing platform (e.g. run machines on the cloud), plus some networking building blocks |
| No | Manage EC2 instances (used for EKS cluster for our CI) | ||
| No | Manage security groups, load balancers (ALB), and target groups | ||
| Lambda | — | — | Serverless functions on AWS |
| No | Change or modify the functions' code or bundle (ZIP) | ||
| No | Attach the function to an API Gateway (so it can acts like an API) | ||
| DynamoDB | — | — | Database: Simple key-value store for any scale |
| No | Create and manage tables | ||
| ECS | Ferdinand | — | Platform to run and scale containerized application on AWS |
| Yes | Configure task definition — which ECR image to use, with what environment variables | ||
| Yes | Configure task autoscaling — configure scaling criteria, min/max task count | ||
| ECR | — | — | Stores built docker images |
| No | Configure scripts to login, tag images, and upload to ECR | ||
| No | Configure image retention policy | ||
| Route53 | — | — | DNS on AWS |
| No | Configure DNS rules — e.g. which target to hit (which can be an alias to a Cloudfront/ALB) | ||
| IAM | Ferdinand | — | Permission management on AWS |
| No | Modify IAM roles — assumed by machines/instances to get certain access on our AWS account | ||
| No | Modify IAM permission (what is allowed/denied) and trust policy (who can assume that role) | ||
| EKS | Adrian | — | Platform to run Kubernetes on AWS |
| No | Configure eksctl config — this interfaces AWS objects with kubernetes objects | ||
| No | Configure helmfile config — adds predefined modules (and their config) to a Kubernetes cluter | ||