HashiCorp Vault는 2014년 4월에 발표됐습니다. Vault는 토큰, 비밀번호, 인증서, 암호화 키에 대한 액세스를 보호하고 저장하며 엄격하게 제어하여 비밀 및 기타 민감한 데이터를 보호하기 위해 사용하는 솔루션입니다. 컨셉을 이해하려면 HashiCorp 블로그 글을 읽어보세요.이번 글에서는 Vault를 설치하고 기본 컨셉에 대해 살펴보도록 하겠습니다. Vault를 쓰면 좋겠다고 생각한 첫 번째 이유가 데이터베이스 접속 정보 관리인데요. 아래와 같은 흐름으로 사용이 가능합니다. Vault의 가장 기본적인 사용 예시입니다. CSP에 있는 Secrets Manager와 비슷합니다. 하지만 Vault의 경우 필요한 순간에 데이터베이스 계정을 "생성"해서 줄 수 있습니다. 그것이 가장 큰 차이점입니..
지인의 선물로 데이터 거버넌스 : 사람, 기술, 도구, 프로세스를 읽었습니다. 요즘 거버넌스는 너무 폭넓은 뜻으로 해석되고 있는데 이 책에서는 데이터를 다루는 데 있어서 필요한 전부를 칭합니다. 책의 저자가 이야기하는 데이터 거버넌스는 아래와 같이 정의됩니다.데이터 거버넌스(data governance)는 무엇보다도 조직이 수집한 데이터의 품질, 무결성, 보안, 사용성을 보장하는 하나의 데이터 관리 기능(data management funcion)이다. 데이터 거버넌스는 데이터를 수집, 생성한 시점부터 데이터를 폐기, 보관하는 시점까지 내내 작동해야 한다. 데이터의 그러한 수명 주기 전체에서 데이터 거버넌스는 데이터를 모든 이해관계자가 각자 손쉽게 접근할 수 있는 형태로 만드는 데 주력한다. 또한 이해관..
약 2년 전쯤에 개발자가 되려면 뭘 준비하면 되냐는 질문을 받은 적이 있습니다. 그 질문의 답으로 약 2페이지 분량의 글을 썼었는데요. 만약 다시 질문을 받는다면 이 책을 추천하겠습니다. 한빛미디어에서 “연봉 앞자리를 바꾸는 개발자 기술 면접 노트”가 발간 됐습니다. 저자는 여러 기업을 경험하고 면접관으로 활동하며 얻은 인사이트를 인터뷰 전반에 걸친 프로세스로 설명합니다. 그리고 자주 출제되는 유형에 대해 코딩테스트와 기술 인터뷰 문제를 다뤘습니다. “연봉 앞자리를 바꾸는”이라는 다소 도전적인 제목이지만 면접으로 인생이 바뀔 수 있으니 틀린 말은 아닙니다. 개발을 하다 보면 필연적으로 예기치 못한 곳에서 장애가 발생한다. 장애가 발생하지 않는 곳은 없다. 만약 경영진이 장애 발생을 문제 삼는다면 그건 서..
Kubernetes를 사용할 때 아주 중요한 설정이 있습니다. Karpenter와 같은 오토스케일러와 맞물리면 더욱 빛을 보게 되는 설정인데 바로 PodDisruptionBudget(PDB) 입니다. 오토스케일러를 Karpenter로 예를 들어 설명해 보겠습니다. consolidation으로 노드가 제거될 수도 있고 spot을 이용 중이라면 spot 종료 이벤트를 받을 수도 있습니다. 이때 해당 노드에 서비스되는 모든 pod가 한순간에 모두 종료 돼버린다면 자칫 서비스에 다운타임이 발생할 수도 있습니다. 이때 필요한 게 PDB입니다.PDB를 쉽게 설명하자면 무슨 일이 있어도 지정된 개수의 pods는 유지를 해달라는 설정입니다(이외에 다른 조건도 설정할 수 있습니다). 배포를 위해 Deployments를 ..
한빛미디어에서 개발 생태계에 모든 사람을 위한 기술 문서 작성 방법을 설명하는 Docs for Developers가 발간 됐습니다. 무릇 개발자라면 코드만 작성하는 것이 아니라 문서 작성도 해야 합니다. 본인이 개발한 코드를 설명하는 문서 혹은 릴리스 문서 등을 포함해서 말이죠. 그리고 글이 더 잘 소비되도록 문단 하나까지도 신경을 쓸 겁니다. 이미지를 하나씩 제공하면 인지 처리가 덜 필요하고, 두뇌가 연결 관계를 도출하는 데 도움이 되며, 텍스트보다 훨씬 빨리 이해를 이끌어 냅니다. 또한 우리는 정보가 이미지와 함께 제공되면 정보를 더 잘 기억합니다. 정보를 귀로 듣는 경우에는 약 10%만 기억합니다. 그러나 정보를 들을 때 이미지가 함께 나온다면 65%를 기억할 수 있습니다. 그동안 나름 양질의 문서..
AWS에서 spot을 사용해서 컴퓨팅 비용을 절감하는 방식은 너무 유명합니다. 하지만 spot은 언제든 빼앗길 여지가 있는데요. EKS에서 AutoScaler로 카펜터(karpenter)를 사용 중이고 인스턴스 타입으로 spot을 사용 중이라면 NTH(Node Termination Handler) 사용을 고려하셔야 합니다. 마치 애플리케이션이 종료되기 전에 시그널을 받아서 처리(signal handler)하는 것처럼 NTH는 노드가 종료되기 전에 "어떤" 이벤트를 받고 종료 전에 필요한 것들을 처리할 수 있도록 돕습니다.spot 인스턴스는 종료되기 2분 전에 EC2 Spot Instance interruption notice를 수신하는데요. 관련된 내용은 아래와 같이 cloudtrail에서 이벤트 이름을..
우리가 구축한 서비스가 견고한지, 가용성을 보장하는지, 확장성은 어떤지 등 시스템 탄력성을 테스트하기 위한 기법으로 카오스 엔지니어링이 있습니다. AWS Resilience Hub - Fault Injection Service(FIS)는 카오스 엔지니어링을 AWS에서 손쉽게 할 수 있도록 돕습니다. 이 기능을 이해하기 위해서는 aws cli로 접근하는 것보다 콘솔을 이용하시는 게 좋습니다. 어느 정도 기능을 익힌 후에는 터미널에서 마음껏 실행할 수 있을 겁니다.FIS의 기본 콘셉트는 Experiment templates 메뉴에서 실험 템플릿을 만들고, 템플릿을 실행하는 것에서 출발합니다. 템플릿에는 특정 리소스(e.g., EC2)의 ID로 지정해서 이벤트(종료 등)를 보낼 수도 있고, tags 기반으로 ..
Redshift는 Workload management(WLM) 설정을 통해 큐(queue)와 슬롯(slot)이라는 개념을 제공합니다. 넓은 범주에서 이야기하면 한 개에 큐 안에는 여러 개의 슬롯이 존재할 수 있습니다. 그리고 슬롯은 쿼리 실행의 동시성을 나타낸다고 보시면 됩니다. 즉, 슬롯 개수만큼 쿼리가 동시에 실행될 수 있는 거죠. 그렇다고 쿼리 속도가 슬롯에 독립적으로 보장된다는 말은 아닙니다. 클러스터 전체에서 사용하는 메모리를 나눠서 사용하는 구조라서요. 큐는 실행을 기다리는 쿼리 그룹을 나타내는 논리적 구성입니다. 큐 종류는 다음과 같습니다.- 삭제할 수 없는 default queue 1개- 사용자가 추가로 정의할 수 있는 큐 7개- AWS 콘솔 상에 나타나지 않는 superuser를 위한 큐..
이 프로젝트를 시작한 게 1년이 넘었는데 이제 블로그 글로는 마무리를 지으려고 합니다. 최종 결과물 사용 방법을 공유하려고요. 앞선 글을 읽으셨던 분들이 주신 문의도 많았고 한 번 정리할 필요가 있다고 느꼈습니다. 처음 이 프로젝트의 시작은 ChatGPT를 슬랙에 연동하기 위해 2개의 Repository를 사용했는데요. 현재는 1개로 통합했습니다. 아래 링크만 사용하시면 됩니다.https://github.com/jybaek/llm-with-slack GitHub - jybaek/llm-with-slack: Connect LLM to Slackbot. Works via FastAPIConnect LLM to Slackbot. Works via FastAPI. Contribute to jybaek/llm-w..
기대 이상입니다. 술술 읽히게 깔끔한 문장으로 작성된 것도 좋고, 내용도 너무 재밌습니다. 공감도 많이 되네요. 저는 중학교 때부터 이런저런 일을 많이 해보고 개발자가 된 케이스인데 저자는 저랑은 반대라서 더 재밌습니다. 여느 직장인처럼 커리어 개발과 성장에 늘 관심이 있었고, 내가 하는 일을 잘하고 싶었다. 무엇보다 내가 최고가 되지 않으면 동료들의 성공을 순도 100%의 마음으로 축하해주지 못하고 혹시나 샘내게 될까 봐 순간순간 최선을 다해 열심히 공부하고 배웠다. 구글 레이오프 당시의 감정이 생생하게 전달됐습니다. 갭이어란 무엇인지 화끈하게 보여주셨네요! 트레이더 조가 궁금해지기까지 했으며 리프트 기사가 왜 제게 더 말을 더 안 걸었는지도(?) 얼핏 알게 됐습니다. 하하. 스타벅스는 제가 미국에서 ..
코드 구조를 대대적으로 바꾸려고 코드 정리를 시작하는 경우가 많습니다. 너무 많이, 너무 빠르게 변경하지 않도록 주의하세요. 대개 작은 정리를 순차적으로 성공하는 것이 무리한 정리로 실패하는 것보다 시간을 아껴줍니다. 악보의 음표를 다루듯 코드를 정리하는 연습을 하세요. 음표가 깨끗하고 편안할 때 이를 이용해서 더 좋은 멜로디를 만들 수 있습니다. 오랜만에 완독했습니다. 얇아서 금방 읽었네요. 서문에도 쓰여있지만 경험 많은 개발자는 이미 다 알고 있는 내용일지도 모릅니다. 흩어져 있는 내용을 한 권으로 잘 정리 해둔 느낌이네요. 시리즈를 예고하고 있는데 다음 편도 기대됩니다. 부록이 본편이랑 두께가 비슷해서 뭐지 싶었는데요. 부록에서 역자와 저자의 대화들이 주는 재미가 있습니다. 본편이 어떻게 번역되었는..
작년 행사에서 순다의 AI 언급 횟수가 유튜브에 올라가서 화제가 된걸 순다도 알고 있었습니다. 그래서 이번에는 발표 스크립트를 Gemini에 넣고 확인하니 AI 키워드 언급을 120번 했다고. 이 말을 하는 순간 121 번으로 추가 카운팅 됐네요 ㅎㅎ 여러 가지 내용이 나왔지만 역시 가장 큰 임팩트는 Gemini 1.5 Pro의 토큰 증가였습니다. 이미 세계에서 가장 큰 컨텍스트 윈도우(1M)를 갖고 있다고(Longest context window in the world) 자신 있게 말하고 이걸 두 배로(2M) 키워버렸다고. 키노트 대부분의 세션에서 다시 언급될 정도로 중요한 내용이었습니다. 어쩌면 이 뒤로 있었던 모든 기술이 토큰 크기 증가로 인해 가능해진 걸 테니까요. 기술력만 놓고 보자면 오픈 AI..
테라폼으로 AWS CloudFront 를 생성할 때 ACM(AWS Certificate Manager) 인증서를 쓰려면 아래와 같이 코드가 개발됩니다. resource "aws_cloudfront_distribution" "s3_distribution" { ... viewer_certificate { cloudfront_default_certificate = false acm_certificate_arn = "..." minimum_protocol_version = "..." ssl_support_method = "..." } } cloudfront_default_certificate를 false로 설정하고 ACM 인증서의 ARN을 넣어주면 됩니다. 그런데 이 상태로 코드를 배포하면 아래와 같은 오류가 ..
CloudFront에서 Distribution을 생성할 때 Origin domain으로 S3 버킷을 지정하는 경우 아래와 같은 화면이 나옵니다. bucket endpoint를 쓰지 말고 website endpoint를 사용하라는 건데요. Origin domain 목록에 website endpoint는 노출되지 않기 때문에 "Use website endpoint" 버튼을 클릭해 줘야 s3 가 s3-website로 변경됩니다. 버튼을 클릭하는 경우 상세 설정의 종류가 변경되기 때문에 무시할 수 없습니다. 더욱이 S3 website endpoint를 추천한다는데 써야겠죠 (...) 테라폼으로 배포할 때 위에 버튼을 클릭하지 못하니 어떻게 처리해야 하나 한참을 끙끙댔습니다. 일단 S3 website endpoi..
PyCharm(IntelliJ라도 상관없음)에서 YAML(yet another markup language or YAML ain't markup language) 파일을 열어보면 다음과 같이 syntax highlighting이 잘 적용되어 있습니다. 아마도 대부분의 사람들은 "IDE에서 syntax highlighting은 당연한 기능 아냐?"라고 하실 수도 있는데요. 맞습니다. 확장자에 따라서 기본 설정이 적용되어 있기 때문입니다. 최근에 테라폼(Terraform)으로 코드를 개발하면서 YAML 파일을 템플릿 형식으로 작성할 일이 꽤 많았는데요. 확장자는 tftpl 였습니다. 테라폼에서 templatefile 함수를 통해 읽는 파일의 확장자는 tftpl로 권장됩니다. *.tftpl is the rec..
벌써 회고 시즌이라니... 23년은 유독 더 빠르게 지나간 것 같다. 큰 이벤트가 있었던 것도 아닌데 말이다. 아, (믿지는 않지만) 내년까지 삼재다. 작년에는 무릎 연골을 다쳤고 올해는 회전근개가 손상됐다. 건강이 최고지만 그와 관련된 이야기는 지면을 아끼고 다른 내용으로 채워보도록 한다. 23년에 무슨 일이 있었는지 여러 플랫폼에 기록해 둔 것들을 꺼내서 정리해 봤다. 링크드인에 보면 짧고 굵게 그리고 덤덤하게 본인의 이야기를 날카롭게 작성하신 분들이 몇몇 보이는데(존경합니다) 나는 올해도 그러지는 못할 듯. 짧고 덤덤하지 않더라도 솔직하게는 적어보도록 하자. # 회사 업무 561시간 회의를 했다고 구글 캘린더가 알려준다. 23년은 주말까지 포함해서 휴일을 빼면 근로자가 쉬는 날은 117일이라고 하는..
아.. 드디어 나왔습니다. Priyanka Vergadia님의 Visualizing Google Cloud가 Jpub을 통해 번역서로 출간된 것이지요. 한국 버전 이름은 그림으로 배우는 구글 클라우드 101 입니다. 원서에는 없지만 뒤에 101을 붙인 건 기초 서적인걸 나타냄과 동시에 "101가지 GCP 솔루션" 쪽과 라임을 맞추기 위한 것인지(웃음). 참고로 요즘은 GCP라는 표현보다 Google Cloud로 브랜딩 하고 있는 추세로 보입니다. 구글 클라우드에 글을 기고해 보니 Technical Writer가 그렇게 교정해 주더라고요. 아무튼, 리뷰를 해봅시다. 이 책은 구글 클라우드 바이블이라고 불러도 손색이 없을 정도로 훌륭한 책입니다. 프리양카 님은 요즘도 계속 일러스터를 만들어 내고 계신대요, ..
제목이 다소 오만해 보이지만 내용만은 아주 알찬 번역서가 한빛미디어에서 출간되었습니다. 바로 Release의 모든 것 입니다. 책이 세상에 나오기 전에 제목을 추천받기도 했던 것 같은데요. 책을 덮고 나서도 이것 이상의 제목은 떠오르지 않네요. 그리고 번역서지만 번역서 느낌이 별로 들지 않습니다. 외국 사례들이 나올 때서야 "아, 이 책이 번역서였지"하는 느낌을 받았으니까요. 전반적으로 매끄럽게 잘 읽힙니다. 책에는 아주 많은 내용이 담겨있습니다. 4장 안정성 안티 패턴과 5장 안정성 패턴은 특히 여러 책에 걸쳐 소개되고 있는 내용들이 많습니다. 소프트웨어 아키텍처 101과 같은 책을 본 적이 있다면 아마도 한 번쯤은 접해본 적이 있을 내용일 겁니다. 여기서 다시 정리하는 느낌으로 읽으니 좋았습니다. 기..
안녕하세요. AdTech(Advertising technology) 스타트업 매드업에서 데이터 엔지니어 겸 사이트 신뢰성 엔지니어(SRE, Site Reliability Engineer)로 근무하고 있는 백재연입니다. 이번 글에서는 올해 라스베가스에서 열린 AWS re:Invent를 다녀온 후기를 다루려고 합니다. 키노트나 세션 등 기술과 관련된 콘텐츠는 유튜브와 AWS 공식 블로그에 잘 정리가 되어 있으니 생략하고, 처음 이 행사에 참석했던 입장에서 전반적인 행사 흐름과 체험을 위주로 정리해 봤습니다. 스크롤 압박은 있겠지만 대부분 사진이니 부담 없이 봐주세요! 자, 그럼 시작합니다. # Las Vegas! 현재 매드업과 계약된 MSP를 통해 아시아나항공 전세기로 라스베가스 공항까지 직항으로 갈 수 있..
한빛미디어에서 알고리즘 풀이 책이 나왔습니다. 파트 1에서 파이썬 기본 문법에 대해 설명하고 파트 2에서는 기본 자료구조와 알고리즘, 파트 3, 4는 알고리즘 문제풀이를 다루고 있습니다. 또한 부록으로 알고리즘 시간 복잡도, 빅 오 표기법에 대한 설명을 해주고 있습니다. 책 내용은 그림과 코드를 적절히 섞어서 어려운 문제를 잘 설명해주고 있습니다. 하지만 그게 모든 사람들에게 잘 이해될지는 잘 모르겠습니다. 워낙에 알고리즘이 그냥 하루아침에 뚝딱 되는 게 아니니까요. 아무튼, 이 책은 코딩 테스트에 빈번하게 나오는 문제들을 다루고 있기 때문에 머릿속에 잘 저장해 두면 좋을 겁니다. 알고리즘을 책으로 공부한다고 치면, 아마도 한 권으로 뚝딱 끝내기는 어려울 겁니다. 그런 쪽으로 접근했을 때 이 책도 마찬가..
- Total
- Today
- Yesterday