ssung_데이터 엔지니어링 64

최종 프로젝트_(6)

AWS Cli Sync 권한 문제 문제 : ubuntu 환경에서 aws cli를 통해 sync를 진행했을 때 해당 폴더에 sync를 진행하고자 했을 때 '[Errno 13] Permission denied' 에러가 발생함 원인 : ubuntu 환경에서 폴더 및 파일 권한에 대한 문제로 발생하는 이슈 해결 : ubuntu 환경에서 해당 폴더에 모든 권한을 주는 명령어 실행 sudo chmod 777 '파일 경로' 정상적으로 sync 된 것을 확인

최종 프로젝트_(4)

AWS RDS를 사용해 EC2 연결 후 Airflow에 연결하기 기본적으로 VPC가 구성되어 있는 상황에서 연동하고자 하는 EC2가 Private subnet 안에 있고 보안그룹이 설정되어 있는 상태로 진행 1. 연결하고자 하는 EC2의 VPC, 서브넷, 보안그룹 정보 확인 2. RDS DB 에서 사용할 보안 그룹 생성하기 '보안 그룹' 탭으로 이동하여 '보안 그룹 생성' 연결하고자 하는 EC2의 VPC와 동일한 VPC 그룹 정보 입력 인바운드 규칙 입력 (유형 - PostgreSQL, 소스 정보에는 연결하고자 하는 EC2 보안 그룹 선택) 3. RDS DB 생성하기 RDS 서비스로 들어가 데이터 베이스 생성 PostgreSQL 선택 사용하고자 하는 엔진 버전과 템플릿 설정 클러스터 정보, 사용자 정보 ..

최종 프로젝트 (3)

Airflow web server 실행 오류 원인 : ubuntu 서버 내에 설치되어 있는 airflow 내의 airflow.cfg 파일의 내용 중 'sql_alchemy_conn'의 경로가 올바르지 않았음 해결 : 올바른 경로를 입력하여 db 초기화 후 airflow web server 재실행 나아가야 할 부분 : private subnet의 postgresql EC2와 연결을 해야하는데 bastion host를 통해 접근이 가능한 상황. 이에 따라 올바른 ip 주소를 입력해주어야 하는데 ip 주소 입력에 난황을 겪는중

최종 프로젝트_(2)

AWS VPC VPC란? 가상의 데이터센터 리전 단위 외부에 격리된 네트워크 컨테이너 구성 가능 (여기서 컨테이너는 Not like Dokcer) 원하는 대로 사설망 구축 가능 부여된 IP 대역을 분할하여 사용 가능 VPC 사용사례 EC2, RDS, Lambda 등의 다양한 AWS의 컴퓨팅 서비스 실행 다양한 서브넷 구성 보안 설정 (IP Block, 인터넷에 노출되지 않는 EC2 구성) VPC 구성요소 서브넷 인터넷 게이트웨이 NACL(나클) / 보안 그룹 라우트 테이블 NAT Instance / NAT Gateway Bastion Host VPC Endpoint 서브넷 VPC의 하위 단위로 VPC에 할당된 IP를 더 작은 단위로 분할한 개념 하나의 서브넷은 하나의 가용영역(AZ) 안에 위치 CIDR ..

최종 프로젝트_(1)

AWS EC2 EC2란? Elastic Compute Cloud 의 약어 AWS에서 제공하는 클라우드 컴퓨팅 서비스 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스 제공 EC2 인스턴스 유형 Type t, Type m, Type inf 등등.. 범용 및 컴퓨팅, 메모리, 저장 최적화 등 성능 목적에 따라 여러가지 타입 존재 범용 : vCPU, 메모리, 네트워크, 저장 공간 등이 평균적인 사양으로 제공 컴퓨팅 최적화 : 다른 인스턴스 패밀리에 비해 메모리 대비 vCPU 비율이 높음 메모리 최적화 : 다른 인스턴트 패밀리에 비해 메모리 용량이 훨씬 크다 스토리지 최적화 : 다른 인스턴스 패밀리보다 스토리지 용량이 훨씬 크거나 초고속 I/O가 제공 GPU 인스턴스 : 고성능의 NVIDIA GPU가 장착되어 ..

Kafka와 Spark Streaming_(4, 5)

Kafka Topic 파라미터 설정 Topic 생성시 다수의 Partition이나 Replica를 주려할 때 KafkaAdminClient 오브젝트 생성 후 create_topics 함수로 Topic 추가 create_topics의 인자로는 NewTopic 클래스의 오브젝트 지정 client = KafkaAdminClient(bootstrap_servers=bootstrap_servers) topic = NewTopic( name=name, num_partitions=partitions, # partition의 수 = 1 replication_factor=replica) # Replication의 수 = 1 client.create_topics([topic]) Kafka Producer의 파라미터 파라미..

Kafka와 Spark Streaming_(2, 3)

Kafka란? 실시간 데이터를 처리하기 위한 오픈소스 분산 스트리밍 플랫폼 데이터 재생이 가능한 분산 커밋 로그 (Distributed Commit Log) Scalability와 Fault Tolerance를 제공하는 Publish-Subscription 메시징 시스템 Producer-Consumer High Throughput과 Low Latency를 실시간 데이터 처리에 맞게 구현 분산 아키텍처를 따르기 때문에 Scale Out이란 형태로 스케일 가능 서버 추가를 통해 Scalability 달성 (서버 = Broker) 정해진 보유기한 (retention period) 동안 메시지를 저장 기존 메시징 시스템 및 DB와의 비교 kafka는 메시지를 보유 기간 동안 저장 소비자가 오프라인 상태일 때에도..

Kafka와 Spark Streaming_(1)

실시간 데이터 처리 데이터 처리의 일반적인 단계 데이터 수집 (Data Collection) 데이터 저장 (Data Storage) 데이터 처리 (Data Processing) 데이터 처리의 고도화 처음에는 배치로 시작 처리할 수 있는 데이터 양이 중요 서비스가 고도화되면 점점 더 실시간 처리 요구가 생기기 시작 Realtime 처리 vs Semi Realtime 처리 동일 데이터 소비가 필요한 케이스 증가 : 다수의 데이터 소비자 등장 처리량 (Throughput) vs 지연시간 (Latency) 처리량 : 주어진 단위 시간 동안 처리할 수 있는 데이터의 양 (배치 시스템에서 가장 중요) - 처리량이 클수록 처리할 수 있는 데이터 양이 큼 (데이터 웨어하우스에서 중요) 지연시간 : 데이터를 처리하는데 ..

하둡&Spark_(2)

Spark 빅데이터 처리를 위한 오픈소스 분산 처리 플랫폼 Spark 데이터 처리 흐름 데이터프레임(DF)은 작은 파티션들로 구성 데이터프레임은 한 번 만들어지면 수정 불가 (Immutable) 입력 데이터프레임을 원하는 결과 도출까지 다른 데이터 프레임으로 계속 변환 sort, group by, filter, map, join .... 셔플링 : 파티션 간에 데이터 이동이 필요한 경우 발생 셔플링이 발생하는 경우 명시적 파티션을 새롭게 하는 경우 (Ex_파티션 수 줄이기) 시스템에 의해 이뤄지는 셔플링 (Ex_그룹핑에서의 aggregation, sorting) 셔플링이 발생할 때 네트워크를 타고 데이터가 이동 파티션의 개수는 spark.sql.shuffle.partitions가 결정 (기본값은 200이..

하둡&Spark_(1)

빅데이터 서버 한 대로 처리할 수 없는 데이터 기존의 소프트웨어로는 처리할 수 없는 규모의 데이터 4V (Volume, Velocity, Variety, Varecity) Volume - 데이터의 크기 Velocity - 데이터의 처리속도 Variety - 구조화/비구조화 데이터 Varecity - 데이터의 품질 빅데이터의 예 웹 수십 조개 이상의 웹 페이지 존재 -> 온갖 종류의 지식의 바다 웹 검색엔진 개발은 진정한 대용량 처리 사용자 검색어와 클릭 정보 자체도 대용량 요즘은 웹 자체가 NLP 거대 모델 개발의 훈련 데이터로 사용 빅데이터의 처리 특징 큰 데이터를 손실없이 보관할 방법 필요 : 스토리지 처리 시간이 오래 걸림 : 병렬처리 빅데이터는 비구조화 된 데이터일 가능성이 높음 : SQL 만으로..

728x90