FastAPI log (2) -AWS EKS Fargate, 왜 Fluent Bit 인가?
·
탐구 생활/FastAPI Log
이 시리즈는 AWS EKS & FastAPI 환경에서 로그를 적용하는 과정을 다루고 있습니다. 전체 시리즈는 다음과 같습니다.- FastAPI log (1) - AWS EKS Fargate 환경에서 log 를 외부시스템에 보내기- FastAPI log (2) -AWS EKS Fargate, 왜 Fluent Bit 인가?- FastAPI log (3) - 설계, 구현- FastAPI log (4) - 개선하기 이전글 "AWS EKS Fargate 환경에서 log 를 외부시스템에 보내기" 에서 Fargate 내부에 Fluent Bit 에이전트가 기본적으로 설치되어 있으며, AWS가 제공하는 설정 방식에 따라 CloudWatch 등으로 로그를 전송할 수 있음을 설명했다.그러나 클라우드 환경에서 관측 데이터(t..
FastAPI log (1) - AWS EKS Fargate 환경에서 log 를 외부시스템에 보내기
·
탐구 생활/FastAPI Log
이 시리즈는 AWS EKS & FastAPI 환경에서 로그를 적용하는 과정을 다루고 있습니다. 전체 시리즈는 다음과 같습니다.- FastAPI log (1) - AWS EKS Fargate 환경에서 log 를 외부시스템에 보내기- FastAPI log (2) -AWS EKS Fargate, 왜 Fluent Bit 인가?- FastAPI log (3) - 설계, 구현- FastAPI log (4) - 개선하기 기존 모놀리식 서비스를 마이크로서비스 아키텍처로 전환하면서 AWS EKS(Fargate) 기반으로 운영하는 방안을 선택했습니다. 이 과정에서 Java & Spring 기반 서비스를 Python & FastAPI로 변경하는 것뿐만 아니라, EKS Kubernetes 환경에서 운영하는 방법을 익히는 것도..
FastAPI 의존성 주입, Depends 를 알아보자
·
탐구 생활/FastAPI
Spring 을 쓰다가 FastAPI 로 전환하면서 많은 것들이 의문이었지만 그중 가장 큰 것은 "Python 은 빌드되는게 아닌데 의존성 주입을 사용할 수 있나?" 였다. 그리고 그런 나에게 보란듯이 FastAPI 공식 문서에는 의존성 주입 파트가 있다.  이 글은 공식문서를 정독하고 정리하는 글 정도가 되겠다. 이미 어느정도 Depends 를 알고 있고, Depends 의 내부동작을 파악하고 싶다면 다음 글이 도움이 될 수도 있다.FastAPI 의존성 주입(Dependency Injection) 정리FastAPI는 의존성 주입(Dependency Injection, DI)을 통해 코드의 재사용성, 유지보수성, 테스트 용이성을 향상시킨다. 1. 기본 의존성 주입FastAPI에서 기본적인 의존성을 정의하..
오픈소스 초보자의 FastAPI 기여하기
·
탐구 생활/FastAPI
회사에서 FastAPI 로 전환을 하기에 FastAPI Document 를 보면서 공부중이었다. 한국어로 번역된 문서도 있는반면 영어 그대로인 문서들도 있었다. 왜일까? 하고 찾아보던중 FastAPI Github 에서 번역활동이 진행중이며, 한국인 번역 참여자는 16명 정도라는 것을 알게 되었다.  대학생때 수업 대부분을 영어로 들었고 점수도 나쁘지 않았다는 자신감에 그 번역, 내가 하면 되는거 아닌가 하는 생각이 들었다.1) 공부도 하고, 2) 비록 번역이지만 오픈소스에 기여도 해보고, 3) 한국어로 된 자료가 늘어나면 FastAPI 가 한국에 더 뿌리내릴수도 있고, 1석 3조의 전략이었다.첫번째 PR 을 위한 노력하지만 걸림돌이 하나 있었다. 오픈소스에 RP을 날리는 방법을 모른다. 그동안 Sprin..
FastAPI: fastapi-permissions 를 이용한 접근제어
·
탐구 생활/FastAPI
fastapi-permissionsfastapi-permissions는 Pyramid 프레임워크의 Pyraid Securiy 기능에서 영감을 받아 만들어진 라이브러리이다. 2024년 12월 기준으로 마지막 업데이트가 4년 전이어서 최신 FastAPI와의 호환성에 의문이 들지만, 접근 방식이 흥미로워 살펴보게 되었다. fastapi-permissions 가 갖는 주요 철학과 개념, 내구 동작 방식을 살펴본다.1. 주요 철학fastapi-permissions 가 FastAPI security 와는 다른 점은 scope 로 접근을 제어하는게 아니라 더 저수준에서 세밀하게 접근을 제어한다는 것이다. 그에따라 접근자의 권한뿐만 아니라 접근 하려하는 리소스의 상태에 따라서도 접근을 제어할 수 있다.2. 주요 개념F..
MSA 주요 패턴: 중앙화된 로그 집계 패턴
·
기초 지식/MSA
1. 중앙화된 로그 집계 패턴이란?마이크로서비스 아키텍처(MSA)는 독립적인 서비스로 구성되기 때문에 서비스별로 로그를 개별적으로 수집하면 문제를 추적하거나 디버깅하는 과정에서 복잡성과 비효율이 증가하기 마련이다. 중앙화된 로그 집계 패턴은 이러한 문제를 해결하기 위해, 분산된 서비스의 로그를 한 곳으로 수집하고, 분석 및 검색이 용이하도록 중앙화된 로그 시스템을 구축하는 전략이다.2. 왜 중앙화된 로그 집계가 필요한가?2.1. MSA 환경에서의 로그 관리의 어려움1 서비스 분산:MSA 환경에서는 수십에서 수백 개의 마이크로서비스가 각각 독립적으로 로그를 생성한다.이러한 로그를 각 서비스에서 확인하려면 많이 번거로워서 에러 발생 원인을 빠르게 찾기 어려워진다.2 장애 원인 추적:서비스 간 호출이 복잡해질..
MSA 전환을 위한 서비스 분리 전략
·
기초 지식/MSA
회사에서 Monolith 로 개발해오던 프로젝트들을 MSA 로 옮겨간다고 한다. 내가 맡아서 개발해온 프로젝트의 도메인 지식은 내가 가장 잘 알고 있다보니 이 프로젝트 만큼은 내가 도메인 분리를 맡게 될 것 같다...그래서 공부중이다.서비스 분리 전략 3가지 Key Point단계적으로 마이그레이션 한다.처음에는 크게 분리하고 추후 작게 분리한다.서비스 분리를 깔끔하게 나눠주는 마법같은 공식은 없다. (이 부분이 너무 슬펐다.)서비스 분리 8가지 원칙첫 번째 원칙: 작고 분리가 쉬운 서비스로 워밍업간단한 서비스를 분리하며 역량을 내재화.신규 개발 기능이나 내부 의존성이 적고, 중요도가 낮은 기능부터 시작.Pilot 서비스 분리의 기준:내부 의존성이 낮은 기능(Core 의존성, 데이터 의존성 적음).장애 발..
Terraform AWS: VPC 만들기
·
탐구 생활/Terraform
Terraform 을 이용하여 로컬 리소스를 다루는것도 의미가 있겠으나, 내가 Terraform 을 알아보기 시작한 이유는 클라우드 인프라를 재사용가능한 효율적인 형태로 다루고 싶기 때문이었다. 그 첫번째로 AWS 의 기본 리소스중 하나인 VPC 를 만들어보겠다.AWS VPC우선 지금부터 만들려고하는 AWS VPC 에 대한 개념과 이를 구성하는 세부 요소에 대해서 알아보고 왜 많고 많은 AWS 인프라 중에서 VPC 를 먼저 만들려고하는지 알아보자 VPC(Virtual Private Cloud) 란 AWS 클라우드 내에서 자신의 네트워크를 "논리적" 으로 격리하여 정의할 수 있는 가상 네트워크이다. 인터넷에 노출되면 안되는 리소스를 격리하여 보안에 필수적이며, 보안 그룹과 네트워크 ACL 를 활용하여 더욱..