본문 바로가기

Coding/DevOps22

Datadog Span, Tag 관련 이슈 개요 데이터독에는 일종의 작업 단위를 나타내는 Span이라는 개념이 존재한다. 그리고 Span에 사용자가 원하는 정보를 Tag라는 개념으로 붙여서 표시해줄 수 있다. 본 포스팅에서는 파이썬 httpx 클라이언트를 사용하는 span에 custom tag를 붙여주는 도중 발생한 이슈에 대해 설명하고 해결 방법에 대해 기술한다. Span Tag 외부와 통신을 할 때 로깅하는 내용을 생각해보면 기본적으로 Header, Request Body, Response Body, Response Status code, Query String 등이 있을 것 같다. ddtrace 라이브러리에서는 Header, Response Status Code, Query String은 아래와 같은 방법으로 Span의 Tag를 통해 추가해.. 2022. 12. 26.
AWS CodePipeline으로 ECR 푸시 감지하여 배포하는 방법 1. 개요CI/CD에는 많은 방법들이 존재한다. 깃허브등의 소스코드 레포지터리 master브랜치에 변경이 생기는 순간을 감지하여 자동으로 소스코드를 말아서 S3에 업로드하고, 배포를 트리거하는 등 한번에 모든 배포 과정을 자동화할수도 있고 특정 부분만을 잘라서 자동화시킬 수도 있다. 이는 배포 전략을 짜기 나름인데, 이번 포스팅에서는 ECR로 이미지가 푸시되면 CodePipeline에서 이를 감지하고, ECS에 배포할 수 있도록 자동화하는 방법에 대해 기술한다.참고로, ECS에 관한 자세한 설명은 다루지 않으므로 ECS Fargate형태로 서비스가 실행중이라는 가정하게 진행한다. 2. Flow먼저 간단하게 흐름을 살펴보자면 다음과 같다. ECR푸시 감지 -> 특정 명령어를 통해 빌드 -> ECS에 배포 .. 2020. 8. 24.
Github Actions와 Psycopg2 삽질기 오늘 Github Actions를 처음 접해봤다. 굳이 타 CI를 사용할필요 없이 깃허브 하나로 통합하여 관리하기 위해 기존 소스들을 이전하는 작업을 진행중이었는데, 이 작업과 병행하여 MySQL을 사용하던 소스를 PostgreSQL로 이전하는 작업도 겸하였다. 여기서 문제가 발생했는데, 바로 psycopg2 라이브러리 설치가 정상적으로 동작하지 않는 것이었다. 현재 나는 OSX를 사용하고 있었기에 인터넷에서 찾아보니 다음과 같은 방법으로 해결이 가능하다는 것을 발견했다. env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install psycopg2 아마 Mojave로 버전이 올라오면서 경로등의 변경으로 인해 .. 2019. 10. 30.
Github Actions 연동하는 방법 일반적으로 CI에는 TravisCI/CircleCI/Bitbucket Pipeline등 다양한 옵션들이 존재한다. 나는 소스 저장소로 깃허브를 사용하고 있는데, 2018년도에 Github Actions가 등장하면서 깃허브 자체적으로도 CI기능을 이용할 수 있다고 한다. 따라서 이렇게 간단하게나마 포스팅으로 정리한다. 먼저 아래의 사이트로 들어가서 Sign up for beta 버튼을 누른다. https://github.com/features/actions 그다음으로 액션을 적용할 레포지터리로 이동하면 위처럼 Actions 탭이 존재한다. 클릭하여 들어간다. 기본적으로 위처럼 다양한 템플릿을 제공해준다. 하지만 우리는 직접 원하는 것을 작성할 것이므로 오른쪽 상단에 있는 Set up a workflow y.. 2019. 10. 30.
TravisCI Github 연동하는 방법 기존 회사에서는 Bitbucker pipeline을 통해 CI를 진행했었다. 하지만 개인 프로젝트에서는 소스 저장소로 깃허브를 사용하고있고 TravisCI를 사용해보고 싶어서 그 과정에 대해 포스팅을 남긴다. TravisCI 회원 가입 먼저 아래의 주소로 들어가서 회원가입을 진행한다. https://travis-ci.org/auth Repository 연동 원하는 레포지토리를 연동한다. 나는 hfive라는 레포지토리를 연동했다. .travis.yml 작성 language: python python: - 3.7.4 branches: only: - master - develop services: - mysql before_install: - mysql -e 'CREATE USER hfive@local.. 2019. 10. 29.
Mongo Atlas 데이터 마이그레이션 하는 방법 현재 회사에서 작업을 하며 관리형 데이터베이스로 Mongo Atlas를 사용하고 있다. 보통 테스트/라이브 용 클러스터를 따로 두고 작업을 하는데, 테스트 용 데이터베이스에 실제 라이브처럼 수많은 데이터가 들어있진 않다. 하지만 데이터베이스 쿼리를 날릴 때 부하가 얼마나 걸리는지, 성능을 실제 테스트해봐야 하는 경우가 존재하는데 그럴 경우 Atlas에서 자체적으로 제공하는 Migration기능을 이용하면 손쉽게 복제 클러스터를 생성할 수 있다. 먼저 Mongo Atlas 콘솔로 들어간다음 데이터를 복제시킬 클러스터를 하나 생성한다. 그다음 클러스터쪽에 점 3개 버튼을 클릭하면 위처럼 메뉴가 나오는데 Migrate Data to this Cluster를 선택한다. I'm ready to migrate 버튼.. 2019. 6. 26.