테라폼 코드를 로컬에서 개발&운영하다가 테라폼 클라우드(Terraform Cloud)를 처음 이용하려고 할 때 발생하는 문제입니다. 이건... 블로그에 기록하기도 민망할 정도로 짧은 해답을 내릴 수 있는데요. 테라폼 클라우드와 연결된 GitHub이나 Bitbucket과 같은 VCS(Version Control System)에 tfstate 파일이 존재하는 경우입니다. 이때는 VCS에서 state 파일을 삭제해 주고 다시 plan을 실행해 보세요. 오류가 해결되는 걸 확인하실 수 있을 겁니다. 소소하지만 테라폼 클라우드를 처음 이용하려는 누군가에게는 도움이 되셨기를 바랍니다. :) 인터넷에 많은 트러블슈팅 글이 그러하듯이 이 에러의 원인이 하나만은 아닐 수도 있습니다. 만약 state 파일이 존재하지 않는..
Lambda(람다) 배포 방식에는 네 가지가 존재합니다. (1) 소스코드를 에디터에서 직접 개발 (2) ZIP 압축 파일을 업로드해서 배포 (3) S3 경로에 압축파일을 두고 배포 (4) 컨테이너 이미지를 통해 배포가 있습니다. 이번 글에서는 컨테이너 이미지를 통해 배포하는 방법을 알아볼 텐데요. 특이한 조건이 하나 붙일 겁니다. 테라폼 코드를 통해 Lambda와 ECR을 최초 배포할 때 컨테이너 이미지를 어떻게 처리해야 하는가입니다. 정확하게는 AWS 인프라를 테라폼으로 초기 구축하는 상황인 겁니다. 이런 상황에서 무엇이 문제가 되는지 살펴보려면 생성해야 하는 리소스를 알아야 합니다. 먼저 ECR(Elastic Container Registry)를 생성해줘야 합니다. 소스코드는 대충 아래와 같은 모양입..
테라폼으로 EKS를 생성할 때 만나는 에러입니다. 문제 상황은 aws_eks_cluster 를 통해 클러스터를 생성하고 나서 kubernetes_config_map 으로 aws-auth를 ConfigMap에 등록하려고 할 때 발생합니다. terraform apply 를 통해 두 개의 리소스가 함께 배포되는 상황입니다. 대략 아래와 같은 코드를 실행하는 상황이라고 볼 수 있습니다. 불필요한 부분은 말줄임표로 생략했습니다. resource "aws_eks_cluster" "this" { name = var.cluster_name ... } resource "kubernetes_config_map" "this" { metadata { name = "aws-auth" namespace = "kube-syste..
한빛미디어(주)의 임프린트 브랜드 디코딩에서 플러터 앱 개발을 위한 책이 발간됐습니다. "초보자도 프로처럼 만드는 플러터 앱 개발"은 플러터(Flutter)를 활용한 모바일 앱 개발을 처음 시작하는 초보자들을 위한 꽤나 훌륭한 안내서입니다. 이 책은 3개의 파트와 5개의 장으로 구성되어 있으며, 플러터로 앱을 개발하기 위한 모든 단계를 아우르고 있기 때문에 천천히 읽고 실습하다 보면 어느 순간 앱을 완성해 볼 수 있습니다. 파트 제목이 재밌습니다. 플러터 여정으로 표현하고 있는데요, PART 1에서는 플러터 여정의 시작을 다룹니다. 우선 플러터 소개를 시작으로 플러터로 가능한 것들을 설명합니다. 개발을 시작하기 전에 필요한 모든 설정 및 프로젝트 생성에 대한 내용이 포함되어 있습니다. 이 부분은 초보자..
얼마 전에 자격증 취득 관련 글을 올렸는데 이어지는 글입니다. 이전 글은 AWS 자격증 취득 후기 (SAA, SAP) 에서 확인해 주세요. # intro. 이렇게 된 거 한 개 더 취득해 보자 10월 20일(금) 저녁에 SAP 합격 메일을 받고 기분 좋게 한 잔 했습니다. 주말 동안은 개인적인 일로 좀 바빴습니다. 월요일이 되고 곰곰이 생각해 보니까 뭔가 보유한 자격증에 균형이 맞지 않는 것 같은 생각이 맴돌았습니다. AWS 전체 자격증 중에 아래 두 개를 취득한 상태였는데요. 그래도 위쪽에 있는 다른 초록색도 갖고 있는 게 좋지 않을까? 하는 생각이 들었습니다.. 하.. 이래서 자격증은 차라리 한 개도 없을 때가 속이 편합니다. 어쨌든 머릿속에 맴도는 욕심을 채우고자 DevOps Engineer - P..
이미 인터넷에 많고 많은 후기가 있지만 저만의 의식흐름으로 자격증 취득 후기를 정리합니다. 누군가에게는 도움이 되겠죠? :) 자격증 시험을 준비하는 모든 분들, 좋은 결과 있으시길 바랍니다! # 시험 종류 생전 자격증에 관심이 없었는데 어떤 이유로 자격증이 필요했습니다. 일단 하나만 있으면 될 것 같아서 AWS Certified Solutions Architect - Associate 시험(SAA-C03)을 봤네요. 참고로 AWS 자격증은 Foundational, Associate, Professional, Specialty로 구분됩니다. 보기 좋게 아래 이미지로 정리했습니다. 참고해주세요. # 시험 장소 시험은 온라인, 오프라인을 선택할 수 있는데 저는 오프라인은 가본 적이 없습니다. 시간대가 마땅한 ..
이전 글을 작성한 이후로 소스코드가 많이 변경 됐습니다. 특히 아래 구문(이전 글에서 작성했던 내용)에 대해 수정이 있었는데요. 그리고 number_of_messages_to_keep는 꼭 0으로 넣어주세요. 이 환경변수는 대화내역을 N개 저장하고 있겠다는 설정인데요. 대화내역을 저장하는 경우 ChatGPT와 대화할 때 상호작용이 되는 것처럼 보일 겁니다. 이전 대화내용을 기억하고 있으니까요. 아주 훌륭한 옵션이죠. 다만, 이 설정을 위해서는 Redis가 필요합니다. Google Cloud에서 Memorystore(Redis)를 올려서 사용하는 것도 좋지만 비용 문제로 다루지 않겠습니다. 만약 이미 Redis가 있다면 앞에 Hello-ChatGPT에 환경변수로 REDIS_HOST를 넣어서 사용해 주시면 ..
진화론을 믿는 사람의 비율이 어떻게 될지 모르겠습니다. 하지만 분명한 것은 우리가 구축하는 아키텍처는 진화해야 한다는 겁니다. 어떻게 진화시키면 될까요? 한빛미디어에서 진화적 아키텍처 라는 주제로 흥미로운 책을 내놨습니다. 아키텍처를 갱신하는 방법으로는 크게 점진적인 방식과 빅뱅 방식이 있습니다. 빅뱅 방식은 전체적으로 새로 구축하는 것을 설명합니다. 시간이 충분하다면 빅뱅 방식도 괜찮을 겁니다. 하지만 일반적인 경우라면 점진적인 방식으로 비즈니스에 속도를 내야 합니다. 책에서 소개하는 트위터의 사례를 봐도 그렇습니다. 처음부터 아름다운 백엔드 시스템을 구축하려고 마음먹었더라면 제때 서비스를 론칭하지 못했을 것이고 다른 경쟁자에게 명성을 빼앗겼을지도 모르지요. 마이크로서비스는 코드 재사용을 자제하며 커플..
한빛미디어에서 번역서로 발간된 "견고한 데이터 엔지니어링"은 흥미로운 내용을 잔뜩 담고 있습니다. 책의 표지만 봤을 때는 데이터 엔지니어 커리어를 쌓으려는 사람들을 위한 것처럼 보이는데요. 물론 이 책의 내용 중심에는 데이터 엔지니어링이 있지만 데브옵스(데이터옵스와 비교되는)와 모놀리스와 마이크로서비스 인프라 아키텍처 내용도 품고 있습니다. 데이터 파이프라인을 구축할 때 자주 사용되는 메시지 큐와 데이터 스트리밍 플랫폼(카프카 같은)에 대한 설명도 잘 되어 있습니다. 그리고 OLTP(Online Transactional Processing), OLAP(Online Analytical Processing) 데이터베이스 이야기, 데이터웨어하우스, 데이터 레이크, 레이크 하우스 등 다양한 용어의 설명과 트렌드..
쿠버네티스는 컨테이너 오케스트레이션 도구입니다. 컨테이너는 쿠버네티스에서 파드(pod)라는 개념으로 감싸집니다. 하나의 파드는 한 개 이상의 컨테이너를 가질 수 있습니다. 즉, 애플리케이션 컨테이너 한 개와 그 옆에 사이드카 패턴으로 다른 컨테이너를 붙여서 하나의 파드로 운영하는 것이 가능합니다. 각설하고, 이번 글에서는 파드를 수평 확장(Scale-out)하는 방법인 HPA(Horizontal Pod Autoscaling)와 노드를 수평 확장하는 카펜터(Karpenter)를 엮어서 개념을 이야기해 보도록 하겠습니다. 언제나와 마찬가지로 글에 잘못된 부분이 있거나 토론이 필요한 부분이 있다면 댓글로 의견 부탁드립니다 :-) # HPA(Horizontal Pod Autoscaling) Deployment로..
평생직장은 없다는 생각으로 창업을 꿈꾸는 한 사람으로써 좋은 기회에 드디어 린 스타트업을 읽게 되었습니다. 공교롭게도 이 책에도 같은 뉘앙스의 문장이 있었네요. 평생직장은 옛말. 평생 고용과 연금의 안정성이 사라지면서 자신의 운명을 직접 통제하고자 하는 사람이 늘고 있다. 부업을 통한 창업이 늘고 있다 린 스타트업은 이번에 10주년 기념판으로 전명 개정돼서 출판됐습니다. 무려 10주년입니다. 여기까지만 들어도 이 책이 주는 무게감을 느낄 수 있지요. 창업을 하고자 하는 사람들에게 몇 가지 바이블 도서가 있는데 그중에 한 권이 바로 "린 스타트업"일겁니다. IPO까지 성공한 창업가 몇 분을 만나서 자문을 구한적이 있는데 하나같이 추천해주신 책이기도 하고요. 이미 대단한 책이라 워낙 많은 리뷰가 있겠지만 ..
Google I/O 는 구글의 연례행사 중에 가장 큰 행사로 꼽힙니다. 올해 I/O 는 아주 소수 인원(소문으로는 디렉터급 이상)만 오프라인으로 참석할 수 있었다고 합니다. 일반 대중들에게는 사실상 온라인 콘퍼런스였던 거죠. 오프라인 행사가 아닌 걸 아쉬워하던 찰나에 I/O Connect 행사에 초대됐습니다. I/O Connect 는 올해 처음 생긴 행사인데요. Google I/O 와 I/O Extended 사이에 존재하게 됩니다. Connect 는 올해 Miami, Amsterdam, Bengaluru, Shanghai 네 개 지역에서 진행됐습니다. 그중에 제가 참석한 곳은 마이애미였네요! 행사는 오전부터 시작됐습니다. 마이애미의 후끈한 날씨에 리프트(Lyft)를 타고 행사장으로 빠르게 이동했습니다. ..
개발자의 engineering ladder(혹은 career path)를 이렇게 잘 풀어낸 책이 있을까요? 한빛미디어에서 스태프 엔지니어(Staff Engineer)의 역할과 갖추어야 하는 역량을 설명하는 번역서가 발간되었습니다(디코딩 출판사는 한빛미디어의 임프린트 브랜드입니다). 바로 개발자를 넘어 기술 리더로 가는길 입니다. 책에서 예시로 소개하는 경력 사다리의 예시를 살펴보세요. 매니저 테크와 엔지니어 테크를 아래와 같이 나누고 있습니다. 이 책을 읽으면서 나의 롤(role)은 무엇이며 어느 위치에 있는지 다시 한번 생각해 보게 됐습니다. 역할과 롤이 맞게 돌아가고 있는지, 혹은 그 이상, 이하로 처리하는 것은 없는지 등을 말이죠. 당연히 회사와 조직마다 직급에 따라 주어지는 업무 역할에 차이는 있..
helm upgrade --install 명령어가 실패하는 경우가 있습니다. $ helm upgrade --install airflow apache-airflow/airflow --namespace airflow --create-namespace Release "airflow" does not exist. Installing it now. Error: failed to download "apache-airflow/airflow" 공식문서에 있는 명령어를 그대로 사용했음에도 오류가 나는 경우는, 일반적으로 이미 오래전에 helm repo를 추가해두고 방치한 경우일겁니다. 아래와 같이 repo를 업데이트 해주세요. $ helm repo update Hang tight while we grab the late..
AWS에 대표적인 Data Warehouse 제품인 Redshift에 Serverless 버전의 비용 관련된 내용이 잘 정리된 글이 없어서 이번 기회에 정리해 봅니다. 글을 정리하는데 백서도 도움이 됐지만 메가존 포럼과 AWS Global Center의 도움을 많이 받았습니다. 우선 Redshift Serverless 비용을 이해하려면 Redshift Processing Units(RPUs) 개념을 알아야 합니다. Redshift Serverless는 워크로드에 따라 자동으로 컴퓨팅 파워를 확장하는데 그게 RPUs 단위입니다. 가벼운 쿼리는 32 RPUs(최소 설정 값)로 처리되고 좀 더 복잡한 쿼리는 최대 512 RPUs까지 늘어납니다. 기본 값을 Base capacity라고 하는데 이 값을 32부터 ..
이번에 한빛미디어에서 아주 재밌는 책이 발간됐습니다. 테라폼의 기본부터 실무까지 두루 훑고 있는 테라폼으로 시작하는 IaC 입니다. 이 책이 매력적인 이유를 하나씩 이야기해 보도록 하겠습니다. 💫 먼저 이 책인 기본에 아주 충실한 책입니다. IaC(Infrastructure as Code) 가 필요했던 이유부터 시작합니다. 프로그래밍 언어를 다룰 때 좋은 코드와 구조, 나아가 우리(코드를 읽고 쓰는 사람)가 코드를 읽는데 더 많은 시간을 사용하는 점을 들며 테라폼의 등장을 소개합니다. 그리고 기본적인 콘셉트, 그러니까 테라폼 코어와 프로바이더가 통신하고 실제 인프라 API와 통신하는 구조를 설명합니다. 그다음으로 테라폼의 기본 문법부터 모듈까지 다룹니다. 그렇기 때문에 입문자도 어렵지 않게 모든 예제를 ..
지난주에 생애 첫 🇺🇸 미국 여행으로 마이애미를 다녀오고 자질구레한 팁을 정리합니다. 미국에 처음 발을 딛으려는 분들께 도움이 되길 바랍니다. (나열된 순서는 의미 없습니다) - 만약 미국 내에서 환승을 해야 하는 경우가 있다면 첫 번째 환승 공항에서 입국 심사를 받아야 한다. 그 말인 즉, 짐을 다시 찾고 붙이는 과정이 이때 필요하다는 거다. 가뜩이나 미국 첫 여행이라 걱정이 많았는데 토익시험 보러 가는 것처럼 그냥 앞사람들과 함께 흘러가면 된다. 정 불안하면 공항 직원 붙잡고 비행기 티켓(최종 목적지) 보여주고 캐리어만 가리켜도 어디로 이동해서 짐을 부쳐야 하는지 알려줄 거다. - 🚕 교통수단은 우버(Uber) 혹은 리프트(Lyft)를 이용하면 좋다. 몇 달러(💰) 차이 나는 거 신경 안 쓸 거면 그..
오롯이 데이터에 집중해서 주변 기술을 정리하고 설명하는 책이 출간되었습니다. 디코딩이라고 하는 한빛미디어 임프린트 브랜드에서 번역서로 나왔는데요. 데이터 품질의 비밀입니다. 아주 재밌는 것은 역자로 등록된 게 커뮤니티라는 점입니다. "데이터야놀자"에서 번역을 진행했네요. 데이터야놀자와는 2017년에 인연이 있습니다. 각설하고, 이 책은 데이터 품질부터 시작해서 다룹니다. 품질이란 무엇이며 데이터 다운타임이 주는 의미를 다시금 생각할 수 있게 합니다. 그리고 많은 사람들이 그 개념에 대해 아직 팽팽하게 논의하는 "데이터 웨어하우스"와 "데이터 레이크"에 대해서 다루고 있고요. 뭐 이것 또한 유행의 흐름이라고 생각합니다. 시간이 조금 더 지나야 조금 더 명확해질 것으로 보입니다. "데이터 레이크 하우스"라는..
예비 개발자 분들께 조금이라도 도움이 되길 바라는 마음으로 작성했습니다. 주관이 잔뜩 담긴 글인데 혹여 이 글로 인해 불편한 마음 갖는 분이 없으시길 바랍니다. 마이스터고 진학, 컴퓨터공학 관련 전공, 나아가 비전공자까지 닷컴 버블 이후로 이만큼 IT 업계가 호황인적이 없었기 때문에[1] 많은 사람들이 개발자 문턱을 넘으려고 합니다. 본 글에서는 개발자가 되려는 사람이 알아두면 좋을 것들을 정리합니다. 개발자로 진로를 선택한 누군가에게는 도움이 되길 바랍니다. # 이건 누구를 위한 글입니까? 아직 현업에서 개발을 해본 적이 없지만 개발자가 되기를 희망하는 불특정 다수입니다. 특정 도메인이나 IT 전문 용어는 최대한 빼고 작성했습니다. 그럼에도 이 글이 어렵게 느껴지신다면 똥글이라고 욕하기보단 조용히 뒤로..
FastAPI를 사용한 파이썬 웹 개발은 파이썬 웹 프레임워크 FastAPI를 소개하고, 이를 활용한 웹 애플리케이션을 개발하는 방법을 다루는 번역서입니다. 총 9개의 챕터로 구성되어 있으며, FastAPI의 기본 개념과 기능, 데이터베이스 연결 방법, 보안 기능, 테스트 코드 작성 방법, REST API 작성 방법, 비동기 처리 방법, 도커를 이용한 배포 방법 등을 다룹니다. 정말 모든 걸 품고 있는 듯한 목차죠. 이 책 한 권으로 끝내보겠다는 욕심이 느껴집니다. 하지만 두께가 얇아서 내용을 지면에 다 담지 못하는 아쉬운 점도 있습니다. 앞에 다른 내용은 상상하는 그대로 일 테니 특별히 언급하지는 않겠습니다. 마지막 도커 이미지 배포는 재밌는 게 있어서 이미지로 저장해 봤습니다. "도커 이미지를 다른 ..
- Total
- Today
- Yesterday