Skip to main content

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.

ServiceWeb Infra PICShould product knowWhat it is / what to do
CloudfrontAdrianWeb CDN: Caches our web resources on multiple geolocation so they are closer to our users.
NoConfigure caching behavior — manage cache policies (how and when to cache the resources), triggers captcha invalidation
NoConfigure per-path behavior — how to add special headers, which ALB/origin to hit, do we need to use lambda functions when handling the request
NoAttach WAF protection
WAFHansenHelps deny unwanted access to our services via rate-limiting, bot detection, silent/CAPTCHA challenges, etc.
NoManage IP sets — for whitelisting (e.g. to limit staging access) and blacklisting
NoModify ACL rules and rulegroups
EC2Ferdinand, AdrianCloud computing platform (e.g. run machines on the cloud), plus some networking building blocks
NoManage EC2 instances (used for EKS cluster for our CI)
NoManage security groups, load balancers (ALB), and target groups
LambdaServerless functions on AWS
NoChange or modify the functions' code or bundle (ZIP)
NoAttach the function to an API Gateway (so it can acts like an API)
DynamoDBDatabase: Simple key-value store for any scale
NoCreate and manage tables
ECSFerdinandPlatform to run and scale containerized application on AWS
YesConfigure task definition — which ECR image to use, with what environment variables
YesConfigure task autoscaling — configure scaling criteria, min/max task count
ECRStores built docker images
NoConfigure scripts to login, tag images, and upload to ECR
NoConfigure image retention policy
Route53DNS on AWS
NoConfigure DNS rules — e.g. which target to hit (which can be an alias to a Cloudfront/ALB)
IAMFerdinandPermission management on AWS
NoModify IAM roles — assumed by machines/instances to get certain access on our AWS account
NoModify IAM permission (what is allowed/denied) and trust policy (who can assume that role)
EKSAdrianPlatform to run Kubernetes on AWS
NoConfigure eksctl config — this interfaces AWS objects with kubernetes objects
NoConfigure helmfile config — adds predefined modules (and their config) to a Kubernetes cluter