분류 전체보기 40

[AWS] AppStream With Prometheus Monitoring

1. 목표 AWS AppStream2.0의 gpu 사용량을 모니터링 기존에 익숙한 Zabbix 대신 Prometheus를 사용한 이유는 Nvidia-SMI 기반 Exporter가 이미 Github에 있었고 (물론 Windows용으로 사용하기 위해서는 스크립트를 수정해야 했다), 동적으로 확장되는 특징을 가지고 있기 때문에 이를 동적으로 인식하기 위해서는 Zabbix의 Discovery 기능을 활용해야 하는데, 이는 호스트 단위로 제공되는 기능임. 또한, 세션 ID 및 User ID를 같이 Labels에 적용하기에 적합하지 않아 금번에 Prometheus를 활용하여 테스트 수행 2. 사용 솔루션 Nvidia-smi AWS AppStream2.0 Prometheus Docker 약간의 Python 및 Gol..

Cloud/AWS 2020.10.19

Kernel of Linux (I) - Terminology and System Call

본 게시글은 OLC의 강좌 Kernel of Linux를 수강한 내용 중 본인에게 필요한 정리한 글입니다. 오래된 강의임에도 불구하고 교수님이 강의를 굉장히 이해하기 쉽게 해주시기 때문에 필요하다면 강의를 들어보시는 것을 추천합니다. Terminology Operating System A Program that acts as an intermediary between a user of computer and the computer hardware Kernel 컴퓨터가 부팅한 이후 종료될 때까지 계속 메모리에 상주하는 프로그램 (Memory Resident Part of OS, Just C Program.) * consists of functions - other programs can call (some..

OS Management/Linux 2020.09.07

AWS와 GDPR (General Data Protection Regulation)

금번에 GDPR과 AWS에서 제공해주는 내용에 관해 공부할 기회가 있어 블로그에도 해당 내용을 정리해두고자 한다. 아래 내용은 "AWS에서 GDPR 규정 준수 탐색"이라는 백서를 기반으로 작성한 글로, 백서의 내용을 요약 + 개인적으로 궁금한 사항에 대해 정리하였다. GDPR이란? 세계적으로 빅데이터, AI 등이 화두가 되면서 이것의 기초가 되는 정보, 특히 개인정보에 대한 보호가 점진적으로 강화되고 있는 것으로 보인다. 2018년도부터 시행된 EU의 GDPR(General Data Protection Regulation)은 일반 개인정보보호법이란 뜻으로, 이전의 EU 개인정보보호지침((Data Protection Directive 95/46/ EC)이 권고 수준에 그쳤다면 이번 GDPR은 유럽연합 전 ..

Cloud/AWS 2020.09.06

AWS Lambda/Kinesis Stream Best Practice

개요 Kinesis Stream을 Lambda와 연계시키기 위해서는 Event source mapping을 중간에 설정해주어야 한다. 물론 어려운 과정은 아니며, 이렇게 되면 아래와 같은 Data Flow가 구성된다. 이러한 아키텍처가 구성되었을 때, 어떻게 해야 고가용성/고성능의 아키텍처를 구현할 수 있을까에 대해 글을 써보고자 한다. Scale Out 먼저, Kinesis Stream으로 유입되는 데이터가 많아졌을 경우, 어떤 대응이 필요한지에 대해 고민해보았다. 간단히 생각해보면, Shard의 개수를 늘리면 되는데, 이 때 과연 Lambda는 어떻게 확장해주어야 하는가? 결론적으로, Kinesis Stream에서 Shard가 증가하게 되면 이것의 개수만큼 Lambda 개수가 자동으로 늘어나게 된다...

Study 2020.06.07

Python Testing 기법 기초 내용 정리

Python Testing 기법 Mocking 단위 테스트를 작성할 때 외부에 의존하는 부분을 임의의 가짜로 대체하는 기법 Patching mock.patch unittest.mock.patch(target, new=DEFAULT, spec=None, create=False, spec_set=None, autospec=None, new_callable=None, **kwargs) patch()는 함수 데코레이터, 클래스 데코레이터 또는 컨텍스트 관리자 역할을 합니다. 함수 본문이나 with 문 내부에서, target은 new 객체로 패치됩니다. 함수/with 문이 종료될 때 패치가 복구됩니다. new가 생략되면, 대상(target)은 패치된 객체가 비동기 함수이면 AsyncMock으로, 그렇지 않으면 M..

Study 2020.06.07

Learn JMeter in 60 minutes

https://www.youtube.com/watch?time_continue=2731&v=UUFi94tx9uI&feature=emb_title JMeter는 아래 위키피디아 설명과 같이 자바기반 오픈소스 테스트 솔루션으로, 구글링을 하다가 JMeter에 관한 좋은 자료가 있어 포스팅한다. Apache JMeter is an Apache project that can be used as a load testing tool for analyzing and measuring the performance of a variety of services, with a focus on web applications. 내용은 자체 서버에 테스트용 블로그인 Ghost를 띄워놓고 JMeter를 통해 이것저것 기본적인 테스..

[Ansible] OS 별 include_tasks 분기

Packer 구성 중 Provisionor로 Ansible를 사용하여 초기 이미지를 셋팅하는 환경을 구성하였다. 이 때 향후 확장성을 고려하여 각 OS 별(예 : Ubuntu 18.04, Redhat 7 등)로 Role에서 각각의 Task를 타도록 구현하고자 하였다. 즉, 아래와 같은 Flow로 구성된다. packer build → Ubuntu_18.json → playbook.yml → roles/SSI/tasks/main.yml → (OS별 분기) roles/SSI/tasks/Ubuntu_18.yml 해당 구성을 위해서는 include_tasks를 사용해주면 된다. Ubuntu_18/roles/SSI/tasks/main.yml --- # tasks file for SSI - name: select O..

Study 2020.05.31

AWS Kinesis Stream - I

kinesis is a managed alternative to Apache Kafka. - Data is automatically replicated synchronously to 3AZ Kinesis Stream, Analytics and Firehose Kinesis Data Flow AWS Kinesis Stream Overview - Stream은 Shard와 Partitions으로 나뉨 - Data Retention is 24 hours by default(7일까지 보관 가능) - 여러 애플리케이션이 동일한 Stream을 소비할 수 있음 - 한번 Kinesis로 들어온 데이터는 삭제할 수 없음 (Immutability) Shard 샤드는 스트림에서 고유하게 식별되는 데이터 레코드 시퀀스입니다...

[Fluentd] filter_parser plugin에 대하여

아래의 fluentd configuration은 udp 5140 port로 listening을 하여 syslog type의 input을 받고 이를 두 차례 parsing 하여 stdout 하는 설정입니다. @type syslog port 5140 tag nginx.access @type syslog @type stdout @type parser key_name message reserve_data true @type nginx @type stdout syslog로 가져왔을 때 두차례나 parsing이 필요했다. 아직 입문이라 어떻게 할 지 당황했는데, 아래 출처의 블로그를 보고 해결할 수 있었다. 또한 tag가 nginx.access가 아닌 nginx.access.local7.info가 되는데 이것은 i..

Devops/Logging 2020.05.23