요즈음 IT업계에서 가장 큰 화두는 단연 GenAI입니다. LLM(Large Language Model)의 등장으로 GenAI는 우리의 생활과 비지니스를 확연히 바꿔놓았는데요. 이러한 추세에 맞춰 Amazon, Google, MS 등의 여러 빅테크들이 GenAI as a Service 분야에서 경쟁하고 있습니다. 오늘은 이들 중 Amazon에서 내놓은 Amazon Bedrock에 대해서 알아보도록 하겠습니다. Amazon Bedrock은 AWS(Amazon Web Service)를 통해 이용할 수 있는 완전관리형 GenAI 서비스인데요. Amazon Bedrock을 통해 어떻게 모델을 사용할 수 있는지, 그리고 AI 데모 시연에 최적화된 웹 인터페이스 도구인 Gradio를 통해 간단한 웹 어플리케이션을 ..
gRPC는 Google에서 개발한 Opensource RPC 프레임워크입니다. gRPC는 HTTP/2를 기반으로 동작하기 때문에 효율적으로 요청을 전달할 수 있으며, ProtoBuf를 이용해 데이터를 직렬화(Serialization)하기 때문에 적은 용량으로 데이터를 전송할 수 있다는 장점이 있습니다. MSA 아키텍쳐가 보편화되어 효율적인 통신이 필요한 요즈음 많은 Application들이 위와 같은 장점을 가진 gRPC를 사용하고 있는데요. 하지만 Kubernetes 환경에서 이러한 gRPC의 특성들이 초래하는 예상치 못한 문제가 존재합니다. 이번 포스팅은 Kubernetes에서 gRPC 통신을 구성할시 발생할 수 있는 문제와 그 원인, 그리고 해결 방법에 대해서 알아보도록 하겠습니다. 1. Issue..
본 포스팅은 "Opentelemetry로 Kubernetes Observability 확보하기" 시리즈의 마지막 편입니다. 지금까지 3 Pillars of Observability를 구성하는 Metric, Logging, Tracing을 Opentelemetry와 LGTM 스택으로 구현하는 방법을 알아봤습니다. 이번에는 위의 세 요소들을 연관지어 분석하는 Correlation에 대해서 알아보고, 이를 LGTM 스택과 Opentelemetry로 어떻게 구현할 수 있는지 알아보겠습니다. 1. Correlation 1-1. Correlation이란?Observability 관점에서 Correlation이란 각기 다른 형태의 Telemetry 데이터를 연관지어 분석하는 기법을 말합니다. Correlation을 ..
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분 가량 세션을 진행했습니다. 개인적으로는 이 행사에서 가장 많은..
본 포스팅은 "Opentelemetry오 Kubernetes Observability 확보하기" 시리즈의 3번째 글입니다. 이번 포스팅에서는 애플리케이션의 함수 실행 이력 및 Latency를 측정할 수 있는 Trace에 대한 가시성을 Opentelemetry로 확보하는 방법을 알아보도록 하겠습니다. Trace 데이터를 관리할 수 있는 도구는 Grafana의 Tempo가 존재합니다. Tempo는 Object storage를 Backend로 사용하기 때문에 비용 효율적이고, 다른 Grafana 도구와의 연계성이 좋다는 장점이 있습니다. 그래서 이번 포스팅에서는 Grafana Tempo를 사용해서 Kubernetes 환경의 Trace 가시성을 확보하는 방법에 대해 알아보도록 하겠습니다. 1. Tempo1-1...
본 포스팅은 "Opentelemetry로 Kubernetes Observability 확보하기" 시리즈의 2번째 글입니다. 저번 포스팅에서 Opentelemetry를 사용해 Logging에 대한 가시성을 확보하는 방법에 대해 알아봤습니다. 이번에는 Three pillars of observability의 Logging, Metric, Tracing 중 Metric에 대한 가시성을 Opentelemetry로 확보하는 방법에 대해 알아보도록 하겠습니다. 기존에는 Metric을 수집,관리하기 위해 CNCF 재단의 Opensource 도구인 Prometheus를 주로 사용했는데요, 이번 포스팅에서는 Prometheus가 아닌 Grafana에서 출시한 Mimir를 사용해서 Metric을 관리해보겠습니다. 그래서 ..
Observability를 확보하는 것은 시스템 및 소프트웨어를 유지하는데 필수적인 행위입니다. Three pilars of Observability로 불리는 Log, Metric, Trace 3가지 Telemetry 데이터를 수집하고 관리하는 것이 Observability를 잘 확보한 것이라 할 수 있는데요. 이렇게 3개의 요소들을 바탕으로 Observability를 확보하고자 할때 허들이 되는 요소 중 하나는, Telemetry 데이터의 프로토콜이 Observability 서비스 및 플랫폼마다 다르다는 것입니다. 이 때문에 Corrleation이라고 하는, Telemetry 데이터 간 연동이 힘들고 수집한 데이터들을 한 곳에서 가공 및 관리하는 것이 불가능했었습니다. 이러한 문제를 해결하기 위해 벤더..
이번에도 어김없이 찾아온 2024년에 작년 한해를 돌아보고자 합니다. 엔지니어로써 저는 매년 많은 일을 겪고 다양한 경험을 쌓고 있습니다. 이 귀중한 메모리들을 바탕으로 좋았던 경험은 기억해두고, 아쉬웠던 경험은 반성하기 위해 매년 회고를 작성하고 있습니다. 작년은 만족스러운 것도, 아쉬웠던 것도 많았던 복합적인 한 해였던 것 같습니다. 2023년에는 어떤 일이 있었는지 제 경험을 바탕으로 적어보고자 합니다. 1. Google Kubernetes Engine 강의 촬영 2023년 7월 중순 경에 M사로부터 Google Kubernetes Engine을 기반으로 입문자를 위한 강의를 촬영해달라는 요청이 있었습니다. 강의 촬영은 요청받을 때마다 흥분되는 일이지만 동시에 부담도 많이 느낍니다. 제 말과 핸즈온..
Terraform은 IaC(Infrastucture as Code)를 위한 인프라 관리 도구입니다. 현재 Terraform은 Plumi, ARM 등 많은 IaC 관련 도구들을 제치고 가장 많은 사용자와 Reference를 가지고 있으며, 따라서 가장 대중화된 도구가 되었습니다. 이제는 단순히 Terraform을 Local에서 사용하는 것을 넘어서, 다수의 이용자와 협업하기 위해 GItOps 방식의 Workflow를 도입하는 경우도 많아지고 있는데요. 이는 Github, Gitlab 등의 Git 제품들이 제공하는 CI 도구와 Terraform을 결합해서 코드 커밋에서 시작해 인프라 배포까지 이어지는 하나의 단일한 Workflow를 이용하는 것을 말합니다. 이 같은 방식을 사용하면 Git 코드를 기반으로 단..
Kubernetes 환경에서 서비스를 운영하다보면 예상치 못한 이슈를 종종 발견하게 됩니다. 특히 대규모의 트래픽을 부담해야 하거나 구동 중인 애플리케이션이 많은 경우처럼 Cluster의 크기가 거대해질수록 다양한 이슈를 만나게 되는데요. 이 경우 단순히 리소스의 부족 문제 뿐만이 아니라 여러 방면에서의 문제를 해결해야 하는 상황이 오기도 합니다. 이번 포스팅에서는 클러스터를 운영하면서 DNS Query Failed 이슈를 해결했던 사례를 공유하고자 합니다. 1. Issue 해당 이슈를 발견하게 된 계기는, 트래픽이 몰리던 시간대에 평소와 다른 Error Log가 확인됐던 것이었습니다. "io.netty.resolver.dns.DnsResolveContext$SearchDomainUnknownHostEx..