2024/06 21

리눅스 주요 시스템 폴더 역할

작성중 디렉터리 구조  주요 디렉토리 설명디렉터리 명설명/bin실행 파일(binary)들이 모여 있음부팅에 필요한 명령어 등 시스템 운영에 필요한 기본 명령어 저장/boot부팅 관련 파일 디렉터리커널 이미지와 부팅 정보 파일 저장/dev장치 관련 파일 디렉터리하드디스크 장치 (/dev/sda), CD-ROM(/dev/cdrom) 파일 존재/dev/null: blackhole로 사용. 어떤 데이터도 이 장치에 보내면 모두 없어짐. 화면에 아무것도 출력하지 않기를 바랄 경우, /dev/null로 보냄/etc시스템 설정 파일 디렉터리/etc/sh: shell이 시스템에 부트되면 자동적으로 실행되는 스크립트 (crond, inetd 프로그램 백그라운드로 실행)/etc/fstab: 마운트/etc/init: 부팅시..

CodeSeries를 활용한 CI/CD 구성 (Backend Pipeline)

구성도Backend CI/CD Pipeline CodeCommit에 Dev, Prod 브랜치 생성 (two-branch 전략) 환경별(Dev,Prod) 프론트, 백엔드 파이프라인 구성 (총 4개)  -- 이 페이지에서는 백엔드파이프라인만 설명!CodeBuild는 buildspec.yml(dev-buildspec.yml과 prd-buildspec.yml)을 통해 빌드 및 테스트 진행CodeDeploy는 appspec.yml을 통해 S3 내 아티팩트를 가져와 EC2 및 Auto Scaling Group에 배포Dev 환경은 EC2에 In-place 배포, Prod환경에서는 Auto Scaling Group에 Blue/Green 배포 전략 상이함* CodePipeline은 승인자의 허가에 의해 진행된다. 이 글..

AWS/Project 2024.06.28

CodeSeries를 활용한 CI/CD 구성 (Frontend Pipeline)

구성도Frontend CI/CD PipelineCodeCommit에 Dev, Prod 브랜치 생성 (two-branch 전략)dev 환경은 dev 브랜치에서 개발 및 검증 진행. 이후 master 브랜치에 병합하여 prod 환경 배포 예정 환경별(Dev,Prod) 프론트, 백엔드 파이프라인 구성 (총 4개)  -- 이 페이지에서는 프론트 파이프라인만 설명하겠음!!CodeBuild는 buildspec.yml(dev-buildspec.yml과 prd-buildspec.yml)을 통해 빌드 및 테스트 진행CodePipeline에서 배포 단계는 각 환경별 S3 버킷으로 정적 웹사이트 배포 * CodePipeline은 승인자의 허가에 의해 진행된다.  이 글 내용은 Frontend CI/CD Pipeline 구성..

AWS/Project 2024.06.28

[ElasticSearch] 개념

참고 블로그 https://esbook.kimjmin.net/07-settings-and-mappings/7.2-mappings https://ym1085.github.io/elasticsearch/Elastic-Stack-기본개념/https://velog.io/@sung-ik-je/ElasticSearch#index-1 ElasticSearch실시간으로 데이터 저장, 분석, 검색 엔진Java 오픈소스루씬(lucene) 이라는 검색 라이브러리를 기반으로 만들어짐수평적으로 확장 가능검색을 위해 단독으로 쓰이기도 하며, ELK 스택으로 사용되기도 함버전 7 부터는 jdk가 포함되어 있어서 Java를 따로 설치하지 않아도 됨!ElasticSearch를 한번 실행하면 data 디렉터리가 생성됨실행 명령어: bi..

Solution 2024.06.26

[Apache Kafka] 커밋, Offset과 Lag

참고 블로그: https://mycup.tistory.com/435https://ggop-n.tistory.com/90 Offset파티션 내 각 레코드의 위치. 식별자파티션 내에서 유일하고 순사적으로 증가하는 숫자(64비트 정수) 형태중복 메시지 우려.멱등성 유지하는 로직 구현중복 메시지 제거 로직 구현컨슈머 그룹의 컨슈머들은 각각의 파티션에 대해 자신이 가져간 메시지의 위치 정보(오프셋)을 기록하고 있음 커밋각 파티션에 대해 현재 위치(오프셋)를 업데이트하는 동작 Lag만약 Producer가 데이터를 넣는 속도가 Consumer가 데이터를 소비하는 속도보다 빠르다면 컨슈머가 마지막으로 읽은 offset과 Producer가 마지막으로 넣은 offset의 차이가 발생한다. 이 차이를 Consumer Lag..

Solution 2024.06.24

[Apache Kafka] Consumer Group

참고 블로그:https://devlog-wjdrbs96.tistory.com/442https://medium.com/@greg.shiny82/실무-관점에서의-apache-kafka-활용-023d468f9182 하나의 토픽에 여러 컨슈머 그룹이 동시에 메세지를 가져올 수 있다.동일한 컨슈머 그룹 내 컨슈머가 추가되면 위와 같이 파티션 소유권이 바뀌게 되고, 이렇게 소유권이 이동하는 것을 리밸런스 라고 한다.컨슈머 그룹의 리밸런스를 통해 컨슈머 그룹에는 컨슈머를 쉽고 안전하게 추가할 수 있고 제거할 수도 있어 높은 가용성과 확장성을 확보할 수 있다.카프카가 다중 컨슈머(Multiple Consumer) 기능을 지원한다는 것이다. 다중 컨슈머 기능이란 여러 개의 컨슈머 그룹이 서로간의 상호 간섭 없이 각자의 ..

Solution 2024.06.24

[Apache Kafka] Topic / Partition / Record

Topic / Partition / RecordKafka는 여러 개의 Topic을 가질 수 있다.Topic은 여러 개의 Partition을 가질 수 있다. (즉, 파티션이란 Topic을 분할한 것)Partition은 처음 생성 이후 추가만 가능하고 줄일 수 없다. 왜 하나의 Topic을 여러 개의 Partition으로 분산 저장하는가?분산 저장하여 고가용성파티션을 늘렸을 때 메세지는 Round-Robin 방식으로 write하나의 파티션 내에서는 메세지 순서가 보장되지만, 파티션이 여러 개일 경우에는 순서 보장 X   레코드(Record) Partition 내 Producer가 보낸 데이터 내용타임스탬프, 메세지 키, 메세지 값, 오프셋, **헤더**로 구성메시지 키: 메시지를 순서대로 저장 (메시지 키가..

Solution 2024.06.24

[Apache Kafka] Kafka 개념

참고 블로그 ​https://devocean.sk.com/community/detail.do?ID=165483&boardType=DEVOCEAN_STUDY&page=1https://medium.com/@0joon/10%EB%B6%84%EC%95%88%EC%97%90-%EC%95%8C%EC%95%84%EB%B3%B4%EB%8A%94-kafka-bed877e7a3bc  Kafka 개요Kafka는 이벤트 처리 시스템 중 하나인 분산 메세지 큐 (비동기) 방식 이벤트 스트리밍 플랫폼이다. 인기 많은 식당에는 사람들이 많이 줄 서있다. 여기서 사람들 한 명 한 명을 데이터로 취급해보자.대기열(큐)이 없을 경우, 어떤 사람이 먼저 왔는지 구분이 되지 않는다. (질서 X)식당 내 수용 인원은 한정되어있으므로 대기열(..

Solution 2024.06.24

GWLB(Gateway Loadbalancer)

GWLB의 로드밸런싱 프로세스 ① 인터넷 클라이언트가 92.75.20.100으로 FTP 접속한다.② IGW에 유입된 트래픽은 라우팅 테이블의 안내를 Endpoint로 이동한다.③ 엔드포인트에 유입된 트래픽은 Endpoint Service를 통과해 Appliance VPC의 GWLB로 액세스 한다.④ 2개의 어플라이언스 중 하나(13.246.50.101)를 채택한다. GWLB는 클라이언트가 보낸 트래픽을 GENEVE 헤더로 캡슐화해 13.246.50.101로 전달한다. 전송 시 UDP 6081 포트를 사용한다.⑤ 가상 어플라이언스에 도착한 GENEVE 패킷은 역캡슐화를 거쳐 원본 패킷으로 변환된다.통과된 패킷은 다시 GENEVE 헤더로 캡슐화되어 GWLB로 전달된다.⑥ GWLB는 전달된 트래픽의 GENEV..

AWS/Service 2024.06.24

[교육] DevOps Engineering on AWS 3일차

소감3일동안 진행한 교육은 단기간에 많은 지식을 넣으려니 힘들었다.그래도 이해를 위한 교육자료와 경험을 해본 것으로 만족한다..ㅎㅎ이론AWS CodeDeploy ∙ EC2 배포의 경우 AWSCodeDeployRole 정책을 해당 서비스 역할에 부여함∙ ECS 배포의 경우 AWSCodeDeployForECS 정책을 부여함∙ Lambda 배포의 경우 AWSCodeDeployForLambda 정책을 부여함 IAM Access Analyzer∙ IAM에서 제공하는 도구∙ AWS 리소스에 대한 액세스 정책을 분석하고 모니터링하여 잠재적인 과도한 권한 부여나 보안 위험을 식별 AWS Parameter Store∙ AWS Systems Manager의 구성 요소∙ 애플리케이션과 시스템 설정, 비밀, 환경 변수 등 다..