분류 전체보기 (176) 썸네일형 리스트형 [DOIK 스터디 2기] CloudNativePG (PostgreSQL 오퍼레이터) 알아보기 및 간단한 실습 DOIK 스터디 2기 - 3번째 글로 PostgreSQL 오퍼레이터에 대해서 정리해본다. 공부하는 내용을 정리하는 글이라 부정확할 수 있음 주의 Kubernetes 상에서 Database를 운영하기 위해서는 Operator의 힘을 빌리면 많은 도움이 된다. CloudNativePG는 Kubernetes 환경에서 PostgreSQL을 손쉽게 관리할 수 있도록 도와주는 Operator이다. Operator 성숙도 레벨 모델에서 볼 수 있듯이, CloudNativePG는 Level 5이며 이는 제일 높은 성숙도를 자랑한다. CloudNativePG 주요 특징으로는 다음과 같다. - 고가용성을 위해 외부 툴 없이 Kubernetes AP와 직접 통합 - Primary 인스턴스가 장애 발생 시 자동 페일오버 지원.. [DOIK 스터디 2기] MySQL Operator on Kubernetes를 이해하기 위한 MySQL, InnoDB Cluster 개념과 MySQL Operator 구조 DOIK 스터디 2기 - 2번째 글 공부하는 내용을 정리하는 글이라 부정확할 수 있음 주의 Kubernetes에서 MySQL을 운영하기 위해서는 보통 MySQL Operator를 활용하게 된다. 이를 제대로 활용하기 위해서는 MySQL과 InnoDB Cluster에 대한 기본적인 개념과 이를 Kubernetes 상에서 관리하기 위한 MySQL Operator for Kubernetes 기본 개념, 그리고 Kubernetes에서의 StatefulSet, Headless Service 등을 이해하고 있어야 한다. 이러한 개념들을 이해하고 나면 MySQL Operator, InnoDB Cluster를 Kubernetes 상에서 배포하기 한층 더 쉬워지게 된다. 1. MySQL 8.0을 운영하기 위해 필요한 기.. [DOIK 스터디 2기] Kubernetes Operator 개념과 Database 관련 Operator 얕게 알아보기 가시다님 주관 DOIK(Database Operator In Kubernetes) 스터디를 참여하게 되었다. 이번 기회를 통해 Operator 패턴과 Database 및 DB 운영에 대한 지식을 많이 늘렸으면 좋겠다.. 1주차 과제로 Kubernetes Operator 개념과 Database 관련 Operator들을 간단하게 알아보고자 한다. 1. Kubernetes Operator? Operator란 무엇일까? 관리자란 뜻이다. 쿠버네티스 관리자라는 뜻인데 무엇을 관리한다는 걸까? Operator는 특정 대상(ex. DB, ..) 소프트웨어 운영 및 관리를 자동화하기 위한 방법론이다. DB 운영을 생각해보자. DB 운영을 하기 위해서는 다음의 운영들이 필요할 수 있다. - Master가 죽으면 Slav.. [AWS] 폐쇄망 EKS 환경에서 Squid Proxy를 활용하여 HTTP 아웃바운드 통신하기 1. 개요 페쇄망 환경에서 Squid Proxy를 통해 HTTP, HTTPS Proxy를 설정하는 방법에 대해 설명한다. 폐쇄망에서는 NAT Gateway나 NAT Instance를 사용하지 않기 때문에 내부에서 외부 인터넷망으로 접근이 불가능하다. 예를 들어 PG사에 결제한다거나 외부 택배사 모듈과 연동한다거나 등이 불가능한데, 이를 가능하게 하기 위해서는 1. Public Subnet에 프록시 서버를 구성하고 2. EKS Container에서는 프록시 서버를 통해 외부망에 접근함을 명시해줘야 한다. 필자는 Squid Proxy를 통해 폐쇄망에서 외부 인터넷망에 접근하도록 설정하였다. 2. Squid Proxy 설정 설치하는 방법은 인터넷에 아주 많이 나와있고 간단하기 때문에 설치 방법 설명은 생략한다.. [CloudFront] CloudFront Functions를 통해 간단히 인증 처리하기 1. 아키텍쳐 CluodFront를 통해 S3 Image를 다운로드 받을 경우 별도 인증 로직이 없다면 누구나 Download 받을 수 있다. 인증을 구현하는 방법은 다양하지만 CloudFront에 Function을 두어 Header를 검사하여 인증을 처리하도록 해보자. CF에 Image를 다운로드 받을 때 Authorization 헤더를 추가한다. 헤더 통과하면 S3로부터 이미지를 받아오게 된다. → 물론 CDN에 캐싱된 이미지가 있으면 바로 반환한다. Cloudfront Functions은 JavaScript로만 구현이 가능하다. 단순 요청 헤더에 Authorization header 값을 받아오고 이를 원하는 값과 비교하면 끝이다. 헤더가 없을 경우 [EKS] Data Transfer 비용 절감 작업 (istio destination rule, topology aware hints) EKS 상에서 Data Transfer 비용을 줄이기 위해 했던 노력들과 그 후기를 정리해본다. 결론을 말하자면 서비스 안정성이 더 우선이기에 Data Transfer 줄이기 위한 작업은 포기했다. 1. Data Transfer 발생 원인Data Transfer 비용은 크게 2가지에서 발생되었다. 1. NAT Gateway 비용 2. AZ 간 통신 비용 여기서 이제 Bytes 단위로 과금이 되는데 AZ 간 통신할 때 Network Bytes가 많으면 그만큼 과금이 된다고 보면 된다. 본 글에서는 AZ 간 통신 Data Transfer 비용에 대해서 다룬다.2. EKS에서 Data Transfer 절감 방안요즘 인터넷에 EKS에서 Data Transfer를 절감할 수 있는 다양한 방안들에 대해서 많이 소개.. [Loki] Python으로 Loki에 로그 보내는 방법 일반적으로 Promtail, Logstash, fluentBit 등을 통해 로그를 전송하는 방법이 일반적이다. 하지만 경우에 따라서는 별도 개발언어를 사용하여 커스텀하게 Loki로 Log를 전송할 수 있다. 당연히 Loki도 HTTP API를 지원하기에 API Spec에 따라 POST로 로그를 전송하면 되기 때문이다. https://grafana.com/docs/loki/latest/api/#push-log-entries-to-loki Grafana Loki HTTP API | Grafana Loki documentation Open source Grafana Loki HTTP API Grafana Loki exposes an HTTP API for pushing, querying, and tailing.. [CloudFront] S3 Object 변경 시 Cloudfront Invalidation 자동으로 수행하기 1. 개요 보통 정적 컨텐츠를 처리하기 위해 CloudFront와 S3를 연동하는 경우가 많다. 이럴 때 Bucket object를 변경하면 CloudFront의 Edge Location은 이를 알아차리지 못하는데 이럴 때 자동으로 변경된 Object를 자동으로 Invalidation 해주는 방법에 대해서 알아보자. 2. 방법 소개 1. 서버 혹은 사용자가 Bucket의 Image를 변경한다. 2. S3 Bucket에 ObjectCreation 이벤트가 발생 시 Lambda 함수를 Trigger 할 수 있다. 3. Lambda 함수를 Event를 전달받아 어떤 Object가 생성/변경되었는지 확인할 수 있다. 4. Object가 새로 생성되는 이벤트는 무시하며, Object가 변경되는 이벤트일 경우에만 .. 이전 1 ··· 3 4 5 6 7 8 9 ··· 22 다음