The goal of this repository is to demonstrate and evaluate AWS services and to provide an infrastructure for additional showcases.
Download and install the following tools:
Configure the tools:
export SHOWCASE_AWS_PROFILE=tu-dev-ueisele
aws configure --profile ${SHOWCASE_AWS_PROFILE}
The required IAM permissions can be found in the individual directories.
To capture the required policy, the tool iamlive was used. How to use it together with terraform is describe in the blog article Determining AWS IAM Policies According To Terraform And AWS CLI.
Roughly summarized the following steps are required:
go install github.com/iann0036/iamlive@latest
iamlive \
--profile ${SHOWCASE_AWS_PROFILE} \
--mode proxy --bind-addr 0.0.0.0:10080 \
--force-wildcard-resource \
--output-file required-iam-policy.json
export HTTP_PROXY=http://127.0.0.1:10080 \
HTTPS_PROXY=http://127.0.0.1:10080 \
AWS_CA_BUNDLE="${HOME}/.iamlive/ca.pem"
terraform apply --var "profile=${SHOWCASE_AWS_PROFILE}"
-
Security Groups for Pods: https://docs.aws.amazon.com/eks/latest/userguide/security-groups-for-pods.html
-
Network Isolation with Calico: https://docs.aws.amazon.com/eks/latest/userguide/calico.html
-
Evaluate Cluster Autoscaler and alternatives (see https://towardsdev.com/karpenter-vs-cluster-autoscaler-dd877b91629b). At the moment for example, even if Node Affinity perfers an ARM instance, an x64 instance is started.
-
Autoscaling should remove replace an instance with a smaler type if possible.