전체 글

인프라/컨테이너

리눅스 컨테이너란?

리눅스 컨테이너란 무엇일까 2013년도 3월에 docker가 발표되고, 점점 IT세상은 컨테이너로 채워지기 시작했고, 뒤이어 2014년도 쿠버네티스 등 컨테이너를 다룰 수 있는 기술이 많아지게 되면서 엄청나게 많은 서버가 컨테이너 위에서 돌아가게 되었습니다. 그런데, 컨테이너란 무엇일까? 리눅스에서 컨테이너는 1개 이상의 프로세스 세트로 돌아갑니다. 그러나 프로세스 내부에서는 각자의 이미지를 가지고 돌아가기 때문에 이식성, 격리 등 부분에서 리눅스 컨테이너는 좋은 효율을 보여주고 충분히 사용자를 만족시켰습니다. 가상 머신과의 차이점 그렇다면 비슷한 효과를 내는 기술인 가상 머신과의 차이점이 궁금할 수 있습니다. 그러나 가상화와 컨테이너는 아래와 같은 여러 차이를 보이고 있습니다. Guest OS에 BIO..

클라우드/AWS

AWS Kinesis data analytics studio로 s3에 데이터 보내기

키네시스 데이터 스트림에 데이터 보내기 import datetime import json import random import boto3 import time STREAM_NAME = "ExampleStream" def get_data(): return { 'EVENT_TIME': datetime.datetime.now().isoformat(), 'PRICE': round(random.random() * 100, 2)} def generate(stream_name, kinesis_client): while True: time.sleep(1) data = get_data() print(data) kinesis_client.put_record( StreamName=stream_name, Data=json.d..

인프라/모니터링

Prometheus + Grafana로 파이썬 앱 모니터링 (3)

이번 글은 Prometheus + Grafana를 연결해 대시보드를 구성해 볼 것입니다. Grafana에 Prometheus를 Datasource에 추가하기 그라파나의 Data sources탭으로 들어가서 Prometheus로 들어가기 위해 아래와 같이 그라파나 패널 왼쪽 아래 Configuration 탭에서 Data sources를 클릭해줍니다. 들어간 후 Add data source -> Prometheus를 선택하면 됩니다. Settings에서 아래와 같이 URL을 http://localhost:9090으로 설정해줍니다. 이는 프로메테우스가 돌아가는 경로를 말하는 것으로 본인의 프로메테우스 서버 주소를 입력하면 됩니다. 그리고 아래에 있는 Save & test라는 버튼을 눌렀을 때 아래와 같이 나오..

인프라/모니터링

Prometheus + Grafana로 파이썬 앱 모니터링 (2)

이번 글에서는 Grafana 설치 후 실행, 간단한 기능 둘러보기까지 해 볼 것이고 윈도우 환경에서 진행됩니다. Grafana 설치하기 링크로 들어가 Download the installer라는 버튼을 클릭해 Grafana 인스톨러를 다운로드하고, 실행하여 설치해줍니다. 설치가 제대로 완료되고 나면, C:\ProgramFiles\GrafanaLabs\grafana\conf에 설정 파일들이 있을 것입니다. Grafana 탐구하기 C:\Program Files\GrafanaLabs\grafana\bin 경로로 가게 되면 grafana-server.exe라는 실행 파일이 있을 텐데. 이를 실행시켜주면 http://localhost:3000에서 grafana가 돌아가고 있을 것입니다. Grafana로 들어가면 ..

인프라/모니터링

Prometheus + Grafana로 파이썬 앱 모니터링 (1)

Prometheus + Grafana는 인기 있는 모니터링 스택으로, ELK 스택 ( Elastic search, Logstash, Kibana )와 더불어 인기 있는 기술 스택입니다. Prometheus가 수집하면, Grafana는 대시보드를 구성해줍니다. 이제 윈도우 환경에서 Prometheus + Grafana 매트릭 수집을 진행해볼 것입니다. Python app Prometheus 모니터링은 prometheus client를 통하여 이루어집니다. prometheus client를 통하여 앱 서버/metrics에 metrics을 남기면, 이 메트릭을 prometheus에서 받아줍니다. 💡 metrics 란 키 값 쌍으로 이루어진 데이터 측정 format이다. 먼저 종속성을 다운로드하여야 합니다. p..

클라우드/AWS

AWS로 자바 CI/CD 파이프라인 구축하기

구조 1. 사용자가 CodeCommit에 코드를 푸시한다 2. commit 된 코드를 Codebuild가 build 후 CodeDeploy로 보낸 3. CodeDeploy에서 배포 후 실행한다 위와 같은 순서로 실행될 것이며. 테스트를 위해 자바 예제 코드가 필요할 텐데 gradle로 빌드되는 자바 프로젝트면 어떤 프로젝트라도 상관없으니 자바를 해보지 않았다면 깃허브에서 하나 끌어다 쓰길 바랍니다. 사실 개발 공부를 하면서 깃허브에게 더 친숙해져야 한다고 생각하기 때문에 이렇게 하는 것도 있습니다. Code Commit 아래와 같이 Create repository를 클릭하여 리포지토리를 만들어줍니다. 코드 커밋 리포지토리가 생성되었다면 아래와 같이 콘솔에서 생성한 리포지토리로 들어가 clone HTTPS..

개발/프로그래밍

Node.js AccessToken & RefreshToken 인증 구현하기

목표 로그인 시 Access Token과 Refresh Token을 모두 발급한다 사용자가 들어오면 토큰을 검사함과 동시에 각 경우에 대하여 토큰의 유효기간을 확인하여 재발급 여부를 검사한다. access token만 만료됐을 때 → refresh token 확인 후 access token 재발급 + 로그아웃 페이지 refresh token만 만료됐을 때 → access token 확인 후 refresh token 재발급 + 로그아웃 페이지둘다 유효할 때 모든 토큰이 만료됐을 때 → 로그인 페이지로 redirect 로그아웃시 토큰을 모두 만료시킨다. Dependencies "dependencies": { "body-parser": "^1.19.2", "cookie-parser": "^1.4.6", "do..

개발/프로그래밍

Node.js JWT로 토큰 인증하기

목적 JWT를 처음 배울 때, 많은 예제 코드를 봐도 잘 이해가 가지 않았던 기억이 있어서 쓰는 글이다. 토큰을 생성하고, 검증하는 과정을 해볼 것이다. Dependency "dependencies": { "cookie-parser": "^1.4.6", "express": "^4.17.3", "jsonwebtoken": "^8.5.1", "rand-token": "^1.0.1" } 본인 프로젝트의 package.json의 "dependencies"부분에 넣고, npm install로 node package들을 설치할 수 있다. 토큰 생성 토큰 인증을 위한 간단한 토큰 생성 코드로, jwt.sign으로 발급한 jwt 토큰을 쿠키에 넣어준다. createtoken.js const jwt = require('..

윤현우
개현우 발일기