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 \ --..
[24단계 실습으로 정복하는 쿠버네티스] 책으로 스터디를 진행하였다. 쿠버네티스 보안 Cloud Native에서의 쿠버네티스 보안은 계층으로 크게 4C로 구분해서 제안하고 있다. 4C는 각각 클라우드(Cloud), 클러스터(Cluster), 컨테이너(Container)와 코드(Code)를 의미한다. Cloud Provider(클라우드 공급자) 보안 쿠버네티스가 Cloud Native 구성에서 동작할 경우, 클라우드 계층에서의 보안이 취약하거나 취약한 방식으로 구성된다면 이는 곧 쿠버네티스 취약으로 이어진다. Cloud Provider에서 제시하는 보안 권장사항을 참조하여 Cloud 보안 취약점을 제거해야 한다. - AWS 보안서비스 : https://aws.amazon.com/security/ - Azu..
[24단계 실습으로 정복하는 쿠버네티스] 책으로 스터디를 진행하였다. Prometheus란? Prometheus는 시스템과 서비스를 모니터링하기 위한 도구로, Pull 방식의 모니터링 시스템과 경보 알람을 제공한다. 모니터링할 대상에 exproter라는 Agent가 설치되고 해당 Agent에서 다양한 모니터링 정보(Metric)을 수집해 놓으면 Prometheus Server에서 해당 데이터를 가져가는 방식을 취한다. - 일반적으로는 Pull 방식을 취해 데이터를 수집하지만, Pushgateway를 통해서 짧은 수명의 작업(어플리케이션 등)은 Push 방식을 지원하는 것으로 확인된다. - PromQL(Prometheus Query Language)이라는 질의언어를 제공한다. (일반적인 SQL은 아니지만 ..