본문 바로가기

전체 글

(12)
gcp workload identity federation 사용 간단 정리 기존 gcp는 인증을 위해선 secret key를 json으로 받아서 인증해야 하거나 브라우저로 구글 계정을 인증해야 했다. 해당 기능은 보안상의 위험이 있어 workload identity federation이라는, 신뢰 가능한 외부 키와 연동해서 단기 인증 키를 받아오는 기능이 있다. python code로 빅쿼리의 데이터를 조회해서 db에 넣는 배치를 aws 상에서 구동한다. 개요도는 아래와 같다 1. gcp 서비스 계정 및 빅쿼리 접근 용 custom role 을 생성한다 2. project iam member로 서비스 계정 및 custom role을 매핑한다 3. workload identity pool 및 workload identity pool provider 를 aws 용으로 생성한다 4...
scrapy 신규 project 배포 및 crawlera 를 이용한 프록시 적용 local에서 크롤링을 돌렸을 때에는 17 requests/min 의 속도로 요청하였으나 scrapinghub에 올렸을 때에는 4requests/min 밖에 속도가 나오지 않았다. proxy에 문제가 있나 해서 scrapinghub 신규 프로젝트를 만들고 배포하려고 하니 docker에 APIClient module이 없다는 에러만 지속적으로 발생했다. 찾아보니 docker-py는 duplicate 된 library 였고 docker를 사용해야 한다더라. 그래서 docker-py를 지웠으나 반영이 되지 않아서 가상환경을 신규로 구축해주니 그제서야 잘 됐다. shub deploy를 하려고 하니 계속 shub image 를 쓰라는 에러 메세지가 나왔다. shub image는 docker custom image..
mysql 디비 테이블 컬럼 및 인덱스, 트리거 조회 쿼리 테이블 및 컬럼 조회 쿼리 select table_schema , table_name , column_name , column_type , ordinal_position from information_schema.columns where table_schema not in ('information_schema', 'mysql', 'performance_schema', 'sys') order by table_name, ordinal_position; 테이블 및 테이블에 속한 컬럼명, 타입을 조회하는 쿼리 테이블에 속한 인덱스 조회 쿼리 dataedo.com/kb/query/mysql/list-all-indexes-in-the-database List all indexes in MySQL database -..
클라우드 제품 상 디비 간 DDL 차이점 비교하는 프로젝트 계획 개발하며 항상 겪는 문제인 것 같다. 개발계 DB에 적용했던 사항들을 배포날 운영계에 실수로 적용하지 않아 성능에 이슈가 나오는 상황이나 과거 개발자가 적용해놓았던 항목을 보지 못해서 놓치는 점이라던지 실제로 최근에 경험했던 문제다. 개발계에는 트리거가 적용되어 있지 않은데 운영계에는 적용되어있어 insert 시 문제가 발생했다. 다행히 내부 사용자를 위한 제품이라 크게 문제는 없었지만 필요성을 느꼈기 때문에 시작해보려 한다. 개발은 파이선으로 진행하고 오픈 프로젝트로 공개 할 예정이다. 비교 가능한 디비는 우선 mysql로 시작하여 오라클 혹은 추가 요청 사항이 들어온다면 개발하겠지? 접속 정보 등은 파일로 받을 것이다. 점차 진행하겠지만 커스터마이징 포인트는 접속 정보 관리, 비교하고자 하는 DDL,..
AWS mysql 5.7 -> 8.0 업그레이드 발단 회사에서 업무 수행 중 m5.large type의 RDS에서 대용량 데이터 조회 수행 후 cpu 점유율을 살펴보니 50% 넘지 못했음. cpu 1개만 사용하고 있다 판단하고 병렬 쿼리에 대해 찾아보았으나 5.7 버전에서는 사용할 수 없었음. 그 외에도 8.0에서의 장점이 있는 듯 하여 업그레이드 하기로 판단. 과정 별 다른 고민 없이 백업 인스턴스를 만들고 AWS 콘솔에서 5.7 -> 8.0으로 업그레이드 시도. 에러 로그를 살펴보니 트리거 관련해서 에러가 지속적으로 나고 있었다. 그제서야 사전 준비가 필요하다는 것을 깨닫고 여러 방면으로 검색 사전 준비 docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.MySQL..
개인적인 쿼리 튜닝 기초 정리(mysql) 실행 계획으로 배우는 고성능 데이터베이스 튜닝을 보고 느낀 점을 정리. 해당 책은 oracle을 기초로 하지만 mysql도 크게 다르지 않을 듯 하다. 공부한 내용을 주기적으로 갱신한다. 1. 실행 계획 분석 방법에 대해 알아야 한다. mysql 실행 계획 : 12bme.tistory.com/160 [MySQL] MySQL 실행 계획 DBMS의 쿼리 실행에 같은 결과를 만들어 내는 데 한가지 방법만 있는 것은 아닙니다. 아주 많은 방법이 있지만 그중에서 어떤 방법이 최적이고 최소의 비용이 소모될지 결정해야 합니다. DBMS에서� 12bme.tistory.com 2. 조회 시 인덱스를 잘 활용하자 업무 특성 상 인덱스의 첫 번째 컬럼을 사용하지 않는 경우가 있다. 이런 경우에 인덱스를 사용하지 않으므로 w..
conda 가상환경 구축 과정 - python 설치 오라클 프리티어 인스턴스에서 환경 구축 os = ubuntu 20.04 버전으로 사용 cpu = 1OCPU RAM = 1GB Storage = 49GB 1. 처음 인스턴스 생성 하고 접속 2. 아무 폴더나 생성 (여기에선 devenv로 만들어 줌) 1) mkdir devenv 2) cd devenv 3. git 에서 pyenv pull 받아서 빌드 0) 깃이 없다면 sudo apt-get install git 으로 깃 설치 1) git clone https://github.com/pyenv/pyenv.git pyenv/pyenv Simple Python version management. Contribute to pyenv/pyenv development by creating an account on G..
오래된, 미사용 도커 이미지 자동 삭제 스크립트 회사에서 도커 이미지 기반으로 시스템을 운영중 용량이 부족하여 확인해보니 오래된, 사용되지 않은 구 버전 도커 이미지들이 많이 쌓여있음을 확인 (docker images) 찾아보니 prune 이라는 명령어로 미사용 이미지들을 정리할 수 있다더라. docker image prune --filter "until=YYYY-MM-DD" -a docker image prune : 미사용 도커 이미지 삭제 --filter : 특정 조건에 따라서 삭제 수행 until="" : 해당 날짜 이전에 배포된 도커 이미지만 -a : 미사용 중인 이미지면 무조건 삭제. 해당 옵션이 없다면 dangling 이미지만을 지움(미사용 + tag조차 없는 이미지) 추가로 -f 옵션을 달면 console 창에 삭제 여부를 묻지 않는다. ..