본문 바로가기

인프라,데이터

(49)
당신이 새 AWS 계정의 DB에 연결할 수 없는 이유 *주의 : 네트워크 알못의 삽질-깨달음의 과정입니다. 이 글을 읽는 여러분은 "너무 당연한 거 아닌가... 이걸 몰라...? 하실 수 있습니다." 새로 토이프로젝트를 시작합니다. 설레는 마음으로 AWS 계정을 생성합니다. 보안 수칙을 지켜야 하니까, 디폴트 VPC 말고 새로 VPC를 만들고, 인터넷 게이트웨이가 없는 프라이빗 서브넷을 2가지 존에 만들고, 인터넷 게이트웨이가 있는 퍼블릭 서브넷을 2가지 존에 만듭니다. 프라이빗 서브넷에서 요청이 밖으로 나갈 수 있도록 Nat Gateway를 만들어 퍼블릭 서브넷에 둡니다. 여기까지 하면 대략 이런 구성이 됩니다. 프라이빗 서브넷에 DB와 서버를 놓고, DB와 서버는 서로 보안그룹 등을 통해 통신하게 하고, 프라이빗 서브넷의 서버는 인터넷 망으로 요청이나 ..
AWS NLB에 SG를 붙일 수 있다고? 보호되어 있는 글입니다.
VSCode+Dev-Container로 Argo-Workflows 설치하기 Argo-Workflows 쿠베에서 병렬 job을 오케스트레이팅하는 컨테이너-네이티브한 오픈 소스 워크플로우 엔진이다. kubernetes CRD(Custom Resource Definition)으로 구현된다. 워크플로우의 각 단계가 컨테이너인 워크플로우를 정의한다. 여러 단계의 워크플로우를 일련의 작업(task)으로 모델링하거나 DAG를 이용하여 순서가 있는 작업을 실행할 수 있다. 컴퓨팅 리소스를 많이 사용하는 머신러닝/데이터 처리 작업을 쉽게 빠른 시간 안에 돌릴 수 있다.. 고 하는데 이건 젠킨스/Airflow 등에 비해서 얼마나 좋은지는 지표를 따로 찾아봐야 할 듯 하다. Argo Workflows를 사용하는 이유 쿠버네티스에서 사용하기에 가장 인기 있는 워크플로우 실행 엔진이다. 가볍고, 확장..
AWS Elasticache service update를 하면 일어나는 일 최근 elasticache-20230315-001, 002 서비스 업데이트가 특정 Elasticache를 대상으로 업데이트 일정이 잡혔다. 이 업데이트는 Critical 한 등급이라 2023년 4월 22일 00시 59분 59초까지 직접 서비스 업데이트를 적용하지 않으면 AWS에서 강제 업데이트를 시켜버린다 (...) 그러면 무슨 일이 일어날까? Elasticache 콘솔을 보면 Endpoint가 있다. (노드의 개수와 클러스터 여부에 따라 여러 엔드포인트가 있다..) 예를 들어 Primary Endpoint나 Reader Endpoint로 요청을 보내면, 이 Endpoint는 각각 Redis Master와 Reader로 요청을 라우팅한다. 그리고 각 Master, Reader 노드에도 Endpoint가 ..
K6로 부하테스트 하기(도커, 쿠버네티스 환경) K6란? Grafana에서 만든 오픈 소스 부하테스팅 툴로, 성능 테스트를 쉽게 수행할 수 있다. 부하테스트를 통해 성능 테스트를 수행함으로써 시스템의 신뢰성을 높일 수 있다. K6+도커로 부하테스트 먼저 테스트용 스크립트를 만든다. import http from 'k6/http'; import { check } from 'k6'; export const options = { stages: [ { target: 200, duration: '30s' }, { target: 0, duration: '30s' }, ], }; export default function () { const result = http.get('https://test-api.k6.io/public/crocodiles/'); check..
퍼블릭/프라이빗 서브넷과 로드 밸런서 퍼블릭 서브넷과 프라이빗 서브넷이 어떻게 다른지 아시나요? 혹시 퍼블릭 서브넷에 위치한 로드 밸런서와 프라이빗 서브넷에 위치한 로드 밸런서는 뭐가 다른지 아실까요? 잘 모르시겠다면 이 글을 읽어보시면 좋을 것 같습니다! 인프라 분야로 일하지 않으면, 사실 퍼블릭 서브넷과 프라이빗 서브넷이 다르다는 건 알겠는데, 그게 어떻게 영향을 미치는지 잘 모를 수도 있으실 것 같아요. 간단히 말하면, VPC : AWS의 가상 네트워크 서브넷 : VPC의 네트워크 영역을 부분적으로 분할해 나눈 작은 부분 네트워크인데, 퍼블릭 서브넷은 인터넷에 바로 트래픽을 전송할 수 있고, 프라이빗 서브넷은 인터넷에 바로 트래픽을 전송할 수 없고, 퍼블릭 서브넷의 NAT Gateway를 통해 인터넷에 연결할 수 있다는 점이 다릅니다...
Metricbeat로 Logstash 모니터링하기 Kafka -> Logstash -> ES 의 데이터 파이프라인에서 Kafka lag이 심하게 생기는 현상이 발생했다. 어느 곳이 문젠지 알아보려면 Kafka, Logstash, ES 각각의 모니터링 지표가 필요하다. ES는 Kibana에서 모니터링을 활성화할 수 있는데, Logstash는 데이터독 agent로 연결하려다가 잘 안되어서 ES로 모니터링을 보내기로 했다. 참고 : https://www.elastic.co/guide/en/logstash/current/monitoring-with-metricbeat.html Collect Logstash monitoring data with Metricbeat | Logstash Reference [8.6] | Elastic In production envi..
Kubernetes 환경에서 Fluent Bit의 신뢰성 (tail input, s3 output) Fluent Bit를 테스트하고 로그 수집을 할 때 진작 이 수준으로 깊게 알았어야 했는데... 오늘에야 알게 된 내용 정리 1. Fluent Bit가 롤링 업데이트 되어도 Input 과정에서 로그 손실이 없을까? - Tail Input을 사용할 경우 fluent bit을 배포하기 위해 사용한 Daemonset은 기본적으로 노드별로 pod를 rolling update ** 현재 daemonset은 먼저 기존 pod를 삭제하고 새 pod를 생성함에 유의 ** fluent-bit-configmap.yaml [INPUT] Name tail Tag test.* Path /var/log/containers/test*.log DB /var/log/flb_test.db fluent bit는 input 플러그인에서 D..