전체 글

데이터엔지니어 / Data Engineer
에어플로우 airflow

[Airflow] 컴포넌트, MWAA

Airflow 컴포넌트Airflow는 복잡한 워크플로우를 스케줄링하고 관리하기 위한 오픈소스 플랫폼임.데이터 엔지니어 및 개발자들은 작업의 의존성을 명확히 정의하고, 반복적인 작업을 자동화할 수 있음.Airflow는 여러 컴포넌트로 구성되어 있으며, 각각의 역할이 있음 Airflow 각 컴포넌트 역할1. Web ServerFlask를 기반으로 한 웹 어플리케이션으로 사용자 인터페이스를 제공함.웹 서버를 통해 사용자는 작업 스케줄, 실행 상태 확인, 로그 보기 등의 작업을 수행할 수 있음. 2. Scheduler워크플로우의 스케줄링을 담당함.이 컴포넌트는 DAGs(방향성 비순환 그래프)를 주기적으로 폴링하며, 실행해야 할 새로운 작업 인스턴스를 확인하고 실행함. 3. Executor실제 작업을 실행하는 역..

AWS

[AWS] EMR, Yarn, Spark 특징

AWS EMRAWS EMR은 대규모 데이터 처리, 분석 및 머신러닝을 위해 설계된 관리형 클라우드 서비스임.AWS EMR은 특히 빅데이터 환경에서 많이 사용되며, Hadoop과 Apache Spark 같은 오픈 소스 프레임워크를 사용하여 데이터를 처리함. AWS EMR 핵심 기능1. 스케일링EMR은 수요에 따라 자동으로 클러스터 크기를 조정할 수 있어 사용자는 데이터 처리량에 맞게 자원을 유연하게 확장하거나 축소할 수 있음. 2. 다양한 프레임워크 지원EMR은 Apache Hadoop, Spark, HBase, Presto 등 다양한 빅데이터 프레임워크를 지원함.이는 다양한 유형의 데이터 처리 작업을 가능하게 함. 3. 비용 효율성사용자는 실제 사용한 컴퓨팅 리소스에 대해서만 비용을 지불함.또한, 스팟 ..

스파크 spark

[Spark] Partition, Parquet 파일 크기

Spark PartitionSpark에서 파티션(Partition)은 큰 데이터 세트를 더 작은 청크로 나누는 개념임.데이터의 병렬 처리와 분산 처리 성능을 향상시키는 데 중요한 역할을 함.파티셔닝은 RDD(Resilient Distributed Dataset), DataFrame, Dataset 등 Spark의 주요 데이터 구조들에서 자동으로 관리됨. Spark Partition 기본 개념1. 파티션 정의Spark에서 데이터를 논리적으로 분할한 조각임.각 파티션은 클러스터의 다른 노드에서 독립적으로 처리될 수 있음. 2. 병렬 처리파티션은 병렬 처리의 기본 단위가 되며, 각 파티션은 클러스터 내의 다른 실행자(Executor)에 의해 동시에 처리될 수 있음. Spark Partition 관리Spark..

스파크 spark

[Spark] Spill, 직렬화 메커니즘

Apache Spark SpillApache Spark에서 spill은 메모리 용량을 초과할 때 발생하는 작업을 의미함.Spark는 큰 데이터 세트를 처리할 때 필요한 메모리를 모두 확보할 수 없는 경우, 임시적으로 디스크에 데이터를 저장함.이 과정을 spill to disk라고 하며, 이를 통해 메모리 부족 문제를 회피하고 작업의 계속을 가능하게 함. Apache Spark Spill 발생 원인Spark에서 다양한 상황에서 spill이 발생할 수 있음.1. Shuffle 작업 중여러 노드 간에 데이터를 재분배할 때, 각 노드에서 처리해야 할 데이터가 메모리에 들어갈 수 없는 경우. 2. Aggregations 및 Joins큰 키에 대한 데이터 집계나 조인을 수행할 때, 관련 데이터를 메모리에 모두 유지..

AWS

[AWS] Aurora, KMS, Secrets Manager, 자동 자격증명 교체

AWS AuroraAWS의 관리형 관계형 데이터베이스 서비스 중 하나임.MySQL, PostgreSQL과 호환되는 이 데이터베이스는 확장성, 내구성 및 성능을 강조함 AWS Aurora 특징1. 성능Aurora는 고성능을 제공함.여러 가용 영역에 걸쳐 데이터를 복제하고, SSD 기반 스토리지를 사용하여 빠른 I/O 성능을 제공함.자동화된 데이터베이스 캐시 및 스토리지 관리를 통해 응용 프로그램의 성능을 최적화함. 2. 확장성Aurora는 필요에 따라 자동으로 확장하고 축소할 수 있는 기능을 제공함.이를 통해 응용 프로그램의 요구 사항이 변경되어도 데이터베이스 성능을 유연하게 조정할 수 있음. 3. 내구성Aurora는 여러 가용 영역에 걸쳐 데이터를 복제하여 내구성을 보장함.이를 통해 하나의 가용 영역에서..

AWS

[AWS] EC2 Auto Scaling, CloudWatch 지표 스트림, Kinesis Data Firehose

AWS EC2 Auto Scaling 이벤트 모니터링 방법다양한 도구와 서비스를 이용할 수 있음.가장 일반적으로는 AWS CloudWatch를 사용하여 이벤트를 모니터링하고 경고를 설정할 수 있음. 1. Amazon CloudWatch 설정AWS Management Console 에서 Amazon CloudWatch 서비스로 이동함.좌측 탐색 창에서 "Events"를 선택함. 2. 이벤트 생성"Create rule"을 클릭하여 새로운 이벤트 규칙을 생성함."Event Source"를 "EC2 Auto Scaling"으로 선택함.원하는 이벤트 패턴을 선택하거나 패턴을 직접 정의할 수 있음.예를 들어, EC2 인스턴스 시작, 종료, 실패 등의 이벤트를 모니터링 할 수 있음. 3. 대상 설정이벤트가 발생했을 ..

AWS

[AWS] Lambda 지연시간, Lambda SnapStart, DynamoDB, DynamoDB 모드 종류

AWS Lambda 지연 시간람다에서 지연 시간은 함수가 실행되기 위해 필요한 시간임.이 지연 시간은 여러 요소에 의해 결정됨 1. Cold Start vs Warm Start람다 함수는 Cold Start 및 Warm Start 라는 두 가지 상태를 가짐.Cold Start는 함수가 처음 실행될 때 발생하며, 람다가 컨테이너를 시작하고 함수 코드를 로드하는 시간이 소요됨.Warm Start는 이미 실행 중인 컨테이너에서 함수를 다시 실행할 때 발생하며, 이 경우 컨테이너가 이미 실행 중이므로 시작 및 로드 시간이 단축됨. 2. 함수 크기함수 코드의 크기가 함수 실행에 영향을 미칠 수 있음.큰 함수 코드는 다운로드 및 실행하는 데 더 많은 시간이 걸릴 수 있음. 3. 리소스 할당량람다 함수에 할당된 메모..

AWS

[AWS] VPC, 서브넷, AZ, 인스턴스

AWS VPC(Virtual Private Cloud)AWS 클라우드에서 가상의 네트워크를 프로비저닝하고 구성할 수 있는 서비스임.이는 AWS 리전 내의 논리적으로 격리된 가상 네트워크를 생성하여 AWS 리소스를 배치할 수 있는 환경을 제공함.AWS VPC는 클라우드 네트워킹의 핵심 요소임.보안, 확장성 및 관리 용이성을 제공하여 AWS 리소스를 안전하게 배포하고 운영할 수 있도록 지원함. AWS VPC 특징1. 논리적 격리VPC는 논리적으로 격리된 네트워크 공간을 제공함.여러 고객이 같은 하드웨어 리소스를 공유하지만 서로의 네트워크 간에 격리되어 있음. 2. 사용자 정의VPC를 사용하여 IP 주소 범위, 서브넷, 라우팅 테이블, 네트워크 게이트웨이 등을 사용자 정의할 수 있음. 3. 네트워크 접근 제어..

AWS

[AWS] SQS, 대기열, SNS, LB종류, CLB

AWS SQS (Amazon Simple Queue Service)AWS의 메시지 대기열 서비스이 서비스를 사용하면 분산 시스템 간에 메세지를 전송하고 저장할 수 있음여러 시스템이나 컴포넌트 간에 비동기적으로 통신할 때 유용함여러 응용 프로그램 간의 결합을 느슨하게 만들어줌작업을 조정하고 분배할 수 있는 중앙 집중식 메시지 대기열을 제공함분산 시스템 아키텍처에서의 중요한 구성 요소로 사용됨.마이크로서비스, 서버리스 컴퓨팅, 이벤트 기반 아키텍처 등 다양한 환경에서 활용됨.예를 들어, 웹 애플리케이션에서 백그라운드 작업을 처리하거나, 여러 컴포넌트 간에 이벤트를 전달하거나, 다른 AWS 서비스와 통합하여 작업을 조정하는 데 사용될 수 있음. AWS SQS 주요 특징1. 간단성SQS는 관리형 서비스이기 때문..

AWS

[AWS] CloudTrail, CloudWatch, Lambda, SNS, SQS

AWS CloudTrailAWS 계정에서 수행되는 작업을 모니터링하고 로깅하는 서비스.이를 통해 AWS 리소스의 사용, 변경 및 액세스를 추적하고 감사할 수 있음.AWS CloudTrail은 AWS 환경에서 보안, 감사 및 규정 준수 요구 사항을 충족하기 위한 중요한 도구임.이를 통해 조직은 AWS 리소스의 활동을 추적하고 모니터링하여 보안 위협을 식별하고 대응할 수 있음. AWS CloudTrail에 대한 설명1. 로그 기록AWS CloudTrail은 다양한 AWS 서비스에 대한 활동을 기록함.이러한 활동에는 관리 콘솔, AWS CLI, AWS SDK를 통한 API 호출 등이 포함됨. 2. 활동 추적CloudTrail은 각 활동에 대한 세부 정보를 기록함.이 정보에는 작업을 수행한 사용자, 작업의 일시..

AWS

[AWS] S3, 수명주기관리, S3 Glacier, 데이터 암호화

AWS S3 (Amazon Simple Storage Service)AWS의 클라우드 스토리지 서비스 중 하나로, 데이터를 안전하게 저장하고 웹상에서 쉽게 접근할 수 있도록 해줌.AWS S3는 대규모 데이터 저장 및 웹 응용 프로그램에 널리 사용되며, 안정성, 확장성 및 비용 효율성을 제공함. AWS S3 주요 특징과 개념1. 데이터 저장AWS S3를 사용하여 거의 모든 종류의 데이터를 저장할 수 있음.텍스트, 이미지, 동영상, 데이터베이스 백업 등과 같은 다양한 유형의 데이터를 포함. 2. 강력한 보안AWS S3는 데이터를 안전하게 저장하기 위해 다양한 보안 기능을 제공함.데이터 암호화, 접근 제어 목록(ACLs), 버킷 정책, IAM(Identity and Access Management) 정책 등이..

개인 일정/공부

객체 스토리지 시스템, 직렬화, 역직렬화

객체 스토리지 시스템 (Object Storage System) - 객체 스토리지 시스템은 데이터를 저장하는 데 사용되는 혁신적인 기술 - 데이터를 객체 단위로 저장하며, 각 객체는 데이터 자체와 해당 데이터에 대한 메타데이터를 포함 - 대량의 데이터를 효율적으로 관리하고 액세스하는 데 매우 유용 객체 스토리지 시스템 특징 (Features of Object Storage Systems) 1. 객체 - 객체 스토리지 시스템에서 데이터의 기본 단위 - 각 객체는 데이터 자체와 해당 데이터에 대한 메타데이터를 포함 (생성 일자, 크기, 유형) 2. 분산 스토리지 - 객체 스토리지 시스템은 보통 분산 스토리지 아키텍처를 기반으로 함 - 데이터를 여러 물리적 위치에 분산하여 저장하고 관리함으로써 확장성과 내결함..

개인 일정/공부

인먼 데이터웨어하우스란

인먼 데이터웨어하우스는 기업이나 조직이 다양한 소스에서 수집한 데이터를 중앙 집중화하여 저장, 관리, 분석하는 시스템입니다. 데이터웨어하우스는 의사 결정을 지원하고 비즈니스 인텔리전스(Business Intelligence, BI)를 제공하기 위해 사용됩니다. 다양한 데이터 소스로부터 데이터를 추출하고 변환하여 데이터웨어하우스에 적재하는 과정을 ETL(Extract, Transform, Load) 프로세스라고 합니다. 이 과정에서 데이터는 일관된 형식으로 표준화되고, 데이터 품질이 관리되며, 필요에 따라 집계되거나 요약됩니다. 데이터웨어하우스는 크게 두 가지 형태로 구성될 수 있습니다. 1. **전통적인 데이터웨어하우스**: 일반적으로 중앙 집중식 아키텍처를 기반으로 하며, 대규모의 데이터를 처리할 수 ..

개인 일정/공부

메세지큐 시스템이란?

메시지 큐(Message Queue)는 컴퓨터 시스템 간에 데이터를 비동기적으로 전송하는 데 사용되는 소프트웨어 패턴 또는 시스템입니다. 이는 발신자와 수신자 간의 통신을 위해 사용됩니다. 메시지 큐는 일반적으로 다음과 같은 기능을 제공합니다. 1. **비동기 통신**: 메시지 큐는 발신자와 수신자 간의 통신을 비동기적으로 처리합니다. 이는 발신자가 메시지를 전송하면, 해당 메시지가 바로 처리되지 않고 메시지 큐에 저장되며, 나중에 수신자가 메시지를 처리할 준비가 될 때까지 대기합니다. 2. **간접 통신**: 발신자와 수신자 간의 통신은 직접적으로 이루어지지 않고, 메시지 큐를 통해 이루어집니다. 이를 통해 발신자와 수신자 간의 결합도를 낮추고 유연성을 제공합니다. 3. **이벤트 기반 아키텍처**: ..

개인 일정/공부

핫 데이터, 웜 데이터, 콜드 데이터란

핫 데이터, 웜 데이터, 콜드 데이터는 데이터 관리와 저장에 관련된 용어들이며, 주로 데이터의 활용 빈도와 관련하여 사용됩니다. 1. 핫 데이터 (Hot Data): - 핫 데이터는 매우 빈번하게 액세스되고 업데이트되는 데이터를 가리킵니다. - 보통 실시간 처리나 빠른 응답이 요구되는 작업에 사용됩니다. - 예를 들어, 온라인 거래 데이터, 실시간 센서 데이터, 실시간 로그 등이 핫 데이터에 해당할 수 있습니다. - 보통 높은 성능과 고가용성을 제공하는 스토리지 시스템에 저장됩니다. 2. 웜 데이터 (Warm Data): - 웜 데이터는 핫 데이터보다는 덜 빈번하게 액세스되지만, 여전히 자주 액세스되는 데이터를 의미합니다. - 주로 분석이나 보고서 생성과 같은 작업에 사용됩니다. - 예를 들어, 몇 주 ..

개인 일정/공부

메세지 큐 시스템이란

메시지 큐(Message Queue) 시스템은 분산 시스템에서 다른 컴포넌트 간에 데이터를 안전하게 전달하는 데 사용되는 중요한 컴퓨팅 구성 요소입니다. 이 시스템은 송신자가 메시지를 생성하고 수신자가 해당 메시지를 소비하는 방식으로 작동합니다. 여기에는 몇 가지 주요 구성 요소와 개념이 있습니다: 1. **메시지**: 메시지 큐를 통해 전송되는 데이터 단위입니다. 메시지는 일반적으로 텍스트, JSON, XML 또는 기타 형식의 데이터일 수 있습니다. 예를 들어, 주문을 처리하는 온라인 상점 애플리케이션의 경우 주문 정보가 메시지로 표현될 수 있습니다. 2. **생산자(Producer)**: 메시지를 생성하여 메시지 큐에 넣는 역할을 하는 애플리케이션, 프로세스 또는 컴포넌트입니다. 주문을 처리하는 시스..

개인 일정/공부

AWS IAM이란?

AWS IAM(Identity and Access Management)은 AWS(아마존 웹 서비스)에서 제공하는 서비스 중 하나로, AWS 리소스에 대한 인증 및 권한 관리를 중앙 집중화하는 데 사용됩니다. IAM을 사용하면 사용자, 그룹 및 역할을 생성하고 관리하여 각 사용자 또는 리소스에 대한 액세스 권한을 정확히 제어할 수 있습니다. 이를 통해 보안을 강화하고 AWS 리소스에 대한 액세스를 제한할 수 있습니다. 여러 가지 주요 개념과 기능이 있습니다: 1. **사용자(Users)**: AWS 계정에 대한 액세스를 개별적으로 관리할 수 있는 개체입니다. 사용자는 AWS 리소스에 대한 액세스를 요청할 수 있습니다. 2. **그룹(Groups)**: 여러 사용자에 대한 권한을 일괄적으로 관리할 수 있는 ..

개인 일정/공부

데이터 아키텍처란?

데이터 아키텍처는 데이터의 저장, 관리, 이동, 처리 및 보호를 위한 구조와 프로세스를 설계하는 것을 의미합니다. 이는 조직이 데이터를 효과적으로 활용하여 비즈니스 목표를 달성하는 데 도움이 됩니다. 데이터 아키텍처는 주로 다음과 같은 요소로 구성됩니다. 1. **데이터 소스 및 수집**: 데이터는 다양한 소스에서 생성되며, 데이터 아키텍처는 이러한 다양한 소스에서 데이터를 수집하는 방법을 정의합니다. 소스에는 내부 시스템, 외부 파트너, 웹 서비스, 센서, 소셜 미디어 등이 포함될 수 있습니다. 데이터는 실시간으로 스트리밍되거나 배치 프로세스를 통해 주기적으로 수집될 수 있습니다. 2. **데이터 저장**: 수집된 데이터는 저장되어야 합니다. 데이터 아키텍처는 어디에 데이터를 저장할지, 어떤 형식으로 ..

개인 일정/공부

데이터옵스란

데이터 옵스(DataOps)는 데이터 관리 및 데이터 파이프라인을 자동화하고 효율화하는 프로세스와 방법론입니다. 소프트웨어 개발에서의 DevOps(Development Operations)가 소프트웨어 개발과 운영 간의 경계를 허물고 지속적인 통합 및 배포를 통해 효율성을 높이는 데 중점을 두듯이, 데이터 옵스는 데이터 관리와 운영을 통합하여 데이터에 대한 개발과 운영 사이의 경계를 허물어 데이터 파이프라인을 개선하고 지속적인 데이터 통합 및 배포를 가능하게 합니다. 데이터 옵스의 핵심 목표는 다음과 같습니다: 1. **자동화된 데이터 파이프라인 구축**: 데이터 수집, 전처리, 저장, 분석 및 배포 과정을 자동화하여 시간과 비용을 절감하고 효율성을 높입니다. 2. **데이터 품질 관리**: 데이터 품질..

박경태
과거의 나를 위해