IaC Automation with EKS 일반적으로 EKS는 Kubernetes를 통해 컨테이너화된 어플리케이션을 관리, 배포하는 용도로 많이 사용된다. 하지만 어플리케이션을 서비스하는데 필요한 AWS 자원(Route53, ELB 등)까지 점점 영역을 넓혀가면서 요즘들어 인프라 관리까지도 EKS와 같은 Kubernetes를 통해서 관리하는 도구 및 방법들이 활성화 되고 있다. 이런 도구들 중 Crossplane이라는 도구에 대해서 알아보고 간단한 테스트를 해보았다. Crossplane이란? 2018년에 Upbound라는 회사에서 만들었고 2021년 9월에 CNCF Incubating 프로젝트로 승인되었다. 공식 문서에서는 CrossPlane을 오픈소스 멀티 클라우드 컨트롤 플레인이라고 소개한다. Cro..
EKS Security EKS의 경우 AWS에서는 보안에 대한 책임을 AWS와 고객의 공동 책임이라고 설명한다. 자체 관리형 노드와 AWS Fargate를 사용하는 Amazon EKS에 대한 AWS 공동 책임 모델을 보면 모두 Master Node에 대한 책임은 AWS에서 담당하는 것을 볼 수 있다. 일반적인 Kubernetes에 비해 보안적 부담이 덜한 셈이지만 어떤 부분이 취약한지, 보안을 강화하기 위한 기준이 어떤 것인지 사용자 입장에서는 어려울 수 있다. 스터디에서는 Kubernetes 인증과 인가, 권한 부분에 대한 실습을 통해 기술적인 공부를 진행했기에, 블로그에서는 EKS 보안의 기준과 EKS 보안을 강화하는데 좀 더 간편한 방법 또는 도구가 있는지에 대해 공부해보고 정리해보았다. https..
EKS Autoscaling EKS Cluster의 Node 수와 Pod 수를 자동으로 조정하여 서비스에 사용되는 자원을 최적화하는 기능이다. 개인적으로 이런 기능이 클라우드와 Kubernetes를 쓰는 주된 이유라고 생각한다. 서비스의 요청에 따라 성능과 비용을 최적화 할 수 있다. Node나 Pod에 장애가 발생한 경우 자동으로 복구해 서비스 가용성을 높일 수 있다. 이런 작업들이 자동으로 이루어지기 때문에 관리와 운영 편의성을 높일 수 있다. 다양한 방법을 통해서 Autoscaling을 제공하는데 대표적인 방법은 아래와 같다. HPA(Horizontal Pod Autoscaler)와 VPA(Vertical Pod Autoscaler) HPA는 Pod의 CPU 사용량, 메모리 사용량 또는 요청 수와 ..
EKS ADOT(AWS Distro for OpenTelemetry) EKS ADOT를 사용하기에 앞서 해당 Add-On이 어떤 것인지 이해하기 위한 정보를 먼저 찾아보았다. APM(Application Performance Monitoring) 이란? 서비스 중인 어플리케이션의 성능과 장애 등을 진단하는데 사용하는 도구이다. APM을 통해서 어플리케이션의 어느 부분에서 지연이 발생하는지 추적하고 개선하는데 사용되며, 주로 아래와 같은 기능을 포함한다. 성능 메트릭 : APM 도구는 요청 수, 응답 시간 및 오류 수와 같은 애플리케이션의 다양한 성능 메트릭을 모니터링할 수 있다. 트랜잭션 추적 : APM 도구는 애플리케이션의 트랜잭션을 추적하여 애플리케이션의 성능 병목 현상과 문제를 식별할 수 있다. 디..
EKS Storage 기초 개념 Kubernetes의 Storage Kubernetes의 Pod는 내부의 Container 마다 로컬디스크가 생성되는데, 해당 로컬디스크는 Pod가 삭제되면 같이 삭제된다. 또한 Pod내부의 Container는 각각 고유한 로컬디스크를 가지기 때문에 Container 간에 파일을 공유할 수 없게 된다. 하지만 POD로 구동되는 서비스 중에는 Pod가 중지되어도 삭제되지않고 주기적으로 보관되어야 하는 데이터를 가질 수 도 있으며, 다른 Container 서비스와 파일을 공유해서 사용하고 싶은 경우가 발생한다. 이런 이유로 인해 별도의 리소스인 Volume이 만들어졌다. Kubernetes의 Volume Kuvernetes는 다양한 종류의 Volume을 지원하며, 각 Volu..
EKS 네트워크(VPC CNI) CNI( Container Network Interface )란? CNCF(Cloud Native Computing Foundation) 프로젝트의 하나로 컨테이너 네트워크를 지원하는 여러 플러그인의 사실상 표준이다. https://github.com/containernetworking/cni https://www.cncf.io/projects/container-network-interface-cni/ Kubernetes에서는 이런 CNI를 통해 각 POD간의 통신을 지원하고 있으며 기본적인 CNI로 kubenet을 제공하지만 kubenet은 정말 간단하고 기본적인 기능만 제공하다보니 일반적으로 CNI 표준을 지키는 다른 3rd-party CNI를 사용하게된다. https..
EKS 기초 EKS란? Amazon Elastic Kubernetes Service(Amazon EKS)는 자체 Kubernetes 컨트롤 플레인 또는 노드를 설치, 운영 및 유지 관리할 필요 없이 AWS의 Kubernetes 실행에 사용할 수 있는 관리형 서비스 일반적인 Kubernetes의 마스터노드에 구성되는 컨트롤 플레인 영역을 AWS에서 관리해주며, 해당 컨트롤 플레인을 사용할 수 있게 해주는 서비스이다. EKS 구축 방법 EKS를 생성하는 방법은 크게 3가지가 있는데, 어떤 방법을 사용해도 결과물은 큰 차이가 없기에 구축에 편하거나 유지보수가 용이한 쪽으로 진행하면 된다. AWS CLI를 사용해 구축하는 방법 # EKS 생성 aws eks create-cluster \ --region \ --..