이론 정리/인프라 11

쿠버네티스 기본 개념 간략정리

쿠버네티스 기본 개념노드의 개념마스터 노드클러스터를 관리한다.워커 노드파드가 실행된다.인그레스 노드클러스터 외부에서 클러스터 내부의 파드에 접근할 때 로드밸런서의 역할을 해준다.여기서 받아서 어떤 endpoint 로 가야할지를 판단해서 보내준다.쿠버네티스 리소스크게 오브젝트와 컨트롤러로 구성되어 있다.오브젝트네임스페이스, 파드, 서비스 등이 있다.네임스페이스클러스터 내부를 논리적 단위로 구분하여 사용할 수 있도록 해준다.네임스페이스를 사용하면 pod, controller, service, ingress 등 용도에 따라 실행해야 하는 애플리케이션을 하나의 클러스터 내에서 구분해서 사용할 수 있게 된다.클러스터를 실행하면 기본적으로 kube-system(시스템에서 관리하는 네임스페이스), default(사용..

배민 Kafka를 활용한 이벤트 기반 아키텍처 구축 보고 정리

https://www.youtube.com/watch?v=DY3sUeGu74M 이거 보고 정리이벤트 기반 아키텍처를 왜 구축했냐?배달 + 알림, 통계 등등...근데 알림이나 통계는 배달이랑 강한 일관성을 가지지는 않는다.둘을 같이 동시에 만족할 필요는 없음. (준 실시간성으로도 ㄱㅊ)즉 이는 결과적 일관성으로 만족할 수 있다. (이벤트를 통해 변경사항을 처리)그래서 이벤트는 어떤 정보를 가지고 있어야 했는가?여기서는 배달의 변경 사항을 잘 알려주는 것이다.4가지 구성요소 - 대상, 행동, 정보, 시간대상 : 식별자 정보 제공(배달이 A라이더에게 11시에 배차되었다)행동 : 이미 벌어진 사건이므로 과거형으로 표현(배달이 A라이더에게 11시에 배차되었다)정보 : 행위와 관련된 값들을 표현 (배달이 A라이더에..

L4, L7

L4, L7둘 다 네트워크에서 패킷을 처리하는 방법을 나타낸다.OSI 7계층을 알면 좋음.L4기능전송 계층에 해당한다.주로 TCP, UDP 를 사용해서 데이터를 전송한다.송신자와 수신자의 IP주소 및 포트 번호를 기반으로 네트워크 트래픽을 전달한다.로드 밸런싱L4 로드 밸런서는 트래픽을 IP주소와 포트 번호를 기준으로 분산한다.그래서 요청을 여러 서버에 고르게 분산시킬 수는 있지만 요청의 내용은(헤더나 데이터를 통한 확인) 검사하지 않는다.장점속도가 빠르고 비교적 간단한 처리다양한 종류의 트래픽(TCP/UDP 등) 처리 가능제한위에서 보듯 포트 번호를 기준으로 분산하고 헤더나 데이터 분석을 하지 않아서 애플리케이션 상태 혹은 사용자 세션에 기반한 로드 밸런싱은 어렵다.L7기능애플리케이션 계층에 해당한다...

쿠버네티스에서 말하는 Stateless가 뭘까?

쿠버네티스에서 말하는 Stateless가 뭘까?데이터 독립성상태가 없다 == 자체적으로 데이터를 저장하지 않는다.즉, 모든 트랜잭션이나 요청을 독립적으로 처리하며 이전 요청의 데이터를 보존하지 않는다.데이터는 주로 외부 DB, cache 혹은 다른 저장소에 저장된다.따라서 애플리케이션 파드는 재시작되거나 스케일 아웃되더라도 데이터 손실에 영향을 받지 않는다.수평 확장이 용이하다.파드간 상태 공유가 필요없기 때문에 오토스케일링이 쉽다.각각 파드의 요청 처리도 독립적으로 가능하다.유연한 배포 및 업그레이드애플리케이션 배포 및 업그레이드 시, 파드의 교체 시 유저에게 영향이 없다.간단하게 말하면 데이터 저장이나 이전 상태 유지를 하지 않는 애플리케이션을 의미한다.위의 장점을 정리하면독립성 : 이전 요청과의 연..

local VM에 fluent 구성하기!

local VM에 fluent 구성하기! 사전 준비 먼저 fluent 설치 이전에 ruby(3.0이상)과 bundler를 설치해야 한다. 밑준비 1. Ruby와 Passenger빌드에 필요한 헤더파일 설치 yum install openssl-devel readline-devel zlib-devel curl libyaml-devel2. Apache 설치 yum install httpd httpd-devel3. ImageMagick 설치 yum install ImageMagick ImageMagick-develruby 설치 1. local 위치로 들어가기 cd /usr/local2. 루비 tar파일 가져오기 wget http://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0...

네트워크 입문 002

study002 tags: Tag(IT엔지니어를 위한 네트워크 입문) 인터넷이 대중화된 이후 대부분의 기술이 이더넷 - TCP/IP기반이어서 기술이 점점 단순화되고 있지만 아직도 용도와 필요한 네트워크 속도에 따라 기술 요소들이 사용되고 있다. 이번에는 네트워크 연결 방법을 구분하고 네트워크 연결에 필요한 회선과 구성 요소를 알아본다. 네트워크 연결 구분 네트워크는 규모와 관리 범위에 따라 LAN, MAN, WAN 3가지로 구분된다. LAN(Local Area Network) 사용자 내부 네트워크 MAN(Metro Area Network) 한 도시 정도를 연결하고 관리하는 네트워크 WAN(Wide Area Network) 멀리 떨어진 LAN을 연결해주는 네트워크 예전에는 이 3개가 사용하는 기술이 달랐지..

API프로토콜(REST, gRPC, GraphQL)에 대해

API는 왜 중요할까? 추상과 구체를 분리하여 지금 당장 중요하지 않은 것들에 종속되지 않으면서 기능을 사용할 수 있다. REST API 특징 리소스 중심으로 API가 구성된다. HTTP Method를 통해 Action정의 JSON, XML등을 사용한다. 장점 학습과 사용이 쉽고, 자유도가 높아 원하는 대로 사용이 가능하다. 단점 API가 자주 바뀌게 된다. -> Type, field내용 등의 변경이 잦을 수 있음. 버저닝(Versioning) 명세 찾기가 어려움 죽은 문서 개발 종속성 인터페이스 정의 언어(Interface Description Language : IDL) 소프트웨어 컴포넌트의 인터페이스를 묘사하긴 위한 명세 언어 IDL은 어느 한 언어에 국한되지 않는 언어 중립적은 방법으로 인터페이스..

OSI7계층

1계층 물리 계층(Physical Layer) 먼저 두 대의 컴퓨터가 어떻게 통신하는지부터 생각해 보면 모든 파일과 프로그램은 0과 1의 나열이고, 결국 0과 1만 주고받을 수 있으면 통신이 가능하다는 것이다. 두 대의 컴퓨터 간 통신 두 대의 컴퓨터를 전선 하나로 연결한다 생각하면 1을 보낼 때는 +5V 0을 보낼 때는 -5V 이렇게 흘려보내면 0과 1의 전송이 가능해진다. 그래서 이제 0과 1을 주고받을수 있으므로 두 컴퓨터는 모든 데이터의 통신이 가능하다. 그런데 이게 실제로는 잘 동작하지 않았다. 이렇게 X축은 시간, Y축은 전압을 갖는 Sin함수가 있다고 생각해 보았을 때 그래서 이렇게 +5, -5의 전압을 갖는 애들을 주고받을 텐데... 1초동안 몇번의 주파수가 있는지 세어보면 총 4번 진동할..

TCP/UDP

Transport Layer Endpoint간 신뢰성있는 데이터 전송을 담당하는 계층이다. 말하자면 클라이언트 - 서버 간 원하는 포트 번호에 해당하는 프로세스에 데이터를 순차적으로, 안정적으로 전달하는 것을 담당한다. 만약 이 전송 계층이 없다면 어떤 일이 발생할까? 데이터 신뢰 불가능 송신자가 요청한 데이터와 수신한 데이터가 서로 다를 수 있다. (1,2,3 요청 -> 2,3,1 수신) 흐름 문제 송/수신자 간 데이터 처리 속도의 차이 때문에 수신자가 처리할 수 있는 데이터량을 초과하게 되는 문제가 발생할 수 있다. 만약 수신자가 처리할 수 있는 데이터를 초과해서 계속 요청이 온다면 문제가 발생할 것이다. 혼잡 문제 네트워크가 혼잡하거나 뭔가 문제가 있을 때에 송신자가 보냈는데 제대로 데이터가 들어가..

네트워크 인프라 기초 공부 및 정리

IT인프라, 왜 알아야 할까?? 어플리케이션을 동작시키기 위해서는 다양한 요소들에 대한 고민이 필요하다. 이 때 우리는 시스템을 크게 기능적 요구사항과 비기능적 요구사항으로 나누어 생각해볼 수 있는데, IT인프라 환경은 비기능적 요구사항에서 중요한 역할을 차지한다. 어플리케이션 개발에 있어서는 크게 기능적 요구사항 / 비기능적 요구사항 에의 고민이 필요하다. 기능적 요구사항 시스템이 무엇을 해야 하는지에 대한 정의 시스템이 수행해야 하는 기능 기술 세부정보 데이터 조작 및 처리 등등... 비기능적 요구사항 대체적으로 품질이나 속성에 대한 내용 인프라는 비기능적 요구사항과 밀접한 관련을 가지고 있다. 제품 요구사항 시스템이 얼마나 빨리 실행되고, 얼마나 많은 CPU나 메모리가 존재해야 하는지? 장애가 났을..