본문 바로가기

전체 글27

2. Docker란 1. 질문으로 알아보는 도커 💡 도커가 컨테이너 자체인가? A) 도커는 컨테이너 기술에 여러 기능을 추가한 오픈소스 프로젝트이다. 컨테이너 - 사전적 의미 어떤 물체를 격리하는 공간 각각의 컨테이너를 격리된 상태로 다른 컨테이너들과 분리 컨테이너 - 기술적 의미 컨테이너의 담긴 것들의 라이프 사이클을 관리한다. 즉, 컨테이너의 담긴 무언가의 생성 → 운영 → 제거까지 라이프 사이클 관리 ex) 스프링의 Servlet Container, Ioc Container, Bean Container 💡 가상화 관점에서 컨테이너란? A) 이미지에 따라 생성된 프로세스 단위의 격리환경이다. 즉, 컨테이너는 프로세스를 실행하기 위한 환경을 제공하고, 프로세스의 생명주기를 관리한다. 💡 spring boot와 Nginx를.. 2023. 11. 28.
1. Docker의 등장 배경 들어가기 전에 지난 2년이 조금 안 되는 시간 동안 현업에서도 개인적으로도 docker를 사용해 왔다. 그럼에도 내가 도커를 잘 아는가 확신할 수 없다. 도커는 사용하기 쉽다. 반면 기반 지식이 없이 도커가 무엇인지 설명하기 어렵다. 게다가 컨테이너 환경의 필요성을 모른다면 '도커가 굳이 왜 필요한가?'라고 생각할 수도 있다. 도커뿐만 아니라 어떠한 문제를 해결하기 위해 등장한 모든 기술이 그러하다고 생각한다. RDB와 OOP의 패러다임 불일치를 극복하기 위해 등장한 ORM 브라우저의 DOM API 헨들링의 한계를 극복하기 위해 등장한 SPA 프레임워크 온프레미스 (On-premise) 환경의 불편함을 극복하기 위해 등장한 클라우드 서비스 … 도커를 제대로 이해하기 위해서는 아래와 같은 기반 지식이 있어.. 2023. 11. 28.
kakao 엔터 FE 기술블로그 - 마법소녀 이세계 아이돌 웹툰 런칭! BFF 장애 대응기 원본 아티클 마법소녀 이세계 아이돌 웹툰 런칭! BFF 장애 대응기 | 카카오엔터테인먼트 FE 기술블로그 1. 이슈 요약 유명 스트리머 우왁굳의 버추얼 걸그룹 이세계 아이돌의 웹툰이 카카오페이지에 런칭하는 날 트래픽이 3배 이상 몰리게 되며 BFF 서버의 CPU가 100%를 찍는 장애가 발생하게 됩니다. 카카오 기술블로그에 설명된 글 2. 문제를 찾는 과정 점진적으로 문제 원인을 찾는 과정을 보여 준다. 2.1. 백엔드 API 자체의 문제(BFF 서버 외적인 문제) nGrinder를 사용하여 측정한 결과 백엔드 API 서버의 TPS가 BFF 서버 TPS 보다 10배가 빠른것을 알 수 있었다. 즉 API 서버 문제는 아니다. 2.2. 인프라적 문제(BFF 서버 외적인 문제) BFF의 인프라는 k8s를 사용.. 2023. 11. 27.
supabase supabase란? 참고: alternatives | supabase-vs-firebase 다양한 서비스 중에 데이터베이스를 대체하는 서비스이다. 백엔드에서 연동할 수 도 있지만 클라이언트에서 서버리스하게 사용할 수 있는 특징이 있다. 모바일의 firebase의 기능을 대체할 수 있는 서비스 라고 생각하면 이해하기 쉬울 것 같다. 다양한 클라이언트 프레임워크와 통합을 지원한다. 웹: React, Nextjs, Nustjs, SvelteKit, Vue … 모바일: Flutter, Android Kotlin, Swift … Postgresql을 기반으로 서비스된다. 완전한 오픈소스이며 내부적으로 다양한 오픈소스와 통합된다. 호스팅 솔루션을 제공하고 요금을 부과하는 방식을 가진다. (ex. 클라우드) 기본제공.. 2023. 11. 27.
7. Nginx 정리 마치며 정리의 이유 Nginx 시리즈는 21년도 12월에 사이드 프로젝트를 위해 정리했던 내용을 토대로 작성한 글이다. 요즘에는 AWS 프리티어 덕분에 Nginx를 직접 설치해서 사용하는 경우는 드물어 보인다. 나 또한 사이드 프로젝트 이후 지난 2년간 현업에서도 개인적으로도 Nginx를 설치하여 사용한 적은 없었다. 그렇다면 'Nginx 지식은 현재 중요하지 않을까?' 적어도 내겐 아니었다. 현업에 들어가기 전, AWS 사용해 보기 전 Nginx를 사용해 본 경험은 내게 큰 시야를 가져다주었기 때문이다. 그리고 지금부터 내가 얻은 큰 시야에 대해 얘기해 보려 한다. 웹 서비스 인프라 웹 서비스를 제공하기 위한 인프라는 복잡하며, 회사에 따라 서비스에 따라 조금씩 다른 구조를 가진다. 하지만 아무리 다르다고 하.. 2023. 11. 21.
6. HTTP 부하 분산을 위한 설정 방법 1. Nginx에서 제공하는 HTTP 부하 분산 기능 (with LB) Nginx는 여러 알고리즘과 느린 시작 및 세션 지속성과 같은 고급 기능을 사용하여 웹 또는 애플리케이션 서버 그룹에서 HTTP 트래픽 부하 분산을 지원한다. *Nginx는 오픈소스이지만 유료버전인 Nginx plus가 따로 존재한다. 그리고 로드밸런시 기법중 일부는 유료버전인 Nginx plus에서만 지원한다. 때문에 본문에서는 오픈소스 Nginx에서 사용할 수 있는 기법만 정리한다. 2. 서버 그룹에 대한 HTTP 트래픽 프록시 Nginx의 HTTP 트래픽 로드 밸런싱(이하 L7)을 사용하려면 먼저 http 컨텍스트 하위 지시문으로 upstream 블록을 사용하여 그룹을 정의해야 한다. ( AWS ALB의 Target Group와.. 2023. 11. 5.