728x90

DevOps 47

[Git] Merge 전략

Git에서 브랜치를 병합할 때 사용할 수 있는 다양한 병합 전략들이 있다. 각 전략은 특정 상황에 맞게 사용되며, 프로젝트의 커밋 히스토리를 관리하는 데 중요한 역할을 한다. Fast-Forward Merge병합할 브랜치가 다른 브랜치에서 파생된 이후 해당 브랜치에 새로운 커밋이 없을 때 사용된다. 이 경우, 병합 브랜치는 대상 브랜치의 최상위 커밋 위에 그대로 이어지게 된다.사용 방법:git merge --ff-only 기본적으로 git merge 로도 Fast-Forward 병합이 수행된다. --ff-only 옵션을 추가하면 Fast-Forward 병합이 불가능한 경우 병합이 거부된다.언제 사용해야 하는가?독립적인 작업이 없을 때: main 브랜치에서 새로운 커밋이 없고, feature 브랜치에서만 ..

DevOps 2024.08.25

[Git] Git 워크플로우 비교: GitHub Flow, Gitflow, GitLab Flow

GitHub FlowGitHub Flow는 깃허브에서 만든 단순한 구조의 브랜치 전략이다. 작은 팀과 빈번한 업데이트가 필요한 프로젝트에 이상적이다.브랜치Main, Feature, Bugfix 브랜치로 이루어진다.모든 브랜치는 Main으로부터 나온다.Main으로부터 기능추가, 버그 수정 작업을 위한 새로운 브랜치를 생성한다.기능 개발, 버그 수정기능별로 커밋한다.커밋 메시지와 브랜치 이름은 정확하고 간결하게 작성한다.커밋은 서버의 동일한 브랜치에 병합한다. (Git flow와 차이점)리뷰 및 병합GitHub Actions와 같은 CI/CD 도구를 사용하여, 풀 리퀘스트가 생성되면 자동으로 테스트를 실행할 수 있다. 이렇게 하면 코드가 main 브랜치에 병합되기 전에 기능 브랜치에서 모든 테스트가 통과했는..

DevOps 2024.07.30

[AWS] X-Ray

AWS X-RayAWS X-Ray는 애플리케이션을 추적하고 분석하는 데 도움을 주는 서비스이다. 이를 통해 애플리케이션의 성능 문제를 식별하고, 애플리케이션의 동작 방식을 더 잘 이해할 수 있다. X-Ray는 애플리케이션의 요청을 추적하고, 각 요청이 어떻게 처리되는지에 대한 자세한 정보를 제공한다.주요 기능트레이스 수집 및 분석: 요청이 애플리케이션을 통해 어떻게 이동하는지 시각화한다.트랜잭션 오류 및 성능 병목 현상 식별: 어디에서 오류가 발생하고 지연이 발생하는지 파악할 수 있다.종단 간 뷰 제공: 프런트엔드 서비스에서 백엔드 서비스까지 전체 애플리케이션 스택을 추적할 수 있다.구성요소Segment: 애플리케이션의 개별 작업을 나타낸다.Subsegment: 세그먼트 내의 더 작은 작업을 나타내어 더..

DevOps/AWS 2024.07.16

CloudWatch

AWS에서는 애플리케이션 성능 모니터링(APM, Application Performance Monitoring)을 위해 여러 도구와 서비스를 제공한다. 또한 외부 APM 도구(New Relic, Datadog, Dynatrace)와의 통합도 지원한다. 이러한 도구들은 AWS 인프라와 애플리케이션의 메트릭을 수집하고, 이를 기반으로 다양한 성능 분석 기능을 제공한다. 그중 주요 AWS 서비스는 Amazon CloudWatch와 AWS X-Ray이다.Amazon CloudWatchAWS CloudWatch는 AWS 리소스 및 애플리케이션의 성능 및 상태를 모니터링하는 서비스이다.메트릭 및 로그 데이터의 수집, 이벤트 기반 알림 설정, 자동화된 작업 실행 등의 기능을 통해 클라우드 인프라의 관리와 운영 효율성..

DevOps/AWS 2024.07.15

OWASP Top 10 공격 패턴

OWASP(Open Web Application Security Project)는 매년 발표하는 OWASP Top 10 보안 취약점 목록을 통해 주요 웹 애플리케이션 보안 취약점을 정리하고 있다. 이들 취약점은 공격자가 웹 애플리케이션을 공격할 때 자주 이용하는 패턴들을 반영하고 있다.1. 인젝션 (Injection)공격 원리: 악의적인 코드를 웹 애플리케이션의 입력 파라미터에 주입하여 실행되게 하여 시스템을 손상시키거나 정보를 유출시키는 공격예를 들어 SQL Injection(SQL 쿼리에 악의적인 SQL 코드를 삽입하는 것)이 있다.방어 방법:Prepared Statement 및 Parameterized Query 사용입력 데이터의 검증 및 이스케이핑(Escaping)2. 인증 및 세션 관리 취약점 ..

DevOps/AWS 2024.07.14

RabbitMQ, Apache Kafka, AWS SQS 비교

메시지 저장 및 전달 방식RabbitMQ와 SQS는 메시지를 큐에 안전하게 저장하고 전달하며, Kafka는 영속적으로 메시지를 저장하고 여러 소비자에게 전달한다. RabbitMQ메시지를 큐에 저장하고, 이를 소비자에게 전달한다. RabbitMQ는 메시지를 저장하는 역할을 중요하게 여긴다. 따라서 일시적인 네트워크 문제 또는 소비자가 메시지를 처리하지 못할 경우에도 안전하게 메시지를 보관한다.KafkaKafka는 메시지를 영속적으로 저장하고, 이를 여러 소비자 그룹에게 동시에 전달할 수 있다. 메시지는 토픽에 기록되며, 이를 구독하는 모든 소비자에게 전달된다. 또한, Kafka는 일반적으로 디스크에 메시지를 저장하여 데이터의 장기 보존이 가능하다.SQSSQS는 메시지를 보관하고, 메시지를 처리할 수 있는 ..

DevOps 2024.01.13

Apache Kafka

Kafka 카프카는 분산 스트리밍 플랫폼으로, 대량의 데이터를 높은 처리량으로 실시간으로 처리할 수 있도록 설계된 오픈 소스 메시지 브로커이다. Jay Kreps, Neha Narkhede, 그리고 Jun Rao가 LinkedIn에서 개발한 후에 Apache 소프트웨어 재단에 기증되어 오픈 소스 프로젝트로 진화했다. 카프카는 대용량의 데이터 스트림을 효율적으로 수집, 저장, 처리 및 전달하는 데 사용되며 이벤트 주도 아키텍처 구축에 적합하다. 주로 로그 및 이벤트 스트리밍, 데이터 파이프라인, 실시간 데이터 분석 등의 분야에서 활용된다. 분산 아키텍처 및 확장성: Kafka는 분산 아키텍처로 설계되어 있어 수평 확장이 용이하며, 새로운 브로커를 추가하여 클러스터를 쉽게 확장할 수 있다. 내구성 및 복제:..

DevOps 2023.12.30

Session Manger 를 이용하여 EC2에 연결하기

AWS Systems Manager에서는 Session Manager라는 기능을 제공하는데 사전에 SSM-Agent가 설치된 EC2 SSH를 연결할 수 있는 기능을 제공한다. Session Manager를 사용하기 위해서는 EC2와 IAM, 그리고 로컬 컴퓨터에 각각의 준비가 되어있어야 한다. SSM 특징 인바운드 포트를 열거나 SSH 키를 관리할 필요 없이 관리형 인스턴스에 안전하게 연결한다. Bastion Host 나 Key Pair 가 필요 없다. SSH가 아닌 HTTP를 사용하여 접속이 가능하다. 선택한 목적 또는 활동에 따라 AWS 리소스를 그룹화하여 중앙 집중식 관리가 가능하다. 주의 인터넷으로 아웃바운드 허용해주어야 한다. 퍼블릭 IP가 필요 없다고 하지만 퍼블릭 IP가 없으면 연결할 수 없..

DevOps/AWS 2023.06.18

AWS Aurora DB

AWS가 MySQL 및 PostgreSQL을 호환해서 만든 RDBMS로 RDS와는 다른 AWS만의 RDBMS로 기존 소스들을 AWS에 맞게 고쳐서 만들어졌다. 특징 성능 오로라는 기존의 MySQL과 PostgreSQL 데이터베이스보다 뛰어난 성능을 제공합니다. 오로라는 분산 스토리지 및 복제 기능을 활용하여 처리량과 응답 시간을 향상시킵니다. 또한 자동 스케일링 기능을 통해 워크로드의 요구에 따라 자동으로 리소스를 조정할 수 있습니다. 확장성 오로라는 수평 및 수직 확장이 가능합니다. 수평 확장을 통해 여러 개의 인스턴스를 사용하여 데이터베이스 처리 능력을 증가시킬 수 있으며, 수직 확장을 통해 인스턴스 유형을 업그레이드하여 더 많은 리소스를 할당할 수 있습니다. 내구성 오로라는 데이터를 여러 가용 영역..

DevOps/AWS 2023.06.18

[WAF] NestJS 애플리케이션 AWS에 배포하기 08

인프라 구성도 이번 시간에는 ALB를 방어하기 위해 WAF를 설정하겠습니다 WAF(Web Application Firewall) 기본적으로 AWS에 모든 리소스는 AWS Shield Standard로 보호됩니다. Shiled Standard는 네트워크 레벨에서의 DDos 보호, SYN Flood, UDP Flood 및 Reflection Attacks와 같은 공격 유형에 대한 자동 탐지 및 차단, 대역폭 공격에 대한 자동 스무딩을 무료로 제공합니다. 만일 더 다양한 보안 위협을 탐지 및 차단하고 싶다면 WAF를 사용하는 게 좋습니다. WAF는 아키텍처의 변경 없이 CloudFront, API Gateway, AppSync, ALB에 적용할 수 있으며 웹 ACL(액세스 제어 목록)을 정의한 다음 보호하려는..

DevOps/AWS 2023.04.25
728x90