많은 애플리케이션들이 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..
EKS(Elastic Kubernetes Service)는 AWS에서 제공하는 Managed Kubernetes 서비스입니다. EKS는 "aws-loadbalancer-controller"를 제공해 AWS ALB(Application Load Balancer)를 Ingress로 사용할 수 있게끔 하고 있는데요. ALB 기반의 Ingress로 Deployment를 배포할시 AWS와 통합된 환경을 활용해 서비스를 노출시킬 수 있다는 장점이 존재합니다. 하지만 위와 같은 환경에서 롤링 업데이트 시 일시적으로 500 에러가 발생하는 현상을 종종 발견할 수 있는데요. 이번 포스팅에서는 이 500에러의 원인이 무엇인지, 해결 방법에는 무엇이 있는지 알아보도록 하겠습니다. 1. 증상 이슈가 되는 에러를 재구현해 어..
IT 부서에서 비용 관리는 매우 중요한 부분을 차지하고 있습니다. IT 리소스는 보통 공유되는 자원이고, 부서 비용에 큰 부분을 차지하며, 비즈니스 우선순위에 영향을 미치기 때문이죠. 그래서 이 IT 리소스 비용을 효율적으로 관리하는 것이 IT 리소스를 잘 사용하는 것 만큼이나 중요합니다. 그렇다면 Kubernetes 환경에서의 비용 관리는 어떻게 할 수 있을까요? 이번 포스팅에서는 IT 환경에서 비용을 관리하는 방법에서 시작해 Kubernetes의 비용 관리 도구인 Kubecost를 사용하는 방법까지 알아보도록 하겠습니다. 1. IT 비용을 어떻게 관리할 수 있을까? 1-1. Chargeback, Showback FinOps 관점에서 IT 리소스 비용을 관리하는 방법은 크게 2가지로 구분할 수 있습니다..
Sonarqube는 Clean Code를 구현하기 위한 정적 코드 분석 도구입니다. Clean Code란 안전하고, 유지보수가 용이하며, 믿을 수 있는 코드를 뜻하는 Sonarqube에서 정의한 용어입니다. 즉 Sonarqube를 통해서 모범적인 소프트웨어를 만들기 위한 높은 수준의 코드 품질을 유지할 수 있다는 뜻입니다. 게다가 CI 파이프라인과의 통합으로 자동화된 코드 리뷰를 수행할 수 있으며, 스크립트나 IaC코드 또한 분석이 가능합니다. 이번 포스팅에서는 Sonarqube가 무엇인지, 그리고 Sonarqube의 구축 및 사용 방법을 알아보도록 하겠습니다. 1. 정적 코드 분석 vs 동적 코드 분석 앞서 Sonarqube는 정적 코드 분석을 위한 도구라고 말씀드렸습니다. 정적 코드 분석이란 어떠한 ..
Google Developer Experts가 되기 위한 과정을 모두 밟은 후, 이 과정에 대한 후기와 회고를 글로 남기기 위해 이 글을 포스팅합니다. 결과와 관계 없이 제 자신을 뒤돌아볼 수 있었던 좋은 경험이었으며, GDE 및 Googler와 소통할 수 있었던 귀중한 시간이었습니다. 이 글을 통해서 GDE가 되려는 분들께 도움이 되었으면 합니다. 1. GDE란? GDE는 Google Developer Expert의 약자로 특정 분야에 전문성을 가지고 있으며, 지식을 함께 공유하고자 하는 전문가를 말합니다. 자신이 가진 전문 분야에 따라 그 분야의 GDE로 활동할 수 있는데요. 현재는 Android, Firebase, Machine learning, Go, Flutter, GCP 등의 18개 전문 분야..
유저들이 웹 사이트에 접속할때 주소를 입력하는 방법은 여러가지가 존재합니다. Google에 접속하고자 할때 누군가는 www.google.com으로 접속할 수도 있지만, 누군가는 그저 google.com 으로 접속하고는 합니다. 혹은 심지어 https://www.google.com 을 입력해서 접속하는 유저도 존재합니다. 이렇게 유저들이 다양한 방법으로 웹 사이트에 접속하지만, 웹 사이트를 운영하는 입장에서는 결국 하나의 엔드포인트로 접속을 유도해야 합니다. 유저들의 다양한 접속 주소에 모두 대응하는 것은 현실적으로 어렵기 때문입니다. 이 경우 모든 유저들의 접속 경로를 단일화하기 위해서 사용할 수 있는 방법이 페이지 리다이렉션입니다. 페이지 리다이렉션을 통해서 여러 유저들의 최종 접속 경로를 단일 엔드포..
EKS(Elastic Kubernetes Service)는 AWS에서 제공하는 관리형 쿠버네티스 서비스입니다. EKS는 다양한 방면에서 리소스를 관리해주기 때문에 쿠버네티스 클러스터를 편리하게 운영할 수 있는데요. 그 중 AWS VPC CNI는 overlay network를 간편하게 구성해주는 장점을 제공합니다. 본 포스팅에서는 AWS VPC CNI의 특징과 AWS VPC CNI Plugin을 설치한 EKS 클러스터의 운영 시 IP Address management 고려 사항에 대해서 기술하겠습니다. 1. AWS VPC CNI란? AWS VPC CNI는 AWS의 ENI(Elastic Network Interface)를 활용한 Pod networking plugin입니다. EKS 클러스터는 해당 CNI를 ..
2023년 7월 중순 경 Googke Kubernetes Engine을 주제로 입문자용 강의를 촬영해달라는 요청이 왔다. 강의 촬영은 받을때마다 부담을 떨치기가 쉽지 않은 요청이다. 언제든 수정할 수 있는 아티클과 달리, 강의는 한 번 촬영하면 번복할 기회 없이 영원히 남기 때문이다. 하지만 이번 강의는 실시간으로 진행되는 라이브 강의가 아니라는 점(굉장히 부담스럽다..), 그리고 약 150분 가량의 비교적 짧은 강의라는 점 덕분에 부담이 적게 느껴져 수락하게 되었다. 그래서 약 2주간의 시간을 가지고 Google Kubernetes Engine 강의를 준비하게 되었다. 강의를 준비하기 위해 가장 처음 했던 일은 리소스를 찾아보는 것이다. 다른 강의에서는 어떤 주제를 다뤘는지, GKE를 다뤄봤던 사람들이..
CLI(Command Line Interface)란 터미널을 통해 사용자와 컴퓨터가 상호작용하는 인터페이스를 말합니다. CLI는 그래픽을 통해 직관적으로 사용할 수 있는 GUI(Graphic User Interface)와 달리 명령줄로만 입력을 전달할 수 있다는 점이 불편할 수 있으나, 빠르고 가볍다는 장점으로 인해 현재에도 널리 사용되고 있습니다. 이런 CLI 환경에서 애플리케이션을 구동하기 위해 바이너리를 실행하는 것은 다소 불편할 수 있습니다. 왜냐하면 바이너리를 다른 설정으로 실행하고자 할시, 그 설정을 가진 버전으로 다시 빌드하고 실행해야 했기 때문인데요. 이 같은 문제를 해결하기 위해 "Command"라는 개념을 도입해 바이너리의 특정 로직을 실행하거나 구성 설정을 변경할 할 수 있습니다. ..
Linux는 리누스 토르발즈가 만들어 오픈소스로 배포한 UNIX 계열 운영체제입니다. 현재 수 대부분의 프로그램이 Linux 환경에서 실행되고 있다고 할 수 있을 정도로 Linux는 현대 IT 생태계에서 중요한 위치를 차지하고 있는데요. 하지만 정작 Linux의 동작 원리에 대해서는 모르고 사용하는 경우가 많은 것 같습니다. Linux를 잘 사용하고 다루기 위해서는 Linux의 핵심인 커널에 대해서 파악하고 있어야 합니다. 특히 네트워크 인프라를 다뤄야 하는 엔지니어는 Linux 커널을 모르고서는 트러블슈팅이나 디버깅에 큰 제약이 있을 수 밖에 없을 것 입니다. 그렇다면 Linux 커널의 동작은 어떻게 파악할 수 있을까요? 그 시작은 Linux 프로세스가 실행될때 커널에서 어떤 일이 일어나는지 확인하는 ..