내가 막 입사했을 때만해도 로그 관리 자체가 안되고 있었다. Cloud Watch를 뒤적거리던가, ArgoCD 대시보드에서 컨테이너에 접근해서 로그를 파악했다. .... 그래서 DevOps 관리자 분과 가장 먼저 협업한 것이 로그 파이프라인 구성이었다. 내가 한 일은 다음과 같다. 1. Application 단에서 발생한 로그를 어느 단위로 남길 것인지 판단하고 필요한 정보를 검토2. 검토된 정보들을 로그로 만들어 JSON 형태로 남김3. LogQL 쿼리로 Loki 데이터를 쿼리해서 Grafana에 대시보드를 추가 DevOps 관리자분은 따로 작업하셨어서 어떤 일을 했었는지 정확히 알기 어려웠는데, 이번 기회에 잘 알게 됐다. DevOps 관리자분이 한 일은 다음과 같다. 1. JSON 형태의 로그가 생..
AWS에서 제공하는 완전관리형 쿠버네티스 서비스인 EKS는 업데이트 주기가 엄청나게 빠르다. Amazon EKS Kubernetes 버전에 관한 문서를 읽어보면 다음과 같이 안내한다. 1. EKS 신규 버전 출시는 쿠버네티스 업스트림 릴리즈 주기(4개월)을 따름.2. 신규 버전 출시 후 14개월은 무료로 표준 지원3. 표준 지원 종료 후 12개월 추가 지원 (클러스터 당 0.6$/h의 추가 요금 발생)4. 추가버전 종료까지 업그레이드를 하지 않을경우 가장 마지막 버전으로 강제 업그레이드5. 평균적으로 업스트림 릴리즈 이후 약 2~6개월 이후 EKS 지원 만약 추가 지원으로 빠진다면, 클러스터 당 한달에 약 60만원(0.6 × 1380 × 24 × 30) 정도의 추가 비용이 발생한다. 그래서 그런지 콘솔에..
GitOps를 구축하는데 가장 중요한 단계이다. CI/CD 부분에서 키 설정등의 내용이 많아서 100% 전달할 수 있을지 잘 모르겠다. 이전까지 진행 상황 이 전 글에서 봤던 파이프라인이지만 이전 글에서는 ArgoCD를 EKS 내부에 띄우는데까지만 진행했었다.(위 그림에서 할당된 번호도 없음) 그리고 CI는 이전 글들에서 진행했었다. 아래 글에 1 ~ 3번 과정이 정리되어있다.2023.11.06 - [개발/인프라] - github action으로 CI/CD 구축하기 - 1. CI2023.11.12 - [개발/인프라] - github action으로 CI/CD 구축하기 - 2. JIB 마지막으로 남은 CD 자동화 부분이다. 자동화를 위해서는 ArgoCD가 모니터링할 GitHub Repository를 지정해..
실제 EKS에서 동작 확인을 하는건 ArgoCD 까지만 진행할 예정이다. 백엔드 개발자에게 관찰 가능성 도구들까지 배포하고 기능 확인까지하라는건 너무 가혹하다. k8s에서 어플리케이션을 개발하고 배포한다면, ArgoCD는 한번쯤 들어봤을 수 있다. 주로 GitOps를 위해 사용되는데 ArgoCD와 GitHub을 이용해 자동 배포까지 진행해보려 한다. 이번 장에서는 ArgoCD를 배포하고 대시보드를 만들어 볼 것이다. GitOps란?GitOps는 Git 리포지토리를 단일 정보 소스로 사용하여 인프라를 코드로 제공합니다. 제출된 코드에서는 CI 프로세스를 확인하고, CD 프로세스에서는 보안, 코드형 인프라(IaC) 또는 애플리케이션 프레임워크에 설정된 기타 경계와 같은 요구 사항을 확인하고 적용합니다. 코드..
현재 하고 있는게 간단한 샘플 코드로 EKS를 구축하는 과정이라 이스티오(Istio)에 대해 다루는게 맞는지 잘 모르겠다. 그래도 서비스 메시(Service Mesh) 개념 정리도 할 겸 짚고 넘어가보려고 한다. 서비스 메시(Service Mesh)란?서비스 메시는 애플리케이션의 서비스 간 모든 통신을 처리하는 소프트웨어 계층입니다. 이 계층은 컨테이너화된 마이크로서비스로 구성됩니다. 애플리케이션이 확장되고 마이크로서비스의 수가 증가함에 따라 서비스의 성능을 모니터링하기가 점점 어려워지고 있습니다. 서비스 메시는 서비스 간 연결을 관리하기 위해 모니터링, 로깅, 추적, 트래픽 제어와 같은 새로운 기능을 제공합니다. 이러한 기능은 각 서비스의 코드와 독립적이므로 네트워크 경계를 넘어 여러 서비스 관리 시스..
권한과 클러스터 내부 구성 요소를 갖췄으니 다음해야할 것은 외부 인터넷 망과의 연결이다. 우선, 안정적으로 트래픽을 받기 위해서는 로드밸런싱이 필수다. AWS에서는 AWS 로드밸런서 컨트롤러를 통해 ALB(Application Load Balancer)를 프로비저닝하고, 이를 EKS 클러스터 내부의 Ingress 리소스와 연결하여 로드밸런싱 기능을 지원한다. 이를 통해 외부 트래픽이 ALB를 통해 EKS 클러스터 내의 서비스로 효율적으로 라우팅되고 분산된다. AWS 로드밸런서 컨트롤러란?AWS Load Balancer Controller는 Kubernetes 클러스터의 AWS Elastic Load Balancer를 관리합니다. 컨트롤러를 사용하여 클러스터 앱을 인터넷에 노출할 수 있습니다. 컨트롤..
EKS는 컨트롤 플레인을 자동 관리해주고, 추가 기능으로 클러스터 관리의 편의성까지 제공해준다. 하지만 데이터플레인 관리는 사용자의 몫이다. EKS는 AWS 환경이다보니 온프레미스 환경보다 자유로운 자원의 확장과 축소 설정이 가능하다. 이러한 기능을 노드 오토스케일링이라고 하는데 대표적으로 CA(Cluster Autoscaler)와 Karpenter가 있다. Karpenter가 CA 비해 빠르고 비용 절감효과가 있어서, 본 포스팅은 Karpenter를 정리해보려고 한다. 그래도 차근차근 알아가는게 중요하니 CA부터 정리해보자. Cluster Autoscaler (CA)Cluster Autoscaler는 AWS의 Auto Scaling Group(ASG)을 이용하여 EKS의 노드를 관리합니다. ASG는 E..
Amazon EKS(Elastic Kubernetes Service)에서는 클러스터 관리의 편의성과 기능성을 제공하기 위해 다양한 추가 기능(add-ons)을 제공한다. EKS 추가 기능들은 AWS 관리형 서비스를 통해 클러스터의 중요한 구성 요소들을 자동으로 관리할 수 있도록 도움을 준다. https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/eks-add-ons.html EKS 추가 기능들로 쿠버네티스 클러스터의 네트워킹, 보안, 로깅 및 모니터링 기능을 강화할 수 있다. AWS 콘솔 페이지에서 EKS 클러스터를 생성하는 경우 세가지 추가 기능이 자동으로 생성된다. 1. Amazon EKS kube-proxy2. Amazon VPC CNI plugin fo..
- Total
- Today
- Yesterday
- 람다
- AWS EC2
- 인프런
- cache
- chat GPT
- Elastic cloud
- docker
- S3
- JWT
- OpenFeign
- Spring
- springboot
- 스프링부트
- AWS
- lambda
- CloudFront
- GIT
- Log
- AOP
- ChatGPT
- java
- EKS
- MySQL
- serverless
- OpenAI
- Kotlin
- elasticsearch
- openAI API
- awskrug
- terraform
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |