Infrastructure48 [Kafka 서버 구축] Kafka Clustering, Kafka Partitioning 구현 새로운 기술을 접할 때, 생소한 단어 때문에 학습하기 전부터 두려움을 느끼는 것은 개발자라면 한번쯤 가졌을 것이다. 나또한 지금 카프카 학습을 하면서 매우 당황스러울때가 많다. 때문에 Kafka Clustering과 Kafka Partitioning을 구현하기 전에, 각각의 용어에 대해 이해할겸 설명하는 과정부터 시작해보자. 1. 클러스터, 브로커, 토픽, 파티션 Apache Kafka의 주요 구성 요소인 주피터 클러스터(Zookeeper Cluster), 클러스터(Kkafka Cluster), 브로커(Broker), 토픽(Topic), 파티션(Partition)에 대해 아래와 같이 간략하게 정리해보았다. 주피터 클러스터 (Zookeeper Cluster) 역할 Kafka 클러스터의 메타데이터 관리, 브.. Infrastructure/Kafka 2024. 2. 15. [Kafka 서버 구축] AWS EC2 인스턴스에 Docker를 사용하여 Kafka와 Zookeeper를 연동해서 Kafka 서버 구축하기 Kafka의 활용방법은 정말 무궁무진하다. 특히 실시간 데이터 처리를 요구하는 모든 상황에서 Kafka는 빛을 발한다. 앞으로 카프카의 사용법을 공부하고, 관련 프로그램을 만들어보기 위해 AWS EC2 프리티어에 Kafka 및 Zookeeper를 설치 및 연동하여 Kafka 서버를 만들어보고자 한다. 카프카의 정의 및 구조에 대한 간략한 설명은 예전에 작성해 놓은 아래 게시물을 참고하길 바란다. Apache Kafka란? - 아파치 카프카에 대한 학습 대학생 시절에는 프로그래밍 언어를 위주로 공부하였고, 개발자가 되어 4년차가 된 지금, 프로그래밍 언어의 장벽은 낮아졌고 오히려 프로그래밍 아키텍쳐, 디자인 패턴, 파이프라인 구축 등 min-nine.tistory.com 1. AWS EC2 인스턴스 설.. Infrastructure/Kafka 2024. 2. 14. [CI/CD 구축] AWS EC2에 Docker를 활용한 Jenkins 파이프라인 구축 CI/CD를 구축하는 방법은 수백가지는 된다고 생각한다. 때문에 본인이 가지고있는 서버 환경이나 운영 되고있는 서비스에 따라 CI/CD 구축을 효율적으로 구축할 수 있어야 한다. 본 포스팅에서는 CI/CD에 대해, 그리고 Docker라는 것에 대해 막연하게 생각하고 있는 사람들에게 도움이 되고자 AWS EC2 인스턴스에 Docker를 활용하여 간단하게 CI/CD 구축하는 방법을 안내한다. 1. AWS EC2 인스턴스 생성 및 INOUND 포트 설정 AWS EC2 인스턴스는 요즘 클릭 몇번에 해결된다. 물론 생성 이후 보안규칙에서 INBOUND(EC2 인스턴스로 들어오는 데이터 혹은 요청에 대한 내용)에 대해 사전 지식이 필요하다. 나는 Ubuntu 22.04/t2.micro(프리티어)를 생성했다. EC.. Infrastructure/CICD 2024. 2. 7. [Chat GPT] GPT가 만든 PHP, Nginx, Mysql, Mongo, Redis 웹 환경 도커 셋팅 가히 혁명적이다. GPT가 출시된 날을 기점으로 나는 구글링을 멈췄다. 내가 원하고자 하는 답변이 게시되어있는 블로그 찾아 삼만리를 하지 않아도 되는 점이 가장 컸기에 GPT의 의존성을 높였다. 물론 올바른 대답이 아님에도 불구하고 확답처럼 답변을 해서 어리둥둥 했던 적 도 있었지만, 귀찮은 개발 환경 셋팅을 자동으로 시키기에는 훌륭한 존재였다. 물론 완벽하진 않다. 2021년 까지의 데이터를 기반으로 만들어져 있기 때문에 하루가 멀다 하고 update 되는 IT 기술의 최신화된 답변은 어렵지만, 큰 그림에서 도안을 짜고, 셋팅을 하는 것에는 문제가 전혀 없다고 느꼈다. 나 : php 8.1, nginx 1.14, mysql 5.7, redis latest, Mongo latest 로 구성된 docker.. Infrastructure/Docker 2023. 2. 20. AWS CodeDeploy 배포 에러 해결하기 AWS Codedeploy로 배포를 진행하던 도중 전에는 잘만 진행되었던 배포가 에러가 나는 현상이 발생했다. 기존에 애플리케이션 및 배포 그룹 설정까지 잘 설정해줬기 때문에 이런 일이 전혀 없을 줄 알았는데 갑자기 배포 작업이 "실패당해서" 당황했다. 하지만 나도 년차가 쌓여서 그런지, 당황은 뒤로 미뤄두고 좀 더 상세한 에러 로그를 확인하기 위해 세부 정보를 확인해 봤다. 아래와 같은 에러 메시지를 첫 번째로 확인할 수 있었는데 배포 그룹 설정이나 ec2 인스턴스에 특별한 문제는 없어 보였다. The overall deployment failed because too many individual instances failed deployment, too few healthy instances are .. Infrastructure/AWS 2023. 1. 3. [CI/CD 구축] AWS, Docker, GitLab을 사용하여 CI/CD 구축하기 3편(끝) [이전글] [CI/CD 구축] AWS, Docker, GitLab을 사용하여 CI/CD 구축하기 2편 [이전글] [CI/CD 구축] AWS, Docker, GitLab을 사용하여 CI/CD 구축하기 회사에서 프로젝트를 진행할 때, 각자의 소스 버전 관리 시스템(GitLab, GitHub 등)의 repository에 push만 진행하면 알아서 자동으로 서버 min-nine.tistory.com 브랜치 전략 기본 브랜치 세 개로 관리하고, 개발 브랜치는 master 브랜치에서 생성한 개발 브랜치에서 만 개발합니다. 브랜치명 용도 비고 master 기본브랜치 개발브랜치 생성하는 곳 staging 개발서버 배포브랜치 production 배포 브랜치 {협업툴 티켓 넘버}-{프로젝트명} 개발브랜치 REDMINE/J.. Infrastructure/CICD 2022. 12. 23. [CI/CD 구축] AWS, Docker, GitLab을 사용하여 CI/CD 구축하기 2편 [이전글] [CI/CD 구축] AWS, Docker, GitLab을 사용하여 CI/CD 구축하기 회사에서 프로젝트를 진행할 때, 각자의 소스 버전 관리 시스템(GitLab, GitHub 등)의 repository에 push만 진행하면 알아서 자동으로 서버에 작성한 코드가 반영되는 것을 볼 수 있다. 요즘은 어느 회사 min-nine.tistory.com 이제 GitLab runner가 설치된 서버(ec2, 이하 러너 서버로 명칭)에서 관련 파일을 어떻게 관리하고 배포할 것인가에 대해 여러 가지 방면으로 많은 생각을 하며 머릿속에 있는 flow를 직접 그려가며 정리해봤다. 첫 번째 방안은 도커 이미지를 만들어 Docker Hub로 컨트롤 하는 CI/CD. 1. 러너 서버에서 비즈니스 소스를 포함한 배포 서.. Infrastructure/CICD 2022. 12. 16. [CI/CD 구축] AWS, Docker, GitLab을 사용하여 CI/CD 구축하기 1편 회사에서 프로젝트를 진행할 때, 각자의 소스 버전 관리 시스템(GitLab, GitHub 등)의 repository에 push만 진행하면 알아서 자동으로 서버에 작성한 코드가 반영되는 것을 볼 수 있다. 요즘은 어느 회사에 가던 이러한 CI/CD [여러 가지 사전적인 의미가 많지만 본 포스팅에서는 개발자를 위한 자동화 프로세스를 뜻하는 지속적인 통합(Continuous Integration)과 지속적인 서비스 배포(Continuous Deployment)의 의미를 부여]를 경험하게 될 것이다. 나 또한 회사를 다니면서 누군가가 구축해놓은 CI/CD 파이프라인을 이용만 하였기 때문에 실질적으로 이를 간략하게나마 만들어보며 대략적인 플로우를 머릿속에 다시 한번 확립하고자 본 포스팅을 작성한다. 사전 준비 사.. Infrastructure/CICD 2022. 12. 10. [쉽게 따라하는 AWS] 10. Gradle - SpringBoot 프로젝트 EC2에 배포하기 로컬에서 Gradle Build Tool 및 SpringBoot Framwork 를 사용하여 만든 웹 사이트를 AWS Ec2 인스턴스에 배포하여 실제로 서비스 되게 만들어 봅니다. 로컬에서 Gradle을 활용한 Springboot 프로젝트를 생성하는 방법은 아래 두개의 게시글을 참고하세요. [참고] [Gradle] Gradle로 Java Application 생성 및 실행하기 Gradle 7.4.2v 을 사용하여 앞으로 Test code를 작성할 Java Application Project를 만들어 봅니다. 1. 프로젝트 폴더 생성 및 gradle init 명령어 실행 $ mkdir testGradleProject $ cd testGradleProject $ grad.. min-nine.tistory.c.. Infrastructure/AWS 2022. 7. 15. [쉽게 따라하는 AWS] 09. AWS EC2 인스턴스 도메인 적용하기 1. 등록할 EC2 인스턴스 Public IPv4 확인 및 복사 2. Route53 호스팅 영역 생성하기 도메인 이름에 본인이 구매한 도메인 입력 퍼블릭 호스팅 영역 선택 3. 생성된 호스팅 영역에 레코드 생성 www 등 2차 도메인 붙이고 싶으면 레코드 이름에 입력(레코드 이름은 안써도 무방.) 레코드 유형 A-IPv4 설정 값에 EC2 인스턴스의 퍼블릭 IPv4 입력 4. 호스팅 영역의 NS유형 값/트래픽 라우팅 대상 4개를 도메인 구매한 사이트의 네임서버 변경을 통해 수정 Cafe24, 가비아 등 도메인 구매 사이트의 도메인 관리에 들어가면 네임서버 변경란이 존재함. AWS 호스팅 영역 세부정보 > 레코드 > NS유형의 값/트래픽 라우팅 대상에 있는 4개의 값을 네임서버로 저장. 5. EC2 인스턴.. Infrastructure/AWS 2022. 7. 14. Git 사용중에 .gitignore 적용 안되는 현상 해결 Git을 사용하여 소스 관리를 하며 프로젝트를 진행하던 와중 ". gitignore"에 등록한. env파일이 git repository에 commit 되는 현상이 나타났습니다. 이때는 프로젝트 내부의. git cache가 문제가 되는 것이기 때문에 git cache 삭제 후 프로젝트 자체를 다시 커밋해야 합니다. # git 프로젝트 디렉토리로 이동 $ cd your/git/project # git cache 삭제 $ git rm -r --cached . $ git add . $ git commit -m "git cached remove and reCommit" Infrastructure/Git 2022. 7. 8. MacOs에 PHP-RdKafka 설정 및 셋팅하기 MacOs Local환경에서 PHP RdKafka를 설정하는데 있어서 많은 에러사항이 있었기에 여기에 발자취를 남긴다. 설치 및 간단한 사용방법은 아레 php-rdkafka-doc 사이트에서 참고할 수 있다. https://arnaud.le-blanc.net/php-rdkafka-doc/phpdoc/index.html PHP Manual (Partial) arnaud.le-blanc.net PHP-RdKafka 설치 및 Local 환경설정 로컬 아무 디렉토리 및에 php-rdkafka를 git clone으로 다운받는다. 필자는 github으로 다운받았는데 pecl로 다운받는 방법도 있다. 뭐든 상관없지만 참고 문서에 나와있는 방향성으로 설치. $ git clone https://github.com/arn.. Infrastructure/Kafka 2022. 5. 16. 이전 1 2 3 4 다음