kubernetes 환경에서 Apache Kafka cluster를 구성해보자 (Operator 패턴)
·
kubernetes
Kubernetes 환경에서 Apache Kafka cluster 구성하기​생각해보니 정작 Kafka에 대한 소개를 한 적 없이 그동안 블로그에 썼다는 언급만 계속 해왔다.조만간 자세한 내용을 정리해서 올리겠음​​​​Apache Kafka on Kubernetes - strimzi OperatorKafka를 Strimzi operator를 사용해서 운영하는 방법을 찾아서, Helm으로 Apache kafka를 구성해봤다​https://strimzi.io/​ 왜 Strimzi은 Operator 패턴으로 Kafka를 배포하는가?Operator 패턴이 Kafka Cluster를 배포하기 편리하게 구성Kafka의 가용성 확보에 필요한 Zookeeper 또한 Operator가 관리해준다는 편리함Kafka Brid..
kubernetes 환경에서 MySQL, Redis를 구성해보자
·
kubernetes
StatefulSet 리소스로 프로젝트에 필요한 컴포넌트들을 설치하고, 테스트 해보는 것까지 기록하는 목적이다. ​각 컴포넌트간에 ClusterIP 방식으로 통신하고자 설계했다.​default로 설정된 ClusterIP은 k8s cluster 내부에서만 접근이 가능한 서비스로 외부로 노출되지 않는 특징이 있다.그래서 Pod끼리 해당 서비스의 DNS 이름이나 ClusterIP를 사용해서 주로 접근한다.​ConfigMap과 Secret 리소스를 활용해서 컴포넌트들을 결합한 서버를 배포하는게 이번 게시글의 목적이다.​​​우선 먼저, 항상 eks를 종료하기 전에 모든 리소스를 삭제(terraform destroy)했기에 다시 생성해줘야 한다.1. *.tf 폴더 경로에서 terraform apply로 재생성2. ..
Docker 컨테이너 패키징과 이미지 최적화의 이해
·
backend
로컬의 경우 ARM, x86 68bit 두 가지 환경이 있다.서버 환경도 보통 후자인데 크로스 플랫폼으로 빌드하지 않는 이상, 최신 버전의 맥북은 빌드시 ARM 으로 된다.​서비스 배포시 우리는 어떤 환경에서던 동일한 Dockerfile을 작성해서 컨테이너 이미지를 빌드한다.​어떻게 동일한 컨테이너 이미지를 이용해서 Docker와 kubernetes에서 이용 가능할까? 이에 대해 알려면 Docker에 대한 살짝 더 깊은 이해가 요구된다.​​​OCI(Open Container Initiative) : 저수준 컨테이너 런타임OCI 이미지 스펙을 가진 컨테이너 이미지는 OCI 런타임에서 구동 가능실제 실행할려면 isolation된 환경이 필요한데, 관련된 리눅스 기술을 관리하는 레이어Linux 운영체제의 커널..
2024 사이버 시큐리티 해커톤 수상 회고
·
project/SIEMple
9월 10일부터 12일까지 벡스코에서 열린 사이버 시큐리티 해커톤에 참가했다. 서류 심사로 예선 보고 30팀을 골라서 본선에 진출하는데, 벡스코 별관 3층에서 갇혔다.​자유 주제와 선택 주제로 참가 단위를 골라야하는데, 우리는 KUCIS 프로젝트로 준비하던 클라우드 SIEM 솔루션, 심플(SIEMple)을 그대로 들고 자유로 참가했다.​클라우드 상에서 배포되는 서비스에 대해서 웹, 클라우드 기반 보안 취약점을 검출하거나, 로그 데이터를 모니터링하면서 원하는 필드로 검색해 시각화하는 보안 제품이다.​권장사항으로 AWS WAF와 함께 사용했을때 시너지를 낼 수 있도록 추가적인 플러그인을 제공하고 있어서 직접 검출할 수 있는 취약점 수가 아직 적은 단점을 보완하고자 했음.​​​행사장 안에서 입을 티셔츠도 사전..
취약점 검출의 구현 프로세스와 가용성 유지를 위한 시도
·
project/SIEMple
일찍이 시원 포럼 세미나에 참가해서 기업의 보안 체계와 대응은 Splunk 에서 책임진다고 들었다. 이거간다고 버스타고 난리났다.1번빠따구리 ​Splunk는 ELK 역할을 같이 수행한다는 점에서 우리의 보안 솔루션의 상위 호환(...)이라는 느낌을 받았다. 하지만 굉장한 비용때문에 체급 있는 기업에서만 쓰이고 있다고 한다. ​그렇다면 무거운 비용을 감당할 수 없는 기업들을 대상으로 하는 수요가 많지 않을까.​​클라우드상의 웹서비스 취약점 검출 로직간단하게 SQL Injection 취약점에 대해서 소개하고, 제품에서 어떻게 검출하도록 하는지 프로세스를 소개하겠다. ​SQL prepared statement와 statement의 차이점SQL문장을 미리 컴파일하고 실행 시간동안 인수 값을 위한 공간을 확보할 ..
으악 OpenSearch 비용이 왜이래
·
project/SIEMple
솔루션의 이름은 심플(SIEMple)로 정해졌다. 클라우드 상에서 배포되는 서비스들에 대하여 더 쉽고 편리하게 이용할 수 있는 클라우드 SIEM 솔루션이라는 의미   3일에 11만 4천원..ㅋㅋㅋㅋㅋ 생각해둔 예산의 1/3을 날려먹었다. ​OpenSearch 도메인에 들어가서 비용 부분을 아예 제했다. 클러스터 구성 편집에 들어가서, HA는 옆집 강아지 뽀삐 영양간식으로 줘버리고 대기 없는 도메인을 선택했다.​가용 영역 1-AZ를 선택하고, 인스턴스 유형도 프리티어로 제공되는 t3.small.searh로 구성했다.아, 참고로 전용 프라이머리 노드 활성화에 따로 비용이 든다. EBS는 노드당 10GiB로 해두자.​결코 더이상의 비용을 용납하지 않겠다​https://aws.amazon.com/ko/opens..
Global Region 의심 이벤트 수집과 OpenSearch 설정
·
project/SIEMple
개발팀의 초기 목표는 우선 Global Region에 대한 의심 이벤트를 수집하는 필터 구현과 WAF의 보안 이벤트를 검출하는 것이다. 그를 위해서 CloudTrail에서의 이벤트 로그를 Cloudwatch로 보내고, 얘를 OpenSearch Service로 수집하는 과정이 선행되어야 한다. ​ 도메인 영역에서 액세스 정책을 수정하고, 보안 설정을 위해서 도메인 수준 액세스 정책을 구성해야한다. IAM > 보안 자격 증명 > 내 보안 자격 증명 들어가면 사용자 ARN 있음​ 오류 : not authorized to perform: iam:CreateServiceLinkedRole (해결)indices.query.bool.max_clause_count is not a valid query count val..
2024년도 KUCIS 프로젝트 - 클라우드 SIEM 솔루션
·
project/SIEMple
학과 동아리에서 2024 대학정보보호동아리(KUCIS)에 선정되었고, 클라우드 보안 솔루션으로 프로젝트를 준비하고 있다.​특히나 고객층으로 생각하는 타겟은 학부생 혹은 소규모 스타트업 서비스 기업들 현실적인 이유로 보안 측면을 고려하기 어려운 사람들에게 쉽게 적용할 수 있는 클라우드 상의 보안 솔루션이 있다면 충분히 수요가 있다고 판단했다.​SIEM(Security Information and Event Management)이란?SIEM(Security Information and Event Management)은 소프트웨어 전체 범위에서 로그를 수집, 저장 및 분석한다. 종합적인 보안 보고 및 규제 준수 관리와 함께 신속한 공격 탐지, 차단 및 대응을 위해서 보안 위협을 실시간으로 모니터링하는 소프트웨..
마녀의 탑 출시
·
project/Witch's Tower
홍보나 광고같은 퍼블리싱쪽 알아보느라 내부 테스트를 먼저 거치고 업데이트를 조금 진행했었다. ​기술적으로 어려울 것도 없었고, 한달 남짓한 휴가 기간중에 출시까지 해봤다는 의의로 남겨뒀다. ​ 마녀의 탑 - Witch's Tower서비스 출시까지의 개발 프로세스를 경험하기 위해 군 휴가중 개발한 게임 프로젝트프로젝트명 : 마녀의 탑장르 : 액션엔진 : Unity3d​ 구현한 내용로그라이크 게임 플레이Google Admob 리워드형 광고 기능사용되는 게임 데이터는 기기 내에 저장​PlayStore 링크 - 우선 난 아이폰이라 못한다https://play.google.com/store/apps/details?id=com.nams.witchsTower 구글 정책 변경으로 개발자 업데이트를 진행해야했는데, 안해..
Unity에서 Google Admob 빌드 오류와 해결 방법 모음
·
project/Witch's Tower
23.1.29 갑자기 앱스토어 출시가 하고싶어서 프로젝트를 시작함. 애드몹 최신 버전으로 별 어려움 없이 잘 진행하다가 빌드시 오류가 나옴.​1. 처음에는 unity ID 가 등록 안돼서 나온 오류. Services -> General Setting 에서 Project ID를 reLink하거나, 등록해줘야함.​2. 애드몹 설치 후 빌드시 오류. java.lang.UnsupportedOperationException: This feature requires ASM7 구글 공식 깃허브 커뮤니티에서는 Gradle을 다시 깔라는데.. 프로그램 재설치같은 부분 정말 싫어함. Gradle은 빌드 자동화 시스템인데 유니티에 기본 내장되어 있다고 함.​https://gradle.org/releases/ Gradle |..
웹소켓(WebSocket)과 Websocket-sharp.dll 오류
·
tech
웹소켓 등장 이전의 기술Polling : 새로운 메시지가 있는지 계속 서버에게 물어보기미친 요청 수(request)와 LatencyLong Polling:메시지가 있거나, TimeOut할때까지 request 잠깐 기다렸다가 responsePolling보다는 request 요청이 적지만 그래도 많음Streaming :이벤트가 발생했을 때 응답을 내려주되, 응답을 완료시키지 않고 계속 연결을 유지하는 방식연결 시간이 길어질수록 연결 유효성 관리의 부담Request, Response 헤더가 불필요하게 크다. 웹소켓(WebSocket)웹소켓(WebSocket) : 두 프로그램 간의 메시지를 교환하기 위한 통신 방법​웹소켓과 HTTP 통신의 비교 : 수립된 연결을 어떻게 하느냐?​연결성 ↔ 비연결성  HTTP와 ..
ARIMA를 이용한 향후 5일간 비트코인(BTC) 종가 예측 프로젝트
·
tech
오잉? ARIMA에 대해 쓴 글이 작년 10월로 군대에 있을때 작성한건데.. 전역하고 다시 복습하면서 찾아보니까 함수가 아예 사라짐;​statsmodels.tsa.arima\_model -> statsmodels.tsa.arima.model 로 라이브러리 위치가 바뀐거였음..​ 아무튼 이번 주제는 5일 간격의 시간을 둔 미래의 시계열 데이터. 즉 '향후 5일 뒤의 비트코인 종가'를 예측할거다​ 1. 데이터 전처리빗썸에서 제공하는 API의 get_ohlcv() 함수를 통해서 비트코인 정보를 뽑아온다.​여기서 중요한 점은, 현재 종가를 기준으로 5일 뒤의 미래 종가를 예측하는게 맞지만 그게 정확한지는 5일 뒤에 확인해야하는 문제점이 생김 ​그래서 아쉬운 대로 5일 전의 종가를 학습 데이터로 넣어서 예측한 값..