본문 바로가기

KT Cloud

(69)
kt cloud Dev Tools - IMDB Redis 환경 구성 #1 Intro 지난 글에서는 IMDB(In-Memory DataBase)의 정의와 특성 그리고 종류에 대해 다뤄봤습니다. 이번 글에서는 Redis의 다양한 Operation Model 중 Stand Alone에 대해 글을 써보려 합니다.해당 글은 Ubuntu 18.04 및 Redis 5.x 버전에 맞게 작성되어있습니다. Stand Alone 구조란? Stand Alone 구조는 Redis의 가장 기본적인 Operation Model입니다. 단 하나의 Master 단일 노드로 구성됩니다. 설치 과정 설치를 위해 필요한 패키지 사전 설치 root@jsm-redisTechBlog:~# apt-get install build-essential pkg-config gcc tcl libsystemd-dev -y Red..
쿠버네티스, 이것만 알면 된다! - #7 Volume(볼륨) 사용법 쿠버네티스는 상태를 저장하지 않는 Stateless이므로, 어떠한 문제가 발생하여 컨테이너가 삭제된다면 데이터도 같이 삭제됩니다. 이렇게 될 경우, 로그 파일을 보관해야 한다거나 데이터베이스를 사용할 경우 데이터가 사라지면 큰 장애가 발생할 수 있습니다. 따라서 데이터가 사라지지 않고 보존되어야 할 경우 볼륨(Volume)을 사용합니다. emptyDir, hostPath 먼저 쿠버네티스의 여러 가지 볼륨 중 임시 디스크를 사용하는 emptyDir, 로컬 디스크를 사용하는 hostPath에 대해서 알아보도록 하겠습니다. emptyDir emptyDir은 생성 당시에는 디스크에 아무 내용이 없으므로, emptyDir이라고 합니다. emptyDir은 Pod가 생성될 때 생성되고, Pod가 삭제될 때 같이 삭제..
5분이면 따라하는 kt cloud Open API 활용 팁#2 안녕하세요 '5분이면 따라하는 KT Cloud Open API 활용팁 2편'입니다. 이번 시간에는 KT Cloud의 Python SDK를 활용해서, 실제로 Cloud 자원을 배포하고 확인하는 작업을 소개드려 보도록 하겠습니다. 작업 시나리오 - Single VM 생성(Web Server구동) KT Cloud Open API를 본격적으로 활용코자 하는 첫번짹 작업으로 간단한 아키텍처를 하나 구성해 보고자 합니다. 아래 그림과 같이, KT Cloud의 가상서버를 1대 생성하고 해당 가상 서버를 인터넷에 연결될 수 있도록 접속설정(포트포워딩)해주도록 하겠습니다. 그리고 이 가상서버에는 간단한 웹서버(httpd)를 설치하고 서비스 가능하도록 설정하도록 할 것입니다. 조금 더 자세히 설명드려 보자면, 아래의 순서..
관리형 메시지 브로커 서비스 - Message Queue 신규 출시 이번 시간에는 KT Cloud에서 신규 출시한 Message Queue 서비스에 대해서 소개드려 보도록 하겠습니다. Message Queue란? Message Queue(혹은 메시지 대기열)는 서비스와 서비스간에 '비동기 방식'을 통해 통신을 하는 형태를 말합니다. 보다 구체적으로는 MOM(Message Oriented Middleware, 메시지 지향 미들웨어)을 구현한 솔루션을 의미합니다. (즉, 비동기 메시지를 사용하는 서비스들 사이에서 데이터를 교환해 주는 역할을 하는 것) 통상 아래 그림과 같이, Producer(Sender)가 Queue(대기열)에 메시지를 전송하면 Consumer(Receiver)가 수신해가는 형태로 사용이 됩니다. 특히, 요근래 각광을 받고 있는 마이크로 서비스 아키텍처(M..
쿠버네티스, 이것만 알면 된다! - #6 쿠버네티스의 서비스 쿠버네티스의 서비스란? 만들어진 Pod끼리 통신을 하기 위해서는 "서비스"가 필요합니다. 쿠버네티스에서 서비스란 네트워크 서비스로 노출하는 추상화 방법을 의미하는데, Pod를 논리적으로 구분하여 접근하도록 하는 것입니다. 서비스에서는 라벨 셀렉터(Label Selector)를 사용하여, 관리하고자 하는 Pod들을 정의할 수 있습니다. 쿠버네티스가 제공하는 서비스의 종류는 다음과 같습니다. ClusterIP: 기본 서비스 타입으로, 쿠버네티스 클러스터 내부에서 사용 가능하여, 클러스터 내부의 Node나 Pod에서 이 ClusterIP를 이용해서 서비스에 연결된 Pod와 통신 External Name: 서비스를 externalName의 값이랑 매치하여 사용하고, 클러스터 내부에서 외부로 접근할 때 사용 No..
Cloud에 관한 거의 모든 지식#5 (Cloud와 레그 테크) 이번 시간에는 산업 영역의 규제(Regulation) 준수에 Cloud 기술이 어떻게 활용될 수 있는지에 대해서 알아 보겠습니다. 근래 금융 업계에서는 금융 규제의 새로운 패러다임으로서 '레그 테크'이라는 개념이 많이 이야기되고 있습니다. 레그 테크(Reg Tech)이란? 레그 테크는 규제(Regulation)와 기술(Technology)의 합성어로서 정보 기술을 활용해 금융 규제 준수 관련 업무를 자동화/효율화하는 기법을 의미합니다. (참조: 자본시장포커스, 2020-20호) 국내/외 주요 기관에서 정의한 내용을 좀더 찾아보면 아래와 같습니다. 영국 금융행위감독청 기존 기능보다 효율적으로 규제 요구 사항을 원활하게 전달할 수 있는 기술에 중점을 둔 핀테크(FinTech)의 하위 집합 금융 보안원 빅테이..
쿠버네티스, 이것만 알면 된다! - #5 쿠버네티스의 동작 흐름 쿠버네티스의 동작 흐름 쿠버네티스에서는 새로운 Pod를 만들기 위한 과정이 다음과 같은 흐름으로 진행됩니다. 출처: https://subicura.com/2019/05/19/kubernetes-basic-1.html 1. Master Node의 kube-apiserver에 Pod 생성을 요청 2. kube-apiserver는 etcd에 새로운 상태를 저장 3. kube-controller-manager에게 kube-apiserver가 etcd의 상태 변경을 확인하여, 새로운 Pod 생성을 요청 4. kube-controller-manager는 새로운 Pod를 생성(no assign)을 kube-apiserver에 전달하고, 이를 전달받은 kube-apiserver는 etcd에 저장 5. kube-sche..
DNS 네임 서버를 직접 구축해보자! (feat. BIND9) 자체 DNS 네임 서버를 구축해봅시다! 리눅스에서는 기본적으로 DNS 기능을 제공하고 있다는 사실, 알고 계셨나요? 오늘은 해당 기능을 활용해서 간단하게 자체 DNS 네임 서버를 구축해보는 방법을 소개 드리겠습니다! 서버 내부에서만 동작하는 아주 간단한 예제이지만, DNS를 이해하는 데에 조금이나마 도움이 되셨으면 좋겠습니다. 오늘의 목표 nslookup 명령어는 도메인에 대한 IP 정보를 확인하는 커맨드 라인 명령어인데요, 리눅스, 맥OS, 윈도우 등에서 사용할 수 있습니다. 오늘의 목표는, Ubuntu 서버 안에서 nslookup 명령어를 통해 내가 원하는 도메인과 IP를 매핑해 보는 것입니다. 도메인 대응되는 값 bind9.kr 1.1.1.1 dns.bind9.kr 2.2.2.2 kt.bind9.k..
쿠버네티스, 이것만 알면 된다! - #4 쿠버네티스 설치 이제부터는 이론과 함께 실습을 통해서 쿠버네티스를 학습해보도록 하겠습니다. 실습을 위해서 우선 쿠버네티스 설치부터 시작합니다! 먼저, 설치에 앞서 Master Node와 Worker Node로 사용할 2개의 가상머신(Virtual Machine)을 준비합니다. 사전 작업 쿠버네티스를 설치하기 위해서는 2가지의 사전 작업이 필요합니다. Swap 메모리 비활성화 쿠버네티스는 Pod를 생성할 때, 필요한 만큼의 리소스를 할당 받아서 사용하는 구조입니다. 따라서 메모리 Swap을 고려하지 않고 설계되었기 때문에, 쿠버네티스 클러스터 Node들은 모두 Swap 메모리를 비활성화 해줘야 합니다. 다음 명령어를 통해서 Swap 메모리를 비활성화 시켜줍니다. Docker 설치 쿠버네티스의 밑바탕이 되는 Containe..
쿠버네티스, 이것만 알면 된다! - #3 쿠버네티스 구성 요소 쿠버네티스는 어떻게 이루어져 있을까요? 쿠버네티스는 여러 개의 노드(예를 들어, 가상서버/Virtual Machine)로 구성된 클러스터로 이루어져 있습니다. 출처: https://kubernetes.io/docs/concepts/_print/ 여기서 Node라는 개념이 나오는데요. 위의 그림에서 Node는 하나의 VM(Virtual Machine)을 의미합니다. 쿠버네티스는 컨테이너화 된 애플리케이션을 실행하는 Worker Node와 그러한 Worker Node를 관리하는 Master Node로 구성되어 있습니다. 이때 Worker Node와 Master Node는 다수로 이루어질 수 있으며, 쿠버네티스를 사용하기 위해서는 최소 1개의 Worker Node를 보유해야 합니다. Master Node에는 ..