배경 회사에 장애가 발생했었을 때 K8s로 돌아가고 있는 서비스들에 대해 가설을 나눴는데 제가 K8s에 대한 기본적인 개념들과 지식들이 얕다보니 잘못된 이야기들을 하는 순간들이 있었습니다. 쿠버네티스를 공부하기 위해서 강의까지 구매 했었지만 바쁜 일정들이 있어 미뤄두고 있었고 그렇게 계속 미뤄지다가 결국 문제가 생겼을 때까지 미뤄지게 되었습니다. 입사한 지 오래되지 않았지만 경력 개발자로서 제대로 대처하지 못한 점이 큰 충격이었고 이를 계기로 쿠버네티스의 핵심 개념과 동작 원리를 정리하여, 유사한 문제가 발생했을 때 효과적으로 대응할 수 있도록 필수 개념을 숙지하려고 합니다. 기본 아키텍처1. Control Plane클러스터 중앙 제어 시스템과 같은 역활을 하는 노드로 클러스터의 전반적인 상태를 유..
devops
어느날 아침에 출근하고 보니 앱이 계속 느려졌다는 문의가 들어오고 있었다. 이에 놀란 나는 헐레벌떡 에러로그 모니터링 시스템을 확인해봤고 낯선 에러 로그가 쌓여 있는 것을 확인할 수 있었다. 에러 로그에 있는 Trace 정보들을 통해 확인해보니 API 서버의 디비 커넥션 풀이 계속 끊기는 것을 확인할 수 있었고 좀 더 자세히 살펴보기위해 보기 위해 로드밸런서의 헬스체크를 확인해보니 한쪽 서버의 헬스 체크가 죽어 있었다... 피토하며 돌아가는 서버 헬스 체크가 죽어 있는 서버의 인스턴스는 위의 그림처럼 100%의 가까이 되는 CPU 사용률을 보이며 돌아가고 있었기에 빨리 연결을 끊고 원인을 파악해야 했다. 그래서 ssh 접속을 시도했지만 서버 과부하로 인해 내부에 접근할 수 없었고 그래서 어쩔 수 없이 인..
AWS에서 VPC란? 서버를 구축하는데 있어서 중요한 것은 배포도 있지만 배포한 서비스를 외부 공격에 있어서 안전하게 설계하는 것도 중요하다. 그래서 핵심 시스템은 네트워크 망을 분리시켜서 외부에 노출되지 않도록 설계를 해야된다. AWS는 이러한 네트워크 망을 쉽게 분리시키고 관리할 수 있도록 인터페이스를 제공해준다. AWS VPC 생성 1. VPC 설정 이름 태그(선택): VPC의 이름을 지정합니다. IPv4 CIDR 블록: 우리가 흔하게 알고있는 192.168.0.1형태의 IP를 어떤 방법으로 선택할 지 고르는 항목 IPv4 CIDR 수동 입력: 10.0.0.0/24로 설정하게 되면 10.0.0.0 ~ 10.0.0.255까지 IP를 사용할 수 있다. IPAM 할당 IPv4 CIDR 블록: AWS에서 ..
ECR 이란? 아마존에서 설명하는 ECR Amazon Elastic Container Registry(Amazon ECR)는 안전하고 확장 가능하고 신뢰할 수 있는 AWS 관리형 컨테이너 이미지 레지스트리 서비스입니다. Amazon ECR은 AWS IAM을 사용하여 리소스 기반 권한을 가진 프라이빗 리포지토리를 지원합니다. 따라서 지정된 사용자 또는 Amazon EC2 인스턴스가 컨테이너 리포지토리 및 이미지에 액세스할 수 있습니다. 원하는 CLI를 사용하여 도커 이미지, Open Container Initiative(OCI) 이미지 및 OCI 호환 아티팩트를 푸시, 풀 및 관리할 수 있습니다. 한마디로 도커 허브와 같은 컨테이너의 이미지를 관리하는 레지스트리 서비스 이다. 거기에 추가적으로 IAM(AW..
배포하기 프로젝트 형태 ├── docker │ ├── app_test.dockerfile │ ├── docker.sh │ └── source │ ├── backend │ │ ├── package.json │ │ └── server.js │ ├── frontend │ │ ├── package.json │ │ ├── public │ │ │ ├── favicon.ico │ │ │ ├── index.html │ │ │ └── manifest.json │ │ └── src │ │ ├── App.css │ │ ├── App.js │ │ ├── App.test.js │ │ ├── index.css │ │ ├── index.js │ │ ├── logo.svg │ │ ├── serviceWorker.js │ │ └── ..
Nginx란? 정적 파일을 서비스 해주는 경량 서버 static 한 파일(javascript, html, css, image) WebServer& API Gateway WebServer 클라이언트가 전달한 HTTP 요청에 따라 그에 대한 응답을 해주는 서버 url 요청에 따라 정적파일을 제공한다. API Gateway 클라이언트와 서버사이에서 중개자, 즉 대문 역활을 한다. 리버스 프록시, 로드밸런싱, SSL 보안, 접근 제한등의 역활을 함 Nginx는 Webserver 역활도 하지만 API Gateway 역활을 할 수 있다. Nginx 컨테이너 띄우기 1. Docker로 Nginx 이미지 내려받기 docker pull nginx:1.23 2. 테스트용 정적 html을 생성 Hello World 3. n..