본문 바로가기

서버구축 (WEB,DB)299

Airflow Workflow 관리 고도화 및 문제 대응 기술적인 전략과 노하우 Apache Airflow를 통한 데이터 파이프라인 관리는 고도의 기술적 이해와 운영 노하우를 요구합니다. 실제 운영 과정에서 발견되는 다양한 문제들에 대한 체계적이고 실용적인 대응 방안은 시스템의 안정성을 보장하고, 효율적인 운영을 가능하게 합니다. 아래는 Airflow 운영을 고도화하고, 주요 문제에 대응하는 방안에 대한 종합적인 유형입니다. Airflow 운영 고도화 및 문제 대응 전략 1. 리소스 관리 최적화 동적 리소스 할당: Airflow의 동적 리소스 할당 기능을 활용하여, 실행 중인 Task의 수와 유형에 따라 필요한 리소스를 동적으로 할당합니다. 이를 위해 KubernetesExecutor를 사용하면, 각 Task에 필요한 CPU와 메모리를 Task 정의 시 지정할 수 있습니다. Airf.. 2024. 4. 11.
Nginx와 Keycloak 통한 애플리케이션 OIDC 메커니즘 클라이언트 인증 API 호출을 인증하는 여러 방법이 있지만, OAuth 2.0 인증 메커니즘이 주로 사용됩니다. 여기서 OAuth 2.0 액세스 토큰은 클라이언트로부터 API 서버로 전달되는 인증 자격 증명으로, 대개 HTTP 헤더로 운반됩니다. Keycloak은 OAuth 2.0의 확장인 OIDC를 지원하며, 클라이언트를 인증할 때 IdP(신원 제공자)로 작동합니다. IdP와 액세스 토큰의 유효성을 확인하는 표준 방법을 토큰 인트로스펙션(token introspection)이라고 합니다. Nginx는 OAuth 2.0 의존 파티로서, IdP에 액세스 토큰을 보내 유효성을 검사(토큰 인트로스펙션)하고, 검증을 통과한 요청만을 프록시합니다. 그렇다면 왜 Nginx에서 토큰 유효성 검사를 수행할까요? 각 백엔드 서비스나 애.. 2024. 4. 10.
n8n workflow 자동화 툴 운영 시 외부(서비스/시스템)에서 웹훅 호출 n8n은 자체 호스팅 가능한 워크플로우 자동화 도구로, Zapier와 유사하지만 오픈 소스로 제공됩니다. 이 도구를 사용하면 다양한 애플리케이션 간의 데이터를 쉽게 연동할 수 있으며, 특히 웹훅을 통한 자동화에 효과적입니다. 웹훅은 WordPress, Ghost Blog, Mattermost, GitLab 등 다수의 애플리케이션이 지원하는 간단한 콜백 시스템입니다. 이러한 웹훅을 사용하면, 예를 들어 Ghost Blog에서 새로운 글이 게시되거나 업데이트될 때 지정된 URL로 JSON 데이터를 자동으로 전송할 수 있습니다. 웹훅 데이터를 받은 후 이를 다른 애플리케이션과 통합하려면 n8n과 같은 도구가 필요합니다. 예를 들어, Ghost Blog에서 오는 데이터를 Mattermost로 전송하려면, 단순히.. 2024. 4. 9.
PostgreSQL 효율적 연동을 위한 선택: PgBouncer vs Pgpool-II 비교 분석 PgBouncer를 PostgreSQL과 연동할 때, pg_hba.conf 파일에서 trust 인증 방식을 사용하는 것은 일반적으로 권장되지 않습니다. trust 인증 방식은 클라이언트의 주소나 호스트명만으로 접속을 허용하는 매우 느슨한 인증 방식입니다. 이는 로컬 네트워크 내에서 신뢰할 수 있는 환경에서만 사용해야 하며, 원격지에서는 보안 위험이 크게 증가합니다. 보다 안전한 방식으로 PgBouncer와 PostgreSQL을 연동하려면, 다음과 같은 접근 방식을 고려할 수 있습니다. 보안 인증 방식 사용: pg_hba.conf에서 md5, scram-sha-256, 또는 보다 강력한 암호화 기반 인증 방식을 사용합니다. 이 방식들은 사용자 이름과 비밀번호를 통한 인증을 필요로 하며, 특히 scram-s.. 2024. 4. 3.
HTTP 요청과 응답에 대한 캐싱 로직 정의 VCL (Varnish Configuration Language) Varnish Configuration Language (VCL) 코드는 특정 HTTP 요청과 응답에 대해 캐싱 로직을 정의하여 캐싱 동작을 조정하는 것입니다. Varnish에서는 기본적으로 모든 페이지를 캐시할 수 있는 가능성이 있지만, 실제로 캐시되는지 여부는 여러 조건에 따라 달라집니다. 이러한 조건에는 HTTP 헤더, 요청 메소드, 설정된 VCL 로직 등이 포함됩니다. 따라서 모든 페이지가 자동으로 캐시되는 것은 아니며, 다음과 같은 요소들이 캐시 여부를 결정짓습니다. HTTP 메소드: 일반적으로 GET 요청과 HEAD 요청만 캐시됩니다. POST나 PUT 같은 다른 요청 메소드는 기본적으로 캐시되지 않습니다. HTTP 헤더: Cache-Control, Pragma, Expires 등의 헤더는 응.. 2024. 3. 18.