2023년 1월 26일 목요일

쿠버네티스(Kubernetes) 및 도커 관련 용어 정리

쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이다. 쿠버네티스는 선언적 구성과 자동화를 모두 용이하게 해준다. 쿠버네티스는 크고, 빠르게 성장하는 생태계를 가지고 있다. 쿠버네티스 서비스, 기술 지원 및 도구는 어디서나 쉽게 이용할 수 있다.

쿠버네티스란 명칭은 키잡이(helmsman)나 파일럿을 뜻하는 그리스어에서 유래했다. K8s라는 표기는 "K"와 "s"와 그 사이에 있는 8글자를 나타내는 약식 표기이다. 구글이 2014년에 쿠버네티스 프로젝트를 오픈소스화했다. 쿠버네티스는 프로덕션 워크로드를 대규모로 운영하는 15년 이상의 구글 경험과 커뮤니티의 최고의 아이디어와 적용 사례가 결합되어 있다.




컨테이너 

앱이 구동되는 환경까지 감싸서 어디서든 쉽게 실행할 수 있도록 하는 격리 기술


컨테이터 런타임

컨테이터를 다루는 도구. 즉 컨테이너를 쉽게 내려받거나 공유하고 구동할 수 있도록 해주는 도구. 컨테이너 규격은 표준화되어 있기 때문에 도커가 아닌 CRI-O,  Buildah, Podman, Skopeo 등 다른 컨테이너 런타임들도 도커로 만든 컨테이너를 사용할 수 있다.


도커

컨테이너를 다루는 도구 중 가장 유명한 것. 즉 컨테이너를 다루는 도구(컨테이너 런타임) 중의 하나. 


쿠버네티스

컨테이너 런타임을 통해 컨테이너를 오케스트레이션 하는 도구. 컨테이너를 분산 배치, 상태 관리 및 컨테이너의 구동 환경까지 관리해주는 도구. 컨테이너를 다루기 위해 도커 이외에도 다양한 컨테이너 런타임 소프트웨어를 사용할 수 있다.  특정 프로그램이 독립된 환경에서 실행되는 것처럼 격리시켜주고, CPU, 메모리 및 저장 장치와 같은 자원도 실행한 프로그램이 독립적으로 쓸 수 있도록 해주는 namespace 및 cgroup이라는 기술이 있다. 


오케스트레이션

여러 서버에 걸친 컨테이너 및 사용하는 환경 설정을 관리하는 행위. 여러 서버(노드)에 컨테이너를 분산해서 배치하거나, 문제가 생긴 컨테이너를 교체하거나, 컨테이너가 사용할 비밀번호나 환경 설정을 관리하고 주입해두는 일 등.


가상머신은 완전한 컴퓨터이고 가상머신에 일일이 운영체제를 설치해야 하기 때문에 컨테이너 중심의 배포(Container Deployment)보다는 무거운 편이다. 컨테이너는 운영체제를 공유하는 방식이기 때문에, 어떤 프로그램의 문제가 다른 프로그램을 간섭할 수는 없으나 특정 프로그램의 문제가 운영체제에 문제를 일으킬 경우에는 운영체제에서 구동 중인 전체 컨테이너의 문제가 될 가능성이 있다.


참고자료 : https://kubernetes.io/ko

금융IT 내부 시스템간, 외부·기관 간 시스템 연계를 위한 솔루션

 


MCI/MCA (Multi Channel Integration / Multi Channel Architecture)

주로 기업 내부 동기종 또는 유사기종 시스템을 연계시키는데 사용된다.

예를 들어 은행에서 여신 업무와 수신 업무는 MCI/MCA를 통해 연계된다.

MCI와 MCA는 기업마다 다르게 부를 수 있지만 의미 차이는 두지 않는다.


EAI (Enterprise Application Integration)

주로 기업 내부 이기종 시스템을 연계시키는데 사용되며, 시스템 구조나 개발 언어가 다를 수 있어서 어댑터를 사용한다. 예를 들어 은행에서 채널계와 계정계는 EAI를 통해 연계된다.


Point to Point

단순한 구조 하에 연관성이 있는 어플리케이션간 고정적인 연결을 갖는 방식
복잡하지 않은 환경에서의 단순한 연동일 때 빠른 적용이 가능하다.

복수 어플리케이션간 1:1 통합

어플리케이션간 연결 구조로 링크마다 연계로직과 인터페이스가 관리된다.

시스템의 독립성 보장이 어려움

시스템 수가 증가할 수록 유지보수 비용이 급격히 증가함

확장성/유연성이 떨어짐

연계 로직의 재사용 불가


Hub and Spoke

미들웨어(Hub)를 이용하여 비즈니스 로직 중심으로 어플리케이션을 연계하는 방식

단일 접점인 허브시스템을 통해 어플리케이션을 통합하는 중앙집중식 연결(1:N)

비즈니스 로직을 중심으로 기업내 어플리케이션을 연계

효율성은 높아지지만 구축 비용이 높음

벤더 종속적인 기술 사용

신규 어플리케이션 도입 시 확장이 용이

개발 및 유지보수의 생산성/편의성 증대

시스템 추가 확장시  EAI 제품의 어뎁터를 추가구입하거나 지속적인 개발 비용이 투입됨

중앙 허브 장애시 전체 시스템에 영향을 미침(Single Point of Failuae)


ESB (Enterprise Service Bus)

미들웨어(Bus)를 이용한 서비스 중심의 시스템 연계 방식으로 SOA 사상과 더불어 ESB라고 하는 경향이 강하다. EAI에 표준 인터페이스와 SOA 사상이 접목된 형태

SOA에서 사용되는 개념으로 EAI와 유사하게 사용된다. 기관 간, 서비스 간 연계가 이루어진다. SOA 개념을 도입하지 않은 기관에서는 ESB라는 개념을 잘 사용하지 않는다.

서비스 중심의 프로세스 통합

표준기술(웹서비스, XML 등) 채용으로 이기종에 대한 표준통합 환경을 제공

멀치 프로토콜 지원

버스(분산구조) 형태의 느슨한 결합

재사용 가능한 컴포넌트를 조립하는 방식

표준기술 사용 및 서비스 단위 재사용으로 통합비용 절람

버스 형태의 연결 구조로 확장성/유연성이 높음

초기 구축 비용이 높음


FEP (Front End Processor)

원래는 메인프레임에서 통신 과부하를 경감시키기 위해 전처리 작업을 하는 과정을 말한다.

금융권에서는 의미가 조금 와전되어 B2B 연계를 FEP라고 부른다.

전용선 또는 VPN을 이용하 연결된 기관 간, 정해진 인터페이스로 배치파일(SAM)을 전달한다.


<참고자료> 

https://itwiki.kr/w/시스템_연계_솔루션

http://www.dator.co.kr/yjna/textyle/90302

Reentrancy Attack: 블록체인 스마트 컨트랙트의 치명적인 취약점

블록체인 기술이 전 세계적으로 주목받으면서 스마트 컨트랙트(Smart Contract)의 사용이 급격히 증가하고 있습니다. 하지만 그만큼 보안 취약점도 함께 늘어나고 있는데, 그 중에서도 Reentrancy Attack(재진입 공격)은 매우 치명적이고...