Istio와 envoy proxy를 통해 경험해보는 네트워크 인터페이스 (istio 1.10)

시작하며 요즘 istio를 공부하던 중 istio가 변화해온 과정에 대해서도 흥미가 생겨 지난 버전들의 릴리즈 노트들도 읽어보고 있습니다. 그러던 중 현 시점(2022년 7월)에는 이미 공식적인 End of Life가 지난 2021년 3월 처음 릴리즈된 istio 1.10의 릴리즈 노트를 보다가 재미있는 점을 하나 발견할 수 있었는데요. 바로 envoy proxy가 eth0에 대한 요청을 넘겨주는 container의 network interface가 lo 에서 eth0 로 변경되었다는 점입니다. 네트워크에 대해, 그 중에서도 특히 네트워크 인터페이스에 대해 잘 몰랐던 때에는 이 변경사항에 그닥 관심이 안 갔을 것 같은데 최근 네트워크 인터페이스에 대해 공부를 해서인지 이 변경사항에 관심이 갔습니다. ...

7월 17, 2022 · 10 분

쿠버네티스로 Clova AI Custom Extension 배포하기 (feat. Istio, Cert Manager)

시작하며 올해에는 많은 변화가 있었다! 💼 데브옵스 엔지니어로 회사를 가게 됐고 아주 만족 중이다! 🏠 회사의 좋은 보상, 복지에 힘입어 생애 첫 자취를 하게 됐다. 💻 네트워크나 리눅스, 보안 등 딥한 영역에 좀 더 관심을 갖게 됐다. 🎸 기타를 꾸준히 다니고 있다. 그런 변화들 속에서 자취방에 인터넷 설치를 하게 됐는데 클로바 AI 스피커를 공짜로 주더라. 본가에 있을 때도 쓰긴 했는데 딱히 관심 없다가 직접 클로바 앱을 깔아서 이것저것 써보니 ‘전보다 재밌네..? ㅎㅎ’ 싶었고, ‘아니 이거 직접 만들지는 못하나’하는 생각이 들던 참에 “스킬 스토어”라는 게 눈에 띄었다. 스킬 스토어에는 개별 개발사들이 개발한 자기네 기능들이 소개되어있었다. ...

7월 13, 2022 · 8 분

ArgoCD 선언적으로 이용해나가기 - Github을 통한 SSO 및 RBAC

시작하며 저번 글(“ArgoCD 선언적으로 이용해나가기 - Helm, App of App”)에서는 Helm과 App of App 패턴을 이용해 ArgoCD를 선언적으로 이용해나가는 방법을 다뤘습니다. 바~로 ArgoCD를 좀 더 선언적으로 이용해나가는 것과 관련된 팁부터 글을 적어나가기는 좀 무리가 있을 것 같아 해당 글에서는 배경지식들에 대한 간략한 정리와 핸즈온 같은 느낌의 내용들도 많이 포함하게 됐던 것 같아요. 이번 글에서는 ArgoCD를 실제로 이용하기 위해 필요할만한 이런 저런 설정들을 어떻게 선언적으로 정의해볼 수 있을지를 소개해보려해요! 그리고 그 예시로 RBAC 설정을 해보겠습니다. 이번 글에서 수행해볼 작업은 Github 계정을 ArgoCD와 연동시켜 역할(Role) 기반으로 ArgoCD의 권한을 제어하는 것이에요. ...

5월 7, 2022 · 6 분

ArgoCD 선언적으로 이용해나가기 - Helm, App of App

시작하며 취준생 기간을 마무리하고 데브옵스 엔지니어로서 커리어를 시작하게 됐습니다! 🎉 근무를 시작하기 전까지 기간이 좀 남아있어서 그 전까지 뭘 해보면 재밌을까 고민하던 중에 새로 생긴 클라우드 동아리인 Cloud Club에서 클라우드와 인프라에 관한 주제로 발표할 기회가 주어져 ArgoCD를 토픽으로 발표를 해보려합니다. 그리고 관련된 내용을 한 번 더 블로그에 정리해보려해요! 주제는 “ArgoCD 선언적으로 이용해나가기” 이고 주로 다룰 내용은 어떻게 ArgoCD를 좀 더 선언적으로 관리하고 이용해나갈 수 있을지입니다. ArgoCD가 뭔지, 어떻게 Getting Started할지, GitOps가 뭔지 등을 다루지 않으려는 이유는 이미 그 내용으로는 충분한 양질의 자료가 존재한다고 생각하기 때문입니다. ArgoCD나 GitOps의 개념 자체 같은 내용보다는 새로운 기술(ArgoCD)을 접할 때 어떻게 입맛대로 커스터마이징해나가는지 그리고 그 작업을 어떻게 좀 더 유지보수하기 쉽도록 즉 선언적으로 해나갈 수 있을지에 대한 저의 작업 과정을 소개해보려합니다 ☺️ ...

4월 22, 2022 · 10 분

2021년 회고

시작하며 매년 그랬지만 2021년도 참 빠르게 지나간 것 같다. 벌써 연말이라니. 오늘은 2021년을 돌아보며 잘 했던 부분에 대해선 나 자신을 칭찬해주고, 아쉬웠던 부분에 대해서는 개선할 방안을 찾아봄으로써 새해는 더 뜨겁고 의미있게 보내고자한다~! 개발 외적인 거는 개인적으로 정리할 계획이고, 본 회고록에서는 개발 관련된 내용 위주로 작성했다. 2021년 개발 관련 활동 요약 다양한 이유로 미뤄왔던 스프링을 사용해보기 시작했다. 바닥부터 주도적으로 설계/개발해나갈 수 있는 초기 스타트업에 합류해 나름 많은 경험을 해볼 수 있었다. 실제 개발 프로젝트에 여럿 참여해 협업을 해보았다. (교내 사이드 프로젝트, 개발 동아리, 스타트업) CS 지식을 넘어 개발자로서 필요할 만한 내용들을 많이 접하고 공부했다. DB, Transaction, Cache, Redis, Concurrent programming, TDD MSA, DDD, 메시지 큐, CQRS, SAGA 등에 대해 AUSG(AWS 대학생 동아리)와 SOPT(개발 동아리)에서 진행한 세미나에서 ElasticBeanstalk 관련 세션을 진행했다. 취준을 시작했다. AWS SAA 자격증을 공부 중이다. 백엔드/클라우드 분야에 있어 대부분의 기술 세미나와 기술 블로그 글들을 어느 정도 다 이해할 수 있어졌다. 무엇보다 올해에는 마음이 맞는 소중한 사람들을 많이 만나게 된 것 같아 감사하다. 좋았던 점 스타트업에 합류해 많이 성장할 수 있었다! ...

12월 20, 2021 · 6 분

쿼리 최적화하기 - 조회수와 같은 Count 성격의 작업 최적화하기 (N+1 문제 관련, feat. Redis)

시작하며 짧은 영상을 바탕으로 배틀을 할 수 있는 서비스를 Spring Boot MVC + JPA로 개발하던 중 위와 같이 API Latency가 처참하게도 느린 요청들이 감지되기 시작했습니다. 그동안은 쿼리 최적화보다는 로직 개발이 더 우선시하다보니 쿼리 최적화를 미뤄왔는데, 이번 기회에 이에 대해 다뤄보려합니다. 간단하게 코드를 짜서 테스트해보느라 Go 언어를 이용했지만 JPA를 이용하든 뭘 이용하든 문제와 그에 대한 해결책의 요지는 동일할 것입니다. 아무래도 백엔드에서 API를 개발하면서 파일 데이터를 주고 받는 게 아니라면 주로 Latency가 늘어나는 이유는 다음과 같을 것입니다. ...

11월 24, 2021 · 7 분

AWS Lambda + API Gateway를 통해 SSR로 OpenGraph 메타데이터 제공하기

시작하며 서비스 출시를 앞두고 마무리 작업을 하던 중 잊고 있었던 SNS 관련 기능들이 있었습니다. 그 중 OpenGraph를 통해 “공유하기” 기능 수행 시에 적절한 메타데이터를 제공해줘야 했습니다. 별로 어려운 기능은 아니지만 이를 제공하기 위해 적절한 방향을 찾기가 쉽지 않았던 것 같습니다. 고민과 삽질 끝에 저는 CloudFront, API Gateway, Lambda 서비스들을 이용하기로 결정했고, Serverless framework를 이용해 Golang 바탕의 마이크로서비스를 개발했습니다. OpenGraph? SSR? 본 글은 아키텍쳐나 기술 선정에 대한 내용을 많이 담을 것이라서 정의에 대한 자세한 설명은 생략하겠습니다. ...

11월 7, 2021 · 8 분

2020 카카오 인턴쉽 코딩 테스트 - 보석 쇼핑 풀이

문제 설명 문제 출처: https://programmers.co.kr/learn/courses/30/lessons/67258 각각의 보석상은 하나의 보석을 판매 연속된 보석상들을 쇼핑하면서 방문할 때마다 보석을 구매 모든 종류의 보석을 구매할 때까지 진행 모든 종류의 보석을 구매하는 경우 중 가장 조금의 보석을 가장 앞선 보석상에서 구매하는 경우를 구하기 문제 접근 우선 단순하게 문제의 조건을 그림으로 나타내면 위와 같다. 결국 1번 상점부터 방문하는 경우, 2번 상점부터 방문하는 경우, … 이런 식으로 진행해나간 뒤 가장 보석을 적게, 앞의 상점에서 사는 경우를 구하면 된다. ...

9월 6, 2020 · 4 분

EKS K8s에서 ELB(ALB, NLB) 제대로 설정하며 사용하기

🐶 시작하며 본 게시글은 AWS 대학생 유저그룹인 AUSG의 활동 중 하나로서 본인(박진수)이 작성한 게시물을 포워딩한 것입니다. 데브옵스 인턴으로 근무한 지가 벌써 두 달이 되어갑니다. 이것 저것 배운 것이 많았던 시간이었는데, 그 중 꽤나 삽질을 했던 Kubernetes 와 ELB를 이용하는 부분에 대해 정리를 해볼까합니다. Jenkins, Spinnaker, ArgoCD, Terraform, Ansible, Github Actions 등등 다양한 내용을 경험할 수 있던 시간이었지만, 그 중 kubernetes에서 무슨 작업을 하던 빼놓을 수 없으면서 어딘가 깔끔히 그 흐름이 정리된 곳을 보기 힘들었던 service를 ELB에 연결하기에 대한 내용을 정리해보겠습니다. ...

9월 6, 2020 · 10 분

Go 언어

다른 언어에선 겪어보지 못했던 특이한 경우나 다른 언어와 Go의 비교 등 주로 Go를 공부하고 적용하면서 겪게된 다양한 경험에 대해 적어보려합니다. Golang의 기본 개념 설명은 이미 많은 자료를 찾아볼 수 있기에 이에 대한 자세한 설명은 대체로 생략할 예정입니다. Golang의 기초 관련 내용을 배워보실 분들께는 제가 번역에 기여한 A Tour of Go이나 Mingrammer님께서 번역해주신 Go by Example을 를 읽어보시면 많은 도움이 되리라 생각합니다!

1월 9, 2021 · 1 분