분류 전체보기

행사 및 세미나 활동

Build with AI United 2024 세션 후기

2024년 4월 27일 GDG Cloud Korea, GDG Golang Korea, GDG Pangyo에서 연합해 주최한 Build With AI United 2024에 연사로 참여했습니다. Build With AI United 2024는 Google의 AI 관련 지식을 공유하는 Technical Talk와 기술을 직접 사용해볼 수 있는 Hands-on으로 구성된 행사였습니다. 이번 행사는 300명 가량의 규모로 구성되었고, 등록자는 320명이었으며, 최종 280명의 참여자분들과 함께 했습니다. 저는 이 행사의 6개 Technical Talk 중 하나의 연사를 맡게 되어 Google Cloud에서 LLM을 배포하는 방법에 관한 주제로 40분 가량 세션을 진행했습니다. 개인적으로는 이 행사에서 가장 많은..

Observability

Opentelemetry로 Kubernetes Observability 확보하기 : Tracing

본 포스팅은 "Opentelemetry오 Kubernetes Observability 확보하기" 시리즈의 3번째 글입니다. 이번 포스팅에서는 애플리케이션의 함수 실행 이력 및 Latency를 측정할 수 있는 Trace에 대한 가시성을 Opentelemetry로 확보하는 방법을 알아보도록 하겠습니다. Trace 데이터를 관리할 수 있는 도구는 Grafana의 Tempo가 존재합니다. Tempo는 Object storage를 Backend로 사용하기 때문에 비용 효율적이고, 다른 Grafana 도구와의 연계성이 좋다는 장점이 있습니다. 그래서 이번 포스팅에서는 Grafana Tempo를 사용해서 Kubernetes 환경의 Trace 가시성을 확보하는 방법에 대해 알아보도록 하겠습니다. 1. Tempo1-1...

Observability

Opentelemetry로 Kubernetes Observability 확보하기 : Monitoring

본 포스팅은 "Opentelemetry로 Kubernetes Observability 확보하기" 시리즈의 2번째 글입니다. 저번 포스팅에서 Opentelemetry를 사용해 Logging에 대한 가시성을 확보하는 방법에 대해 알아봤습니다. 이번에는 Three pillars of observability의 Logging, Metric, Tracing 중 Metric에 대한 가시성을 Opentelemetry로 확보하는 방법에 대해 알아보도록 하겠습니다. 기존에는 Metric을 수집,관리하기 위해 CNCF 재단의 Opensource 도구인 Prometheus를 주로 사용했는데요, 이번 포스팅에서는 Prometheus가 아닌 Grafana에서 출시한 Mimir를 사용해서 Metric을 관리해보겠습니다. 그래서 ..

Observability

Opentelemetry로 Kubernetes Observability 확보하기 : Logging

Observability를 확보하는 것은 시스템 및 소프트웨어를 유지하는데 필수적인 행위입니다. Three pilars of Observability로 불리는 Log, Metric, Trace 3가지 Telemetry 데이터를 수집하고 관리하는 것이 Observability를 잘 확보한 것이라 할 수 있는데요. 이렇게 3개의 요소들을 바탕으로 Observability를 확보하고자 할때 허들이 되는 요소 중 하나는, Telemetry 데이터의 프로토콜이 Observability 서비스 및 플랫폼마다 다르다는 것입니다. 이 때문에 Corrleation이라고 하는, Telemetry 데이터 간 연동이 힘들고 수집한 데이터들을 한 곳에서 가공 및 관리하는 것이 불가능했었습니다. 이러한 문제를 해결하기 위해 벤더..

잡담

지난 1년을 돌아보며 - 2023년 회고

이번에도 어김없이 찾아온 2024년에 작년 한해를 돌아보고자 합니다. 엔지니어로써 저는 매년 많은 일을 겪고 다양한 경험을 쌓고 있습니다. 이 귀중한 메모리들을 바탕으로 좋았던 경험은 기억해두고, 아쉬웠던 경험은 반성하기 위해 매년 회고를 작성하고 있습니다. 작년은 만족스러운 것도, 아쉬웠던 것도 많았던 복합적인 한 해였던 것 같습니다. 2023년에는 어떤 일이 있었는지 제 경험을 바탕으로 적어보고자 합니다. 1. Google Kubernetes Engine 강의 촬영 2023년 7월 중순 경에 M사로부터 Google Kubernetes Engine을 기반으로 입문자를 위한 강의를 촬영해달라는 요청이 있었습니다. 강의 촬영은 요청받을 때마다 흥분되는 일이지만 동시에 부담도 많이 느낍니다. 제 말과 핸즈온..

Devops

Terraform을 GitOps 방식으로 사용하기 위한 도구 선택하기(With TACOS)

Terraform은 IaC(Infrastucture as Code)를 위한 인프라 관리 도구입니다. 현재 Terraform은 Plumi, ARM 등 많은 IaC 관련 도구들을 제치고 가장 많은 사용자와 Reference를 가지고 있으며, 따라서 가장 대중화된 도구가 되었습니다. 이제는 단순히 Terraform을 Local에서 사용하는 것을 넘어서, 다수의 이용자와 협업하기 위해 GItOps 방식의 Workflow를 도입하는 경우도 많아지고 있는데요. 이는 Github, Gitlab 등의 Git 제품들이 제공하는 CI 도구와 Terraform을 결합해서 코드 커밋에서 시작해 인프라 배포까지 이어지는 하나의 단일한 Workflow를 이용하는 것을 말합니다. 이 같은 방식을 사용하면 Git 코드를 기반으로 단..

Devops

Kubernetes 환경에서 발생하는 DNS Query Failed 이슈와 NodeLocal DNSCache를 이용한 해결

Kubernetes 환경에서 서비스를 운영하다보면 예상치 못한 이슈를 종종 발견하게 됩니다. 특히 대규모의 트래픽을 부담해야 하거나 구동 중인 애플리케이션이 많은 경우처럼 Cluster의 크기가 거대해질수록 다양한 이슈를 만나게 되는데요. 이 경우 단순히 리소스의 부족 문제 뿐만이 아니라 여러 방면에서의 문제를 해결해야 하는 상황이 오기도 합니다. 이번 포스팅에서는 클러스터를 운영하면서 DNS Query Failed 이슈를 해결했던 사례를 공유하고자 합니다. 1. Issue 해당 이슈를 발견하게 된 계기는, 트래픽이 몰리던 시간대에 평소와 다른 Error Log가 확인됐던 것이었습니다. "io.netty.resolver.dns.DnsResolveContext$SearchDomainUnknownHostEx..

Azure

AKS(Azure Kubernetes Service)에서 Application Gateway로 Ingress 구성하기

많은 애플리케이션들이 Kubernetes 환경에 배포되고 있는 요즈음 AWS, GCP 등.. 많은 CSP(Cloud Service Provider)가 Managed Kubernetes 서비스를 제공하고 있습니다. CSP가 제공하는 Managed Kubernetes 서비스의 장점 중 하나는 기반이 되는 클라우드 서비스와 연계되는 기능을 제공한다는 점인데요. 특히 Kubernetes의 Ingress를 CSP의 L7 Loadbalancer 서비스와 연계해 생성하는 기능이 널리 사용되고 있습니다. 많은 CSP 이용자들이 Managed Kubernetes 서비스를 사용하며 이러한 이점을 활용하고 있는데요. 만약 Microsoft의 CSP인 Azure를 사용한다면 AKS(Azure Kubernetes Service..

Devops

EKS Kubernetes의 롤링 업데이트 시 일시적인 500 에러의 원인과 해결

EKS(Elastic Kubernetes Service)는 AWS에서 제공하는 Managed Kubernetes 서비스입니다. EKS는 "aws-loadbalancer-controller"를 제공해 AWS ALB(Application Load Balancer)를 Ingress로 사용할 수 있게끔 하고 있는데요. ALB 기반의 Ingress로 Deployment를 배포할시 AWS와 통합된 환경을 활용해 서비스를 노출시킬 수 있다는 장점이 존재합니다. 하지만 위와 같은 환경에서 롤링 업데이트 시 일시적으로 500 에러가 발생하는 현상을 종종 발견할 수 있는데요. 이번 포스팅에서는 이 500에러의 원인이 무엇인지, 해결 방법에는 무엇이 있는지 알아보도록 하겠습니다. 1. 증상 이슈가 되는 에러를 재구현해 어..

Devops

Kubecost로 Kubernetes 환경의 FinOps를 구현해보자

IT 부서에서 비용 관리는 매우 중요한 부분을 차지하고 있습니다. IT 리소스는 보통 공유되는 자원이고, 부서 비용에 큰 부분을 차지하며, 비즈니스 우선순위에 영향을 미치기 때문이죠. 그래서 이 IT 리소스 비용을 효율적으로 관리하는 것이 IT 리소스를 잘 사용하는 것 만큼이나 중요합니다. 그렇다면 Kubernetes 환경에서의 비용 관리는 어떻게 할 수 있을까요? 이번 포스팅에서는 IT 환경에서 비용을 관리하는 방법에서 시작해 Kubernetes의 비용 관리 도구인 Kubecost를 사용하는 방법까지 알아보도록 하겠습니다. 1. IT 비용을 어떻게 관리할 수 있을까? 1-1. Chargeback, Showback FinOps 관점에서 IT 리소스 비용을 관리하는 방법은 크게 2가지로 구분할 수 있습니다..

Seungwoo Lee
'분류 전체보기' 카테고리의 글 목록