목록클라우드 (17)
tioon's Devlog
아파치 카프카에서 Producer와 Consumer의 내부 동작원리 및 특징에 대해서 알아보도록 하겠습니다. 아파치 카프카의 전체구조 우선 카프카의 전체 구조를 다시한번 보고 가겠습니다. 카프카의 전체 구조는 다음과 같습니다. Producer에서 Key-Value 형태로 메세지를 send하면, 브로커의 한 토픽을 기준으로 key로 파티션을 나누어 브로커에 저장이 됩니다. (여기서 메세지 send를 할때, key값은 partition을 나누는 것이지, topic을 나누는것이 아닙니다!!) (key가 아니라 partition으로도 나눌 수 있습니다. 다만, Key를 활용하는 방식이 유연성이 높습니다.) 해당 브로커에선 Queue 형태로 데이터들을 저장하며, 이를 기반으로 카프카가 동작을 하게 됩니다. 이제 ..
이번장에서는 아파치 카프카 CLI 명령어를 알아보도록 하겠습니다. 직접 아파치 카프카를 도커 컨테이너로 실행하여 CLI 명령어를 실행해볼 것이며, 아파치 카프카를 실행시키기 위해 도커와 아파치 카프카 오픈소스 깃 clone 과정이 필요합니다. 도커 설치 로컬 컴퓨터에 도커를 설치해 주시면됩니다..! 이 과정은 인터넷에 너무 많으니 패스하도록 하겠습니다. 저는 윈도우용의 도커를 설치했습니다. 아파치 카프카 오픈소스 설치 이제 도커를 설치했다면, 도커 컨테이너에 올릴 아파치 카프카 오픈소스가 필요합니다. 저는 conductor라는 오픈소스를 깃으로 clone을 해와서 가져올 것이며, 링크는 아래에 있습니다. conduktor/kafka-stack-docker-compose: docker compose fil..
이번 학기에 아파치 카프카에 대해서 스터디를 하게 되었는데 공부하면서 한번 정리를 해보려합니다! 혹시나 틀린 정보가 있다면 말씀해주세요! 현재 백엔드에서 빅데이터 처리시에 가장 많이 쓰이고 있는 플랫폼은 카프카인데요. 시작하기에 앞서, 우선 먼저 카프카를 한마디로 소개를 먼저 하자면 다음과 같습니다. 실시간 스트리밍 대용량, 대규모 데이터 처리에 특화된 프레임워크 이를 먼저 기억해주시고, 아래 글을 읽어주세요! 아파치 카프카(Kafka)의 시작 과거, 기존의 백엔드 서버에서 데이터를 수집하기위해 직접 데이터를 카테고리화 해서 저장을 하였습니다. 즉, 직접 1대1 매핑을 통해 데이터와 앱을 연결하여 카테고리처럼 저장하는 방식이였습니다. 초기에는 이러한 방식이 운영이 어렵지 않았고, 아키텍처도 복잡하지 않아..
이번 블로그에서는 터미널에서 SSH와 SCP를 직접 어떻게 사용하는지, 또한, 깃허브 액션에선 SSH와 SCP를 어떻게 사용하는지에 대해서 알아 보겠습니다. 사실 저희가 서버를 배포를 한다고 하면, SSH와 SCP 둘 다 사용할 일이 많잖아요?? 하지만 그럴때마다 까먹어서 구글링 하느라 시간 다쓴 적 있지않나요? 저도 서버 배포를 하면서 매번 SSH, SCP를 사용하는데 그때마다 까먹어서 자료 찾는게 귀찮아서 이번에 한번 제대로 공부하고, 까먹을 때마다 보려고 합니다 ㅎㅎ 우선 터미널 상에서 SSH와 SCP를 어떻게 사용하고, 옵션은 어떻게 활용하는지에 대해서 정리를 한 후, 추가적으로, 깃허브 액션에서는 어떻게 SSH와 SCP를 활용할 수 있는지에 대해서 정리를 해보도록 하겠습니다. SSH SSH 기본..
이번 블로그에서는 여러 EC2들을 대상으로 CI/CD를 구축하는 과정을 알아보도록 하겠습니다. 우선 CI/CD 도구는 깃허브 액션을 사용할것이고, 스프링 서버를 기반으로 배포를 진행할 것입니다. CI/CD를 구축할 서버 구조환경은 아래의 글에서 확인 하실 수 있습니다. https://tioon.tistory.com/184 EC2 도메인 연결 및 HTTPS 적용하기 이번엔 AWS에서 서버 배포를 할때, 도메인을 적용시키고, 추가적으로 HTTP가 아닌 HTTPS로 적용시켜 배포하는것을 알아보도록 하겠습니다. 우선, 이 과정을 진행하기 위해선 필요한것들은 다음과 tioon.tistory.com 즉, 아래가 저희가 CI/CD를 구축해야할 서버의 환경입니다. 로드밸런서와 RDS는 CI/CD를 구축할 필요가 없으므..
이번 글에서는 도커를 활용해 스프링서버를 배포하는 과정을 설명하겠습니다. 저희가 서버 1대를배포하거나, 서버의 환경설정이 간단하다면, 일반적으로 EC2에서 파일을받아 빌드하면되겠지만, 만약 여러대의 서버를 배포해야한다던가, 서버배포하기전에 환경설정작업이 매우 복잡하다면, 이렇게 일반적으로 빌드하게 될때 매우 복잡해집니다. 따라서, 도커는 가상환경의 장점을 통해 빠른 서버 배포와 환경설정이 가능하게 해줍니다. 배포 과정 먼저, 도커를 이용해 배포하는 과정을 간략하게 설명 드리겠습니다. Dockerfile 생성 Dockerfile 기반으로 도커이미지 생성 도커 이미지를 도커허브로 Push EC2에서 도커허브에서 도커 이미지 Pull 받기 도커이미지 기반으로 컨테이너 생성 후 실행 (도커 컴포즈로 대체가능) ..
이번 장에서는 로드밸런서를 활용한 Scale-Out 구현하겠습니다. Scale-Out을 구현하기에 앞서, Scale-Out의 개념과 이게 왜필요한지에 대해서 먼저 알아보도록 하겠습니다. Scale-Out(수평확장)이란?? Scale-Out이란 Scale-Up과 대비되는 말로, 서버의 처리능력을 증가시키기 위해 추가적은 노드(서버)를 시스템에 추가하는 것을 의미합니다. 즉, 서버의 성능을 높이기위해 단일 서버가 아닌 다수개의 서버를 이어붙여 트래픽을 분산시켜 서버 성능을 높이는 기법을 뜻합니다. 이해하기 쉽게 예시를 들어서 설명을 해보겠습니다. 위와 같은 상황의 서버가 있다고 가정을 하겠습니다. 현재 단일 서버로 서버 1대가 존재하고, 서버와 DB가 1대1로 매핑이 되어있는 서버라고 가정하겠습니다. 가장 ..