반응형 분류 전체보기80 [Linkerd] 서킷 브레이킹 (Circuit Breaking) 서킷 브레이킹이란?서킷 브레이킹은 분산 시스템에서 서비스 간의 의존성과 가용성을 보장하기 위한 중요한 패턴 중 하나이다. 일반적으로 분산 시스템에서는 다양한 서비스들이 서로에게 의존하면서 동작한다. 이때, 하나의 서비스의 장애가 전체 시스템에 영향을 미칠 수 있기 때문에 각 서비스의 상태를 모니터링하고, 장애가 발생한 서비스에 대해서는 다른 대체 서비스를 호출하도록 구성하게 된다. 서킷 브레이커는 이러한 대체 서비스 호출을 처리하는 데에 있어, 서비스 간 연결을 관리하는 역할을 담당한다. 서비스 장애 상황 시 호출이 지연 또는 실패할 경우 서킷 브레이커는 장애 서비스를 일정 기간 동안 엔드포인트에서 제거하고 서비스의 상태가 정상으로 회복되기를 기다린다. 이때, 장애 서비스에 대한 호출은 다른 서비스로 라.. 2023. 4. 19. [Linkerd] 버전 업그레이드 이번 포스팅에서는 Linkerd 2.12.4 -> 2.13.1로 업그레이드하는 절차를 기록하려 한다. 버전이 올라가면서 Linkerd에서 사용하는 resource의 이름이나 스펙이 바뀌거나 한다면 이에 맞게 Helm values.yaml 파일을 다시 작성해야 할 수도 있고, Linkerd와 EKS 등 버전 호환성 문제를 고려해야 하는 상황이 필요할 수도 있다. 이 모든 내용은 release node를 통해 확인할 수 있기 때문에 먼저 release notes를 꼼꼼히 확인해야 한다. 아래는 공식 홈페이지에서 제공하는 업그레이드 시 주의사항이다. 다행히 2.12 -> 2.13 업그레이드 시 특별한 추가 Step은 없다는 걸 확인할 수 있다.업그레이드 관련 공식 홈페이지 참조: https://linkerd.. 2023. 4. 19. [Linkerd] 트래픽 Retry, Timeout linkerd는 ServiceProfile이라는 CRD를 사용하여 경로별 Retry, Timeout 설정을 할 수 있다. Retry서비스가 클라이언트의 요청을 받아 처리하는데, 요청이 실패할 경우 다시 보내는 기능이다.가끔 요청이 실패할 경우 다시 보내어 클라이언트 기준 요청 성공률을 높일 수 있다. 하지만 클라이언트가 과도하게 재시도를 수행하면 서비스는 이를 처리하지 못하고 과부하 상태 및 잠재적인 장애 증상을 일으킬 수 있음에 주의해야 한다. Timeout서비스의 요청 처리 시간이 일정 시간 이상 걸릴 경우 해당 요청을 종료하는 기능이다. 클라이언트와 서버와의 통신이 끊어져 있거나 지연되고 있는 상황에서 클라이언트가 무한정 기다리는 것을 방지할 수 있다. 하지만 처리 중인 요청을 종료하여 문제를 일.. 2023. 4. 19. [Locust] 란? 개념부터 실습까지 Locust란?Locust는 Python으로 작성된 오픈소스 부하테스트 도구이다. Locust를 사용하면 분산 시스템에서 여러 사용자를 시뮬레이션하여 웹 애플리케이션의 성능을 측정할 수 있다. 또한 매우 사용하기 쉽고 확장성이 뛰어나며, 사용자 시나리오를 코드로 작성할 수 있어 유연성이 높고, 대시보드를 통해 실시간으로 테스트 결과를 모니터링할 수 있어 테스트 중에 성능 이슈를 발견하고 조치할 수 있다. 이번 포스팅에서는 docker-compose를 이용해 구성하고, master 1개 worker 3개로 구성한다.worker는 Locust 테스트를 수행하는 역할을 담당하며, master는 Locust 웹 인터페이스를 제공하고, worker에서 수행한 결과를 수집하여 테스트 결과를 종합하고, 그 결과를 웹.. 2023. 4. 16. [Kubernetes] Pod의 Graceful 한 종료 쿠버네티스에서 Pod의 Graceful 한 종료는 컨테이너와 애플리케이션의 안정성과 데이터 일관성을 보장하는 중요한 부분이다. 만약 Graceful 한 종료를 하지 않는다면, 강제로 컨테이너를 종료하는 것이기 때문에 실행 중인 작업을 완료하지 못하고 중단될 수 있고, 종료 전 Pod에서 일어나는 작업이 불완전한 상태로 남아 데이터 일관성과 안정성을 잃을 수 있다. 따라서, Graceful 한 종료는 Pod을 안정적으로 관리하고 운영상의 이슈를 방지하는 데 매우 중요하다.이를 위해서는 Pod의 종료 과정을 이해하고, 필요한 설정을 적용하여 Graceful 한 종료를 할 수 있도록 해야 한다.Graceful 한 종료란?Pod가 종료되기 전에 현재 진행 중인 작업들을 완료하고, 요청을 처리하는데 필요한 시간을.. 2023. 4. 15. [Keycloak] + Vault 연동 SSO(Single Sign-On) 구현하기 이번 포스팅에서는 Keycloak과 Vault를 연동하여 SSO를 구현하는 실습을 다룬다. SSO(Single Sign-On)는 여러 시스템에서 사용되는 로그인 정보를 중앙에서 관리하여 사용자가 여러 번 로그인하는 번거로움을 줄여준다. 이를 구현하기 위해 Keycloak과 Vault의 OIDC(OpenID Connect) 설정을 이용하여 Keycloak에 등록된 사용자로 Vault에 로그인해 볼 것이다.OIDC(OpenID Connect)란?- OAuth 2.0 기반으로 하는 인증 프로토콜 중 하나로, 사용자 인증과 권한 부여를 처리하는 프로토콜. Keycloak과 Vault 연동 후 SSO 로그인 시 아래와 같이 동작한다. 실습 환경은 이전에 구성하였던 [Keycloak 이란? 개념과 설치 실습] .. 2023. 4. 12. [Amazon EKS] Security Group 최소 규칙으로 안전하게 기업에서는 보안 강화를 위해 최소한의 규칙으로 운영함으로써 잠재적인 보안 위협을 줄이기 위해 노력한다.이를 위해서는 꼭 필요한 인바운드/아웃바운드 규칙을 설정해야 하며, 이를 통해 높은 보안 수준을 유지할 수 있다. 이번 포스팅에서는 내가 경험했던 AWS EKS Security Group 최소 규칙으로 보안 그룹을 설정하는 과정을 기록해보고자 한다. EKS 클러스터를 생성하면 Amazon EKS에서 eks-cluster-sg-{my-cluster-uniqueID}라는 보안 그룹을 만드는데, 이 보안 그룹에는 아래와 같이 기본 규칙이 설정되어 있어 모든 IP 주소에서 클러스터로의 모든 트래픽을 허용한다.규칙 유형프로토콜포트소스대상 주소인바운드모두모두자체 아웃바운드모두모두 0.0.0.0/0 (IPv4) or.. 2023. 4. 11. 이전 1 ··· 7 8 9 10 11 12 다음 728x90 반응형