전체 글
DevOps engineer interested in Kubernetes and AWS
-
Concept Grafana Mimir는 Prometheus에 대한 확장 가능한 롱텀 스토리지를 제공하는 오픈 소스 프로젝트로, 탁월한 확장성, 쉬운 설치 및 관리, 비용 효율적인 스토리지 솔루션을 특징으로 합니다. 핵심 강점 Easy to install and maintain Grafana Mimir는 모놀리식 모드에서 단일 바이너리로 실행됩니다. 이는 복잡한 종속성이나 추가 설정 없이 솔루션을 간편하게 시작할 수 있다는 것을 의미합니다. 또 Kubernetes 환경에서는 Helm 차트를 통해 손쉽게 배포할 수 있으며, 이는 클라우드 환경에서의 빠른 설치와 효율적인 관리를 가능하게 합니다. Massive scalability 일반적인 프로메테우스의 scale-out이 불가능한 단점을 보완하여 horiz..
[Mimir]What is Grafana Mimir?Concept Grafana Mimir는 Prometheus에 대한 확장 가능한 롱텀 스토리지를 제공하는 오픈 소스 프로젝트로, 탁월한 확장성, 쉬운 설치 및 관리, 비용 효율적인 스토리지 솔루션을 특징으로 합니다. 핵심 강점 Easy to install and maintain Grafana Mimir는 모놀리식 모드에서 단일 바이너리로 실행됩니다. 이는 복잡한 종속성이나 추가 설정 없이 솔루션을 간편하게 시작할 수 있다는 것을 의미합니다. 또 Kubernetes 환경에서는 Helm 차트를 통해 손쉽게 배포할 수 있으며, 이는 클라우드 환경에서의 빠른 설치와 효율적인 관리를 가능하게 합니다. Massive scalability 일반적인 프로메테우스의 scale-out이 불가능한 단점을 보완하여 horiz..
2023.05.10 -
Concept envoy xDS Sync는 Envoy 프록시가 동적으로 구성을 업데이트하고, 서비스 메시에서의 트래픽 관리를 최적화하는 과정을 의미한다. 여기서 xDS는 eXtensible Discovery Service의 약자로, Envoy 프록시와 구성 관리 시스템 간의 통신을 위한 일련의 프로토콜을 나타낸다. Envoy 프록시는 서비스 메시를 구성하는 요소로 마이크로서비스 간의 통신을 중개하고, 로드밸런싱, timeout, circuit breaker와 같은 기능을 제공한다. 이러한 기능을 수행하기 위해 Envoy 프록시는 자신의 구성 정보를 최신 상태로 유지해야한다. 여기서 xDS Sync는 다음과 같은 일련의 xDS 프로토콜을 통해 Envoy 프록시의 동적 구성을 가능하게 한다. LDS (Lis..
[Istio]Traffic Management - 무슨 일이 발생하는 건가?(envoy xDS Sync 이해하기)Concept envoy xDS Sync는 Envoy 프록시가 동적으로 구성을 업데이트하고, 서비스 메시에서의 트래픽 관리를 최적화하는 과정을 의미한다. 여기서 xDS는 eXtensible Discovery Service의 약자로, Envoy 프록시와 구성 관리 시스템 간의 통신을 위한 일련의 프로토콜을 나타낸다. Envoy 프록시는 서비스 메시를 구성하는 요소로 마이크로서비스 간의 통신을 중개하고, 로드밸런싱, timeout, circuit breaker와 같은 기능을 제공한다. 이러한 기능을 수행하기 위해 Envoy 프록시는 자신의 구성 정보를 최신 상태로 유지해야한다. 여기서 xDS Sync는 다음과 같은 일련의 xDS 프로토콜을 통해 Envoy 프록시의 동적 구성을 가능하게 한다. LDS (Lis..
2023.05.06 -
Concept 이 작업에서는 여러 버전의 마이크로서비스에 대한 동적 요청 라우팅을 구성하는 방법을 보여 준다. reviews 마이크로서비스에는 세 가지 버전이 있으며, 동시에 실행 중이다. 이 중 도서 리뷰에 별점이 포함된 경우(v2,v3)와 포함되지 않은 경우(v1)가 번갈아가며 나타나고 있다. Istio는 명시적으로 라우팅할 기본 서비스 버전이 없기 때문에 가능한 모든 버전에 대한 요청을 라운드 로빈 방식으로 라우팅한다. 이 작업의 목표는 모든 트래픽을 마이크로서비스의 v1로 라우팅하는 규칙을 적용하는 것이다. AS-IS: v1, v2, v3이 RR 방식으로 라우팅 productpage를 통해 접속하면 아래와 같이 리뷰 부분이 v1,v2,v3으로 돌아가며 나온다. TO-BE: reviews-v1 서비..
[Istio]Traffic Management - Request Routing(동적 요청 라우팅 구성하기)Concept 이 작업에서는 여러 버전의 마이크로서비스에 대한 동적 요청 라우팅을 구성하는 방법을 보여 준다. reviews 마이크로서비스에는 세 가지 버전이 있으며, 동시에 실행 중이다. 이 중 도서 리뷰에 별점이 포함된 경우(v2,v3)와 포함되지 않은 경우(v1)가 번갈아가며 나타나고 있다. Istio는 명시적으로 라우팅할 기본 서비스 버전이 없기 때문에 가능한 모든 버전에 대한 요청을 라운드 로빈 방식으로 라우팅한다. 이 작업의 목표는 모든 트래픽을 마이크로서비스의 v1로 라우팅하는 규칙을 적용하는 것이다. AS-IS: v1, v2, v3이 RR 방식으로 라우팅 productpage를 통해 접속하면 아래와 같이 리뷰 부분이 v1,v2,v3으로 돌아가며 나온다. TO-BE: reviews-v1 서비..
2023.05.06 -
Concept Istio의 트래픽 라우팅 규칙을 사용하면 서비스 간의 트래픽 및 API 호출 흐름을 쉽게 제어할 수 있다. Istio는 circuit breakers, timeouts, retries같은 서비스 수준의 구성을 간소화하며, A/B 테스트, 카나리 배포 및 퍼센트 기반 트래픽 분할과 같은 작업을 쉽게 설정할 수 있다. Istio의 트래픽 관리 모델은 서비스와 함께 배포되는 Envoy 프록시에 의존한다. 메시 서비스가 보내고 받는 모든 트래픽(data plane traffic)은 Envoy를 통해 프록시된다. 이를 통해 서비스를 변경하지 않고 메시 내에서 트래픽을 직접 제어하고 관리할 수 있다. 서비스 메쉬 성숙도 모델 아래 그림의 화살표 순으로 고도화된 서비스 메쉬를 완성해갈 수 있다. Ku..
[Istio]Traffic Management - OverviewConcept Istio의 트래픽 라우팅 규칙을 사용하면 서비스 간의 트래픽 및 API 호출 흐름을 쉽게 제어할 수 있다. Istio는 circuit breakers, timeouts, retries같은 서비스 수준의 구성을 간소화하며, A/B 테스트, 카나리 배포 및 퍼센트 기반 트래픽 분할과 같은 작업을 쉽게 설정할 수 있다. Istio의 트래픽 관리 모델은 서비스와 함께 배포되는 Envoy 프록시에 의존한다. 메시 서비스가 보내고 받는 모든 트래픽(data plane traffic)은 Envoy를 통해 프록시된다. 이를 통해 서비스를 변경하지 않고 메시 내에서 트래픽을 직접 제어하고 관리할 수 있다. 서비스 메쉬 성숙도 모델 아래 그림의 화살표 순으로 고도화된 서비스 메쉬를 완성해갈 수 있다. Ku..
2023.05.06 -
💡Environment Client Version: v1.24.0 Kustomize Version: v4.5.4 Server Version: v1.24.12-eks-ec5523e Namespace: bookinfo으로 변경 후 진행 Deploy sample application # inject envoy proxy kubectl label namespace bookinfo istio-injection=enabled # apply bookinfo application kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml -n bookinfo # veryfy deploy ➜ kubectl exec "$(kubectl get pod -l app=rati..
[Istio]Deploy bookinfo sample application to demonstrate various Istio features💡Environment Client Version: v1.24.0 Kustomize Version: v4.5.4 Server Version: v1.24.12-eks-ec5523e Namespace: bookinfo으로 변경 후 진행 Deploy sample application # inject envoy proxy kubectl label namespace bookinfo istio-injection=enabled # apply bookinfo application kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml -n bookinfo # veryfy deploy ➜ kubectl exec "$(kubectl get pod -l app=rati..
2023.04.23 -
Download istio version 1.17 아래에서 kubernetes 와 호환 버전 확인하고 설치를 진행한다 https://istio.io/latest/docs/releases/supported-releases/#support-status-of-istio-releases 💡Environment Client Version: v1.24.0 Kustomize Version: v4.5.4 Server Version: v1.24.12-eks-ec5523e # download curl -L https://istio.io/downloadIstio | > ISTIO_VERSION=1.17 sh - # symbolic link cd istio-1.17.2 ln -s istio-1.17.2 istio # path..
[Istio]Install Istio with istioctlDownload istio version 1.17 아래에서 kubernetes 와 호환 버전 확인하고 설치를 진행한다 https://istio.io/latest/docs/releases/supported-releases/#support-status-of-istio-releases 💡Environment Client Version: v1.24.0 Kustomize Version: v4.5.4 Server Version: v1.24.12-eks-ec5523e # download curl -L https://istio.io/downloadIstio | > ISTIO_VERSION=1.17 sh - # symbolic link cd istio-1.17.2 ln -s istio-1.17.2 istio # path..
2023.04.23 -
Istio란 무엇인가? Istio는 여러 서비스들을 서로 연결하고, 보호하며, 모니터링하는 기능을 제공하는 오픈소스 도구입니다. 간단하게 말하면, 여러 서비스들 사이에서 통신하는 방식을 효과적으로 관리해주는 도구입니다. Istio는 어떻게 동작하나요? Istio는 크게 두 가지 주요 부분으로 구성됩니다. 데이터 평면(Data Plane): 서비스들 간의 통신을 관리하는 부분입니다. 'Envoy'라는 특별한 프록시가 이 부분에서 활동하며, 이 Envoy는 서비스들 사이에서 데이터를 전송하는 도로와 같은 역할을 합니다. 또한, 이 데이터를 기록하고 분석해주기도 합니다. 제어 평면(Control Plane): Envoy 프록시를 제어하는 부분입니다. 어떤 서비스로 데이터를 보낼지, 어떻게 데이터를 보낼지 등을..
[Istio]What is Istio?Istio란 무엇인가? Istio는 여러 서비스들을 서로 연결하고, 보호하며, 모니터링하는 기능을 제공하는 오픈소스 도구입니다. 간단하게 말하면, 여러 서비스들 사이에서 통신하는 방식을 효과적으로 관리해주는 도구입니다. Istio는 어떻게 동작하나요? Istio는 크게 두 가지 주요 부분으로 구성됩니다. 데이터 평면(Data Plane): 서비스들 간의 통신을 관리하는 부분입니다. 'Envoy'라는 특별한 프록시가 이 부분에서 활동하며, 이 Envoy는 서비스들 사이에서 데이터를 전송하는 도로와 같은 역할을 합니다. 또한, 이 데이터를 기록하고 분석해주기도 합니다. 제어 평면(Control Plane): Envoy 프록시를 제어하는 부분입니다. 어떤 서비스로 데이터를 보낼지, 어떻게 데이터를 보낼지 등을..
2023.04.23 -
성능 테스트 목적 성능 테스트는 시스템이 특정 상황에서 얼마나 잘 작동하는지 확인하기 위한 테스트입니다. 이 테스트를 통해 시스템의 한계와 필요한 리소스를 파악할 수 있습니다. 최대 TPS는 어느정도 인지? - 최대 TPS를 파악한 뒤 WAS의 work thread 개수를 설정한다. - work thread와 active user수를 일치시키면 최적의 TPS를 이끌어 낼 수 있다. - TPS = Active User / Response Time 시스템 리소스는 얼마나 필요한지? 성능 측정 ↔ 결함 검출 ↔ 병목 제거 ↔ 용량 검증 - 반복 성능 측정 시스템이 운영 전에 적정한 성능을 내는지 확인 결함 검출 시스템 운영 상태에서 나타날 수 있는 문제를 사전에 진단 병목 제거 검출된 결함에 대한 조치 진행 ..
[성능테스트]성능 테스트의 목적 / 종류 / 지표 / 용어 정리성능 테스트 목적 성능 테스트는 시스템이 특정 상황에서 얼마나 잘 작동하는지 확인하기 위한 테스트입니다. 이 테스트를 통해 시스템의 한계와 필요한 리소스를 파악할 수 있습니다. 최대 TPS는 어느정도 인지? - 최대 TPS를 파악한 뒤 WAS의 work thread 개수를 설정한다. - work thread와 active user수를 일치시키면 최적의 TPS를 이끌어 낼 수 있다. - TPS = Active User / Response Time 시스템 리소스는 얼마나 필요한지? 성능 측정 ↔ 결함 검출 ↔ 병목 제거 ↔ 용량 검증 - 반복 성능 측정 시스템이 운영 전에 적정한 성능을 내는지 확인 결함 검출 시스템 운영 상태에서 나타날 수 있는 문제를 사전에 진단 병목 제거 검출된 결함에 대한 조치 진행 ..
2023.03.01 -
Terraform에는 명명된 값을 요청하거나 게시하기 위한 몇 가지 종류의 블록이 포함되어 있습니다. Input Variables 는 Terraform 모듈의 매개변수 역할을 하므로 사용자는 소스를 편집하지 않고도 동작을 커스터마이징할 수 있습니다. Output Values 은 Terraform 모듈의 반환(return) 값과 같습니다. Local Values 은 표현식에 간단한 이름을 지정할 수 있는 편리한 기능입니다. 테라폼의 Local Values(지역 변수)란? 테라폼에서는 값(value)을 다루기 위한 다양한 방법이 있습니다. 여기서는 그 중 'Local Values'라는 것에 대해 알아보겠습니다. Local Values란, 테라폼 코드 내에서 반복하여 사용되는 값을 간편하게 표현하기 위해 만든..
[Terraform]테라폼 Local Values 사용법Terraform에는 명명된 값을 요청하거나 게시하기 위한 몇 가지 종류의 블록이 포함되어 있습니다. Input Variables 는 Terraform 모듈의 매개변수 역할을 하므로 사용자는 소스를 편집하지 않고도 동작을 커스터마이징할 수 있습니다. Output Values 은 Terraform 모듈의 반환(return) 값과 같습니다. Local Values 은 표현식에 간단한 이름을 지정할 수 있는 편리한 기능입니다. 테라폼의 Local Values(지역 변수)란? 테라폼에서는 값(value)을 다루기 위한 다양한 방법이 있습니다. 여기서는 그 중 'Local Values'라는 것에 대해 알아보겠습니다. Local Values란, 테라폼 코드 내에서 반복하여 사용되는 값을 간편하게 표현하기 위해 만든..
2023.02.09 -
Terraform에는 명명된 값을 요청하거나 게시하기 위한 몇 가지 종류의 블록이 포함되어 있습니다. Input Variables 는 Terraform 모듈의 매개변수 역할을 하므로 사용자는 소스를 편집하지 않고도 동작을 커스터마이징할 수 있습니다. Output Values 은 Terraform 모듈의 반환(return) 값과 같습니다. Local Values 은 표현식에 간단한 이름을 지정할 수 있는 편리한 기능입니다. 2023.02.07 - [IaC/Terraform] - [Terraform]테라폼 Input Variables 사용법 2023.08.14 - [IaC/Terraform] - [Terraform]테라폼 Output Values 사용법 2023.02.09 - [IaC/Terraform] -..
[Terraform]테라폼 Input Variables 사용법Terraform에는 명명된 값을 요청하거나 게시하기 위한 몇 가지 종류의 블록이 포함되어 있습니다. Input Variables 는 Terraform 모듈의 매개변수 역할을 하므로 사용자는 소스를 편집하지 않고도 동작을 커스터마이징할 수 있습니다. Output Values 은 Terraform 모듈의 반환(return) 값과 같습니다. Local Values 은 표현식에 간단한 이름을 지정할 수 있는 편리한 기능입니다. 2023.02.07 - [IaC/Terraform] - [Terraform]테라폼 Input Variables 사용법 2023.08.14 - [IaC/Terraform] - [Terraform]테라폼 Output Values 사용법 2023.02.09 - [IaC/Terraform] -..
2023.02.07 -
개요 Terraform은 각 provider가 제공하는 많은 리소스와 상호작용할 수 있다. Terraform Registry에서 원하는 provider를 찾은 뒤 사용 가능한 리소스를 정의하고 해당 리소스를 관리할 수 있다. 여기서는 aws provider의 resource(aws_instanace)와 data source(aws_ami)를 이용하여 최신버전의 ec2 instanace를 기동시킨다. Resource: aws_instance ubuntu instance 만들기 terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 4.0" } } } # Configure the AWS Provider provider "..
[Terraform]AWS Provider로 Ubuntu AWS EC2 Instance 만들기개요 Terraform은 각 provider가 제공하는 많은 리소스와 상호작용할 수 있다. Terraform Registry에서 원하는 provider를 찾은 뒤 사용 가능한 리소스를 정의하고 해당 리소스를 관리할 수 있다. 여기서는 aws provider의 resource(aws_instanace)와 data source(aws_ami)를 이용하여 최신버전의 ec2 instanace를 기동시킨다. Resource: aws_instance ubuntu instance 만들기 terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 4.0" } } } # Configure the AWS Provider provider "..
2023.02.05 -
Terraform Workspace란 무엇인가요? Terraform Workspace는 Terraform으로 인프라를 코드로 관리할 때 중요한 부분입니다. 이를 이해하기 위해서는 먼저 '상태'의 개념을 알아야 합니다. 상태 (State)란 무엇인가요? 테라폼을 사용하여 인프라를 변경하거나 관리할 때, 그 변경사항을 기록하는 파일입니다. .terraform.tfstate라는 파일에 이 정보가 저장되며, 이 파일을 통해 테라폼은 어떤 변경이 필요한지를 알 수 있습니다. 그리고 이 상태 파일을 기준으로 여러 프로젝트를 관리하는 것이 '워크스페이스'입니다. 그럼 테라폼 워크스페이스란? 워크스페이스는 **상태 관리의 '단위'**라고 볼 수 있습니다. 한 프로젝트 내에서 여러 개의 .tf 파일을 가진 디렉토리가 여..
[Terraform]테라폼 workspace 이해하기Terraform Workspace란 무엇인가요? Terraform Workspace는 Terraform으로 인프라를 코드로 관리할 때 중요한 부분입니다. 이를 이해하기 위해서는 먼저 '상태'의 개념을 알아야 합니다. 상태 (State)란 무엇인가요? 테라폼을 사용하여 인프라를 변경하거나 관리할 때, 그 변경사항을 기록하는 파일입니다. .terraform.tfstate라는 파일에 이 정보가 저장되며, 이 파일을 통해 테라폼은 어떤 변경이 필요한지를 알 수 있습니다. 그리고 이 상태 파일을 기준으로 여러 프로젝트를 관리하는 것이 '워크스페이스'입니다. 그럼 테라폼 워크스페이스란? 워크스페이스는 **상태 관리의 '단위'**라고 볼 수 있습니다. 한 프로젝트 내에서 여러 개의 .tf 파일을 가진 디렉토리가 여..
2023.02.04