AWS EKS를 쉽게 쓰는 방법, AWS EKS Blueprint

2022. 7. 7. 17:40Dev/EKS

728x90
반응형

Amazon Elastic Kubernetes Service(EKS)는 AWS에서 제공하는 완전 관리형 쿠버네티스입니다.

클라우드에서 K8S를 사용하고 싶어하는 요구는 많지만 기술적인 어려움 때문에 도입을 못하는 경우가 대부분입니다.

Kubernets는 사용할 수 있는 도구 및 설계 옵션이 매우 많아서 애플리케이션의 요구 사항을 충족하는 EKS 클러스터를 구축하는 데 상당한 시간과 깊은 전문 지식이 필요하기 때문입니다.

또 EKS 클러스터 전체에 걸쳐 일관성과 표준화를 보장하는 것이 필요해졌고, 이를 쉽게 프로비저닝 하기 위해 EKS Blueprint가 만들어졌습니다.

EKS Blueprint는 Terraform과 AWS CDK에서 구현됩니다.

쉽게 설명하면

테라폼 코드에서 명세에 맞게 옵션을 설정만해주고

테라폼을 돌리면 EKS가 프로비저닝 되고, 애드온들이 설치됩니다.

 
설치 가능한 애드온은 이렇게 다양하고 계속 추가중입니다.
Agones Agones is an open source platform for deploying, hosting, scaling, and orchestrating dedicated game servers for large scale multiplayer games on Kubernetes.
ArgoCD ArgoCD Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.
AWS CloudWatch Metrics Use CloudWatch Container Insights to collect, aggregate, and summarize metrics and logs from your containerized applications and microservices.
AWS EFS CSI Driver The Amazon EFS Container Storage Interface (CSI) driver provides a CSI interface that allows Kubernetes clusters running on AWS to manage the lifecycle of Amazon EFS file systems.
AWS for Fluent Bit Fluent Bit is an open source Log Processor and Forwarder which allows you to collect any data like metrics and logs from different sources, enrich them with filters and send them to multiple destinations.
AWS Load Balancer Controller The AWS Load Balancer Controller manages AWS Elastic Load Balancers for a Kubernetes cluster.
AWS Node Termination Handler This project ensures that the Kubernetes control plane responds appropriately to events that can cause your EC2 instance to become unavailable, such as EC2 maintenance events, EC2 Spot interruptions, ASG Scale-In, ASG AZ Rebalance, and EC2 Instance Termination via the API or Console.
aws-privateca-issuer AWS ACM Private CA is a module of the AWS Certificate Manager that can setup and manage private CAs.
cert-manager cert-manager adds certificates and certificate issuers as resource types in Kubernetes clusters, and simplifies the process of obtaining, renewing and using those certificates.
Cluster Autoscaler Cluster Autoscaler is a tool that automatically adjusts the number of nodes in your cluster when:
Pods fail due to insufficient resources, or
Pods are rescheduled onto other nodes due to being in nodes that are underutilized for an extended period of time.
Horizontal cluster-proportional-autoscaler container The cluster-proportional-autoscaler helps to scale the applications using deployment or replicationcontroller or replicaset. This is an alternative solution to Horizontal Pod Autoscaling.
Crossplane Crossplane is an open source Kubernetes add-on that enables platform teams to assemble infrastructure from multiple vendors, and expose higher level self-service APIs for application teams to consume, without having to write any code.
ExternalDNS External DNS is a Kubernetes add-on that can automate the management of DNS records based on Ingress and Service resources.
Fargate fluent bit Fluent Bit for Fargate configures Fluent Bit to forward Fargate Container logs to CloudWatch.
Karpenter Karpenter is an open-source node provisioning project built for Kubernetes. Karpenter automatically launches just the right compute resources to handle your cluster's applications. It is designed to let you take full advantage of the cloud with fast and simple compute provisioning for Kubernetes clusters.
KEDA KEDA is a Kubernetes-based Event Driven Autoscaler. With KEDA, you can drive the scaling of any container in Kubernetes based on the number of events needing to be processed.
Kube-State-Metrics kube-state-metrics (KSM) is a simple service that listens to the Kubernetes API server and generates metrics about the state of the objects.
Kubernetes Dashboard Kubernetes Dashboard is a general purpose, web-based UI for Kubernetes clusters.
Amazon EKS Add-ons Amazon EKS add-ons provide installation and management of a curated set of add-ons for Amazon EKS clusters. All Amazon EKS add-ons include the latest security patches, bug fixes, and are validated by AWS to work with Amazon EKS.
(Amazon VPC CNI, CoreDNS, kube-proxy, Amazon EBS CSI)
Metrics Server Metrics Server is a scalable, efficient source of container resource metrics for Kubernetes built-in autoscaling pipelines.
Nginx This add-on installs Nginx Ingress Controller on Amazon EKS. The Nginx ingress controller uses Nginx as a reverse proxy and load balancer.
Prometheus Prometheus is an open source monitoring and alerting service. Prometheus joined the Cloud Native Computing Foundation in 2016 as the second hosted project, after Kubernetes.
Spark K8S Operator The Kubernetes Operator for Apache Spark aims to make specifying and running Spark applications as easy and idiomatic as running other workloads on Kubernetes. It uses Kubernetes custom resources for specifying, running, and surfacing status of Spark applications.
Tetrate Istio Distro Tetrate Istio Distro is simple, safe enterprise-grade Istio distro.
Traefik Traefik is an open-source Edge Router that makes publishing your services a fun and easy experience. It receives requests on behalf of your system and finds out which components are responsible for handling them.
HashiCorp Vault HashiCorp Vault brokers and deeply integrates with trusted identities to automate access to secrets, data, and systems.
Velero Velero is an open source tool to safely backup and restore, perform disaster recovery, and migrate Kubernetes cluster resources and persistent volumes.
Vertical Pod Autoscaler VPA Vertical Pod Autoscaler (VPA) automatically adjusts the CPU and memory reservations for your pods to help "right size" your applications.
Apache YuniKorn YuniKorn YuniKorn is a light-weight, universal resource scheduler for container orchestrator systems.

 

참고 자료

https://aws.amazon.com/ko/blogs/containers/bootstrapping-clusters-with-eks-blueprints

 

Bootstrapping clusters with EKS Blueprints | Amazon Web Services

Today, we are introducing a new open-source project called EKS Blueprints that makes it easier and faster for you to adopt Amazon Elastic Kubernetes Service (Amazon EKS). EKS Blueprints is a collection of Infrastructure as Code (IaC) modules that will help

aws.amazon.com

https://catalog.workshops.aws/eks-blueprints-terraform/en-US

 

Workshop Studio

 

catalog.workshops.aws

https://aws-ia.github.io/terraform-aws-eks-blueprints/v4.3.0/

 

Amazon EKS Blueprints for Terraform

Amazon EKS Blueprints for Terraform Welcome to Amazon EKS Blueprints for Terraform! This repository contains a collection of Terraform modules that aim to make it easier and faster for customers to adopt Amazon EKS. What is EKS Blueprints EKS Blueprints he

aws-ia.github.io

https://github.com/aws-ia/terraform-aws-eks-blueprints

 

GitHub - aws-ia/terraform-aws-eks-blueprints: Configure and deploy complete EKS clusters.

Configure and deploy complete EKS clusters. Contribute to aws-ia/terraform-aws-eks-blueprints development by creating an account on GitHub.

github.com