일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 환경구성
- athena
- 로그 데이터
- 인텔리J
- Study
- 카이호스트만
- AWS
- JavaScript
- jQuery
- ibsheet
- #jQuery
- AWS SQS
- Log
- intellij
- aws lambda
- s3
- 자바
- db
- AWS Athena
- 아이비시트
- aws S3
- Git
- function
- 환경 구성
- Java
- 자바스크립트
- naver smartEditor
- AWS Glue
- java8
- 자바8
- Today
- Total
목록DEV/AWS (14)
애매한 잡학사전
아래 링크의 로그 데이터 처리하기에서 S3에 로그 파일을 업로드하는 배치 프로그램을 개발했었는데 비슷한 로그 파일 및 통계 프로그램들이 늘어서 비슷한 배치 프로그램도 계속 추가되어야 하는 상황이 발생하였습니다. 그래서 고민하다 DI 적용으로 코어 로직은 그대로 두고 옵션 형태로 조건만 변경해서 동작하는 방식으로 리팩터링을 진행하여 정리하고자 합니다. AWS Athena, Glue, S3 활용으로 로그 데이터 처리하기 with Batch 1. Flow - Batch 프로그램으로 별도의 시스템을 사용하지 않고 바로 S3로 데이터를 저장하는 프로세스 2. 환경 세팅 - 내용이 너무 많아 별도로 정리 하였습니다. 각 링크를 참고하시면 되겠습 dev-gabriel.tistory.com 순서는 다음과 같습니다. 1..
아래의 표와 같은 날짜가 동적으로 변경되는 List를 화면에 출력할 때 일반적인 RDB에서는 PIVOT 기능을 활용하여 쿼리를 아래 표와 같은 모양으로 실행하면 쉽게 구현할 수 있습니다. 그러나 AWS Athena에서는 아래 표와 같은 모양으로 쿼리를 실행할 수 없어서 JAVA에서 List를 만들어 주려고 합니다. 회사 코드 회사 명 2022-01-01 2022-01-02 2022-01-03 2022-01-04 2022-01-05 ... COMP001 우리회사 100 200 110 110 123 ... COMP002 니네회사 200 330 111 220 444 ... Athena Table 구조 Athena 테이블 구조는 다음과 같이 같단하게 구성하였습니다. CREATE EXTERNAL TABLE ex_..
개요 현재 시스템이 운영 DB와 통게, 로그 데이터가 한 곳에 있어 사용자가 많을 때는 통계나 로그 데이터를 활용할 수 없는 상황이었습니다. 그래서 AWS Athena를 적용 시켜 로그, 통계 데이터를 이관 처리를 하고 Web에서 활용할 수 있는 방법을 구현 하였고, 만족할만한 결과가 나왔습니다. 혹시 환경 구성이 궁금하시면 하단의 링크를 통해서 확인할 수 있습니다. 그래서 이 블로그에 작성할 내용은 Java 에서 AWS Athena로 Query를 실행시켜 간단한 게시판을 만들어 보려고 합니다. 1. DataSearchInAthena 클래스 1) AWS 접근 권한 - AWS Athena accessKeyId 와 secretAccessKey 를 발급 받아서 AWS 접근할 수 있는 권한을 생성합니다. /**..
1. 개요 - 상황 1) 사용자가 Web에서 클릭한 모든 기능에 대해 데이터베이스에 저장 2) 하루 평균 40만 ~ 50만 건의 데이터가 저장 3) 현재까지 약 4억 건의 데이터가 저장 되어 있음 4) DBMS에서 쿼리 실행 시 Web 사용자가 많을 경우 DB lock 현상이 발생 5) 운영 DB와 Data log 데이블이 한 서버에 있어서 log 데이터 조회 시 DB 커넥션 증가 : 위 상황으로 인해 log data를 효율적으로 활용할 수 있게 새로운 시스템으로 이관이 필요해 진행 하였고 히스토리를 정리하려고 합니다. 2. 환경 - 데이터베이스 : MS-SQL - 개발언어 : JAVA - 도입 시스템 : AWS S3, AWS Athena, AWS Lambda, AWS SQS, AWS Glue, Java..
1. Flow - Batch 프로그램으로 별도의 시스템을 사용하지 않고 바로 S3로 데이터를 저장하는 프로세스 2. 환경 세팅 - 내용이 너무 많아 별도로 정리 하였습니다. 각 링크를 참고하시면 되겠습니다. 2-1. Batch - 일반 Java application (maven) 프로젝트 생성 2-2. AWS S3 로그 데이터 처리를 위한 AWS S3 환경 구성 - 버킷 생성 : 버킷 이름 작성 후 나머지 옵션들은 그냥 기본으로 놓고 스크롤 제일 하단으로 내린 후 버킷 만들기 버튼 선택 dev-gabriel.tistory.com 2-3. AWS Glue 로그 데이터 처리를 위한 AWS Glue 환경 구성 1. AWS Glue Crawler 추가 - 클롤러 추가 버튼 클릭 합니다. - 크롤러 이름을 입력 ..
1. Flow - Batch, AWS SQS, AWS Lambda 사용 2. 환경 구성 - 내용이 너무 많아 별도로 정리 하였습니다. 각 링크를 참고하시면 되겠습니다. 2-1. Batch - 일반 Java application (maven) 프로젝트 생성 2-2. AWS SQS 로그 데이터 처리를 위한 AWS SQS 환경 구성 1. 대기열 생성 - AWS 콘솔 접속 후 AWS SQS 페이지로 이동 - 대기열 생성 버튼 클릭 - 대기열 세부 정보 입력 - 구성 정보 입력 (default 유지, 필요시 수정) - 액세스 정책 선택 (default 유지) - 대기열.. dev-gabriel.tistory.com 2-3. AWS Lambda 로그 데이터 처리를 위한 AWS Lambda 환경 구성 1. 람다 함수..
1. Flow - AWS SQS, AWS Lambda 사용 2. 환경 세팅 - 내용이 너무 많아 별도로 정리 하였습니다. 각 링크를 참고하시면 되겠습니다. 2-1. AWS SQS 로그 데이터 처리를 위한 AWS SQS 환경 구성 1. 대기열 생성 - AWS 콘솔 접속 후 AWS SQS 페이지로 이동 - 대기열 생성 버튼 클릭 - 대기열 세부 정보 입력 - 구성 정보 입력 (default 유지, 필요시 수정) - 액세스 정책 선택 (default 유지) - 대기열.. dev-gabriel.tistory.com 2-2. AWS LAMBDA 로그 데이터 처리를 위한 AWS Lambda 환경 구성 1. 람다 함수 생성 - AWS 콘솔 접속, lambda 검색 후 서비스 선택 - 왼쪽 메뉴에서 함수 선택 후 오른..
1. 대기열 생성 - AWS 콘솔 접속 후 AWS SQS 페이지로 이동 - 대기열 생성 버튼 클릭 - 대기열 세부 정보 입력 - 구성 정보 입력 (default 유지, 필요시 수정) - 액세스 정책 선택 (default 유지) - 대기열 생성 버튼 클릭 (나머지 옵션 사항은 필요 시 수정) - 대기열 생성 완료 2. 대기열 엑세스 정책 추가 - AWS SQS 세부 정보의 arn 항목의 주소를 복사 - AWS SQS 의 엑세스 정책 탭 선택 후 액세스 정책(권한) 항목의 편집 버튼 클릭 - 변경된 화면에서 액세스 정책 항목의 '정책 생성기'를 클릭 - 각 항목 입력 후 Add Statement 버튼 클릭 -> Principal : * -> Actions : "sqs:CreateQueue, sqs:GetQu..
1. 람다 함수 생성 - AWS 콘솔 접속, lambda 검색 후 서비스 선택 - 왼쪽 메뉴에서 함수 선택 후 오른쪽 목록에서 함수 생성 버튼 클릭 - 함수 생성 기본 정보 입력 - 런타임은 각자 상황에 맞는 언어를 선택해서 사용 - 기본 정보 입력 후 함수 생성 버튼 클릭 - 함수 생성 완료 2. Lambda 함수에 소스 업로드 - 코드 소스 업로드시 '에서 업로드' 버튼 클릭, 런타임 설정시 '편집' 버튼 클릭 2-1. 코드 소스 업로드 - '.zip 또는 .jar 파일' 항목 선택 - 파일 업로드 후 저장 버튼 클릭 2-2. 런타임 설정 - 핸들러 정보 항목에 실행 핸들러 패키지 정보 입력 후 저장 버튼 클릭 3. 테스트 이벤트 - 각 항목 입력 후 저장 버튼을 클릭 하면 해당 테스트가, 저장되고 ..
1. Flow - Redis, Batch 프로그램 사용 2. 환경 세팅 - 내용이 너무 거대해지는 것 같아서 별도로 정리하였습니다. 각 링크를 참고하시면 되겠습니다. 2-1. Redis 개발(로컬) PC에 REDIS 테스트 환경 세팅 - 2022년 6월 27일 Redis for windows 는 공식적으로 지원하지 않기 때문에 개발pc에서 테스트를 하고 싶을 경우 Microsoft Store에서 Ubuntu 22.04 LTS 를 설치해서 사용할 수 있습니다. - 공식 홈페이지 Redis R.. dev-gabriel.tistory.com 2-2. AWS S3 로그 데이터 처리를 위한 AWS S3 환경 구성 - 버킷 생성 : 버킷 이름 작성 후 나머지 옵션들은 그냥 기본으로 놓고 스크롤 제일 하단으로 내린 ..