Tech

Browse Posts

Tech

인프라, 플랫폼, 운영 기술을 주제별로 정리한 기술 글 모음입니다.

Kubernetes

로컬 Kubernetes 클러스터 구성 도구 비교

Intro 쿠버네티스 환경에서의 공부/개발 테스트 시 로컬 클러스터가 필요하다. 학습 목적의 클러스터가 필요할 수도 있고, 개발한 어플리케이션을 실제 운영/개발 환경에 배포하기 이전에 Manifest 단에서 잘 배포가 되는지 확인이 필요할 수 있기 때문이다. 이러한 로컬 Kubernetes 클러스터 도구에 대해서, 수많은 구성도구가 존재하며 모두 다 자기가 최선의 선택이다/많은 기능을 제공한다고 이야기를 한다. 하지만 선택받는것은 그 중 하나일 […]

Kubernetes

M1맥북에서 Rocky리눅스에 UTM으로 HA Kubernetes 클러스터 구축하기

1. Intro 처음 Kubernetes를 공부할때는 Windows 환경에서 VirtualBox + Vagrant를 사용해 로컬 쿠버네티스 클러스터를 생성해 이것저것 테스트 했었다. 비용부담없는 로컬 클러스터라는게 꽤나 마음에 들었다. 그러나 업무상 주로 사용하는 M1 Macbook에서는 VirtualBox를 사용할 수 없다. 대안으로 컨테이너 기반의 노드를 생성한 후 클러스터를 제공하는 Docker Desktop 내장 Kubernetes, Minikube, Kind, k3d, Orbstack 등의 도구들이 존재한다. 해당 도구들은 […]

AWS

AWS Lambda + Amazon EventBridge Scheduler로 커스텀 알람 만들기

Intro 지난글에서, 간단히 AWS Chatbot을 통해 Cloudwatch Alarm을 Slack으로 받아보았다. 그러나 글의 말미에 언급하였던 것처럼, 간단한 구축은 장점이나 커스텀요소가 많이 부족하다는 아쉬움이 있었다. 이글에서는 Amazon EventBridge를 사용해 주기적으로 AWS Lambda를 트리거 하고, 지표 확인 및 알람 대상을 평가해 Slack으로 발송하는 과정을 공유하고자 한다. 기존의 Cloudwath Alarm + AWS Lambda글들을 살펴보면, 단순히 Alarm Event를 Lambda를 통해 […]

AWS

AWS Chatbot을 통해 Cloudwatch Alarm을 Slack으로 받기

Intro 기존에 사용하던 모니터링 솔루션의 비용절감을 위해, 별도의 툴을 사용하지 않고, 사용하는 플랫폼(AWS)에서 제공하는 서비스만으로 간단하고 저렴하게 모니터링과 알람을 구현하는 방법을 알아보게되었다. 여러 레퍼런스를 살펴보았을때 제일 간편하고 빠르게 구성할 수 있는것은 AWS Cloudwatch + Chatbot의 조합이였다. 본글에서는 해당 서비스를 사용해 간편히 시스템 지표(CPU 사용량>80)에 대한 모니터링 알람을 구성하고, Slack으로 메세지를 받는 과정을 정리해두고자 한다. SNS […]

Kubernetes

Kubernetes 클러스터 관리를 용이하게, alias & k9s & openlens 소개

TL; DR 1. Intro 쿠버네티스 클러스터를 제어할 때, 일반적으로 kubectl 이라는 CLI 명령어를 많이 활용한다. 쿠버네티스는 쿠버네티스 API를 사용하여, 쿠버네티스 클러스터의 컨트롤 플레인과 통신하기 위한 명령줄 도구를 제공하며, 그 도구의 이름은 kubectl이다. Kubernetes provides a command line tool for communicating with a Kubernetes cluster’s control plane, using the Kubernetes API. This tool is named kubectl. Command […]

Terraform
Terraform

tfsec 구성 및 사용 방법

TL;DR 1. Intro tfsec은 pre-commit terraform의 연동가능한 프로그램을 확인하던 중 알게되었다. 작성된 코드를 실행하기전 테스트를 통해 취약점/오구성(misconfiguration)을 파악하는것은 중요하다. 테라폼 내재적인 수준에서, fmt와 validate 명령어를 통해 일종의 lint/test를 수행할 수 있지만, 이는 작성된 코드가 문제없이 실행될 수 있는지를 검증하는 테스트이지 결과물의 안정성을 보장하는 테스트가 아니였다. 안전한 인프라를 구성하기 위해서 지켜야할 몇가지 원칙들이 있을것이다. 가령 SSH(포트22)는 […]

Terraform
Terraform

Pre-commit-terraform 구성 및 사용 방법

TL;DR 테라폼코드 작성 후 커밋시, 포맷팅/유효성검증/설명문서/비용분석 자동화 스크립트 1. Intro 테라폼 코드의 실행에 대한 Pipeline을 고민하던 중, pre-commit-terraform 도구를 알게되었다. Git repository를 사용해 코드를 관리한다면, 코드 작성을 완료하고 git commit을 수행하여야 할것이다. 커밋이 실행되기 이전에 일련의 검증 스크립트를 수행(hook)하여 통과되었을 경우에만 commit을 수행되도록 파이프라인을 구성하면, 통일성 유지에 도움이 될 것이라고 생각한다. pre-commit-terraform hook은 커밋 메시지를 작성하기 […]

Terraform
Terraform

인프라코스트(Infracost) 소개 및 사용 방법

TL;DR 테라폼 코드 기반 비용분석 오픈소스 1. Intro Infracost는 221011 AWSKRUG 컨테이너 소모임 meetup에서, 유정열(당근마켓, AWS Hero)님의 발표로 처음 접하게 되었다. 그 당시에는 ‘재밌는 오픈소스 프로젝트네~’하고 인지만 하고 넘어갔었다. 그 다음으로 Infracost를 인지하게 되었던 것은, 테라폼 클라우드를 공부하며 관련 기능 탐구하던 도중이였다. Terraform cloud에는 유료기능으로 Cost Estimation(비용 예측)을 제공하는데, 해당 기능이 Infracost 기반으로 작동한다. ‘유료 […]

Terraform

Terraform cloud를 사용한 GitOps 구현

TL;DR 1. Intro & Overview 지난글에서는 기본적인 Terraform Cloud(이하 테클)의 개념과, Web 콘솔에서의 기본적인 사용법에 대하여 다루었다. 이번글에서는, 테클을 VCS(Version Control Source)인 GitHub와 연동하여 사용하는 GitOps Workflow와, 기본편에서 다루지 못했던 심화 설정들을 다루고자 한다. 또한 테클을 공부하면서 생각했던 장/단점을 이야기 해보고자 한다. 2. GitOps? GitOps 또한 DevOps에서 파생된 많고 많은 *Ops 개념 중 하나이다. “누가 […]

Terraform

Terraform cloud 소개, 기본 설정, 사용 방법

TL;DR 1. Intro & Overview 신규 팀원으로 DevOps 팀에 합류하면서, ‘어떻게 테라폼을 팀 수준에서 잘 쓸 수 있을까?’라는 고민을 하게 되었다. AWS의 인프라를 프로비저닝하고 관리하는데 있어서, 기존에는 Github를 사용한 버전 관리와, AWS S3 버킷에 state 파일을 올려 원격으로 관리하는 Remote State 기능 정도가 활용되고 있었다. Version control과 Remote state 외에도, 협업을 위해 추가할 수 있는 […]

DevOps Tools

Knowre DevOps Curriculum-Q0

https://github.com/Knowre-Dev/DevOpsCurriculum 수행할 예정 하려면 신입인 지금밖에 할 기회가없다. 신입일때 저런고민들 하고 답을찾아나가야지, 1년차만되도 ‘아직도 이런걸 모르고있다니’싶을듯 Q0 – What is DevOps Checklist Quest IAM 계정생성은 패스 Advanced DevOps의 전문성은 어디에서 오는가? 데브옵스에 대한 일반적인 설명은 아래로 미뤄두고, 데브옵스 커리어에 대한 제일 큰 의문은 위와 같다. 특정한 이름으로 포지션이 있고, 전문성을 쌓는다면 다른 직무와 배타적인 해당 […]