
AWS EKS에서 Ingress의 구현체인 Controller로 AWS ALB를 사용할 수 있다. ALB를 사용함으로써, 인증서나 WAF와 같은 기능을 사용할 수 있으며, ALB에 대한 이중화나 용량에 대한 부분을 신경쓰지 않게 해준다. 현재 AWS ALB Ingress Controller는 AWS Load Balancer Controller로 프로젝트 이름이 변경되었다. 이 전에는 Classic Load Balancer, Application Load Balancer, Network Load Balancer에 해당하는 Ingress Controller가 별도로 존재 했으나, AWS Load Balancer Controller로 통합되어 관리되는 것으로 보인다. AWS Load Balancer Contr..

이 전에 Prometheus와 Thanos의 구조에 대해 가볍게 알아보았다. 이제 Kubernetes 환경에서 Prometheus와 Thanos를 사용해보도록 하자. kube-prometheus-stack Kubernetes에 경험이 있다면, Helm을 경험해보았거나 들어본 적 있을 것이다. 대부분의 소프트웨어는 Kubernetes 환경에서 Helm을 통한 배포를 지원한다. Prometheus 커뮤니티에서 Kubernetes 환경에서 Proemetheus를 사용하기 위한 일련의 기술들을 Stack화하여 Helm Chart를 개발, 유지중이다. https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack ..

Prometheus Prometheus는 CNCF에서 관리하는 오픈 소스 시스템 모니터링 및 경고 툴킷이다. Kubernetes에 이어 두 번째로 호스팅 프로젝트에 합류한 오픈 소스 프로젝트이다. Prometheus는 Grafana와 함께 시스템 모니터링쪽에서는 가장 사용량이 많은 프로젝트가 되었으며, 업계 표준(De facto)로 자리 잡았다. Prometheus의 특징은 아래와 같다. 풀 방식의 메트릭 수집, 시계열 데이터 저장 PromQL을 활용하여 저장된 시계열을 쿼리 및 집계 서비스 디스커버리 데이터 시각화 Alertmanager Architecture Prometheus Server : 직접 혹은 Push Gateway를 통해 구성된 작업에서 메트릭을 주기적으로 스크랩하고 저장 스크랩한 데이터..
토스팀 인프라 자동화의 시작 링크 사용자에게 새로운 서비스를 제공하기 위해서 서비스 존 별로 용도에 맞는 서버를 구축하고, 로드밸런서와 방화벽 설정 등 많은 준비가 필요하다. 인프라의 셋업은 규모 증가에 따라 비례하게 증가한다. 토스는 이러한 시간을 줄이기 위해 인프라 준비를 자동화하였다. 토스팀은 인프라 자동화의 목표를 아래와 같이 잡았다. 운영 업무 시간 감소 휴먼 에러 감소 형상의 최신화 이러한 자동화의 핵심은 정보와 운영 서비스의 통합이다. 담당자 별 엑셀과 같은 파일을 현황정보를 시스템으로 통합하고 운영시스템, 운영 서비스를 통합 운영 웹으로 통일한다. 자동화가 진행되는 세부 사항은 서버 배포 자동화, 네트워크 설정, LB 설정, 방화벽 설정, 형상 관리가 있다. 가장 핵심은 장비 단위로 반복되..

if kakao 2022를 보며 개인적으로 관심있던 세션들을 들으며 인상 깊었던 부분을 기록한 내용입니다. 세션 링크 발표 자료 Kakako i Cloud i Cloud는 쿠버네티스 엔진과 IAM 등 모든 리소스를 쿠버네티스로 배포하고 관리하고 있다. 그리고 이러한 리소스들을 서비스로 제공하기 위한 도구인 오픈스택도 쿠버네티스로 관리되고 있다. 오픈스택의 모든 서비스들을 쿠버네티스로 운영함으로써 쿠버네티스 네이티브한 관리가 가능해졌다. Cloud Native (CNCF) 클라우드 환경에서 실행되는 Scalable한 애플리케이션을 가능하게하는 기술 이를 확장한 Kubernetes Native란 쿠버네티스 환경에서 쿠버네티스 이점 중 가장 큰 요소인 선언적 관리가 가능한 기술을 말한다. Controler P..

최근 개인 프로젝트를 진행하는데, 현재 카카오클라우드스쿨의 2달짜리 최종 팀프로젝트가 2주가 안남은 상태이다. 그러다보니 아무래도 버전업에는 시간이 꽤나 걸릴 것 같아서 데모버젼을 남긴다. 개발 서버 구축 자동화 프로젝트 개발자들이 개발용 서버에 대한 요구 사항은 꾸준히 또 다양히 요구 될 것이라고 생각했다. 이러한 과정에서 서버 구축, 애플리케이션 빌드, 배포까지의 일련의 작업은 필연적으로 반복되는 부분이 있을 것 이라 생각하여 이 부분들을 자동화하고, 개발자들이 개발 외의 지식이 없다고 하더라도 일정 수준의 CI/CD를 사용할 수 있게 서비스를 제공한다. 아키텍처 사용자(사내 개발자)가 접근하기 위한 웹 서버와 API를 통해 개발 애플리케이션을 관리, 빌드, 배포할 수 있도록 한다. PipeLine ..

이번 글은 개인 프로젝트를 진행하다가 생긴 문제를 트러블 슈팅하는 전반적인 흐름을 담고 있습니다. 다소 맥락이 어지러우실 수 있습니다😅 문제 상황 쿠버네티스 클러스터 내에 Nexus Repository를 구축하여 Image 저장소로 사용. 기존 모든 컴포넌트는 http 통신을 사용하고 있었으나, Pulling시 default로 https를 사용하여 파드가 생성되지 않음. Docker의 insecure-registry 설정처럼 Containerd를 조작할 수 있겠지만, SSL를 붙여보기로 결정. nginx ingress controller는 nginx의 거의 모든 기능을 지원하는 것으로 알고 있으므로, 이를 통해 리버스 프록시를 사용하기로 함. NGINX Controller 인그레스는 클러스터 외부에서 클..

TLS와 SSL의 차이점 TLS는 Netscape가 개발한 SSL(Secure Sockets Layer)이라고 불리는 이전의 암호화 프로토콜의 업그레이드 버전이다. TLS 버전 1.0은 SSL 버전 3.1로서 개발을 시작했지만 Netscape와 더 이상 연관이 없음을 명시하기 위해 발표 전에 프로토콜의 이름이 변경 되었다. 실제로 TLS와 SSL은 빈번히 혼용되고 있으며, SSL/TLS의 오픈소스 프로젝트 명은 OpenSSL이다. SSL의 원리 SSL은 OSI 7계층 모델의 어느 한 계층에 속해서 동작하는 것이 아니라, 응용계층과 전송계층 사이에 독립적인 프로토콜 계층을 만들어서 동작하며, 응용 계층의 프로토콜들은 외부로 보내는 데이터를 TCP가 아닌 SSL에 보내게 되고, SSL은 받은 데이터를 암호화..