반응형

2025/09 5

Packer 사용해서 AWS ami 커스텀 해보기

Packer 란?Packer는 여러 클라우드 및 가상화 환경에서 사용할 수 있는 머신 이미지를 자동으로 빌드해주는 도구 입니다.Packer를 사용하게된 계기Kubernetes 환경에서 Job 리소스를 사용하다 보면, 요청이 들어올 때마다 새로운 Pod가 생성됩니다.이 과정에서 노드가 새로 생성되고, 필요한 컨테이너 이미지를 내려받은 뒤에야 Pod가 실행되기 때문에 시간이 오래 걸리는 문제가 있었습니다.이 문제를 해결하기 위해, 노드가 시작될 때 이미 필요한 컨테이너 이미지가 포함된 상태로 준비되어 있으면 좋겠다고 생각했습니다.이를 위해 선택한 도구가 HashiCorp Packer 입니다.Packer를 사용하면 커스텀 베이스 노드 이미지를 빌드할 수 있고, 여기에 Pod 실행에 필요한 이미지를 미리 포함시..

AWS 2025.09.30

“Helm + ArgoCD + ApplicationSet으로 구축하는 PR Preview 환경 (3편: Preview 환경 배포하기)”

“Helm + ArgoCD + ApplicationSet으로 구축하는 PR Preview 환경 (1편: 아키텍처)”“Helm + ArgoCD + ApplicationSet으로 구축하는 PR Preview 환경 (2편: Helm 차트 구성)”앞선 글과 이어지는 내용 입니다.3편 글에서는 Helm 차트로 만들어준 Preview 환경을 PR이 발생하였을 때, 어떻게 만들어지는지 설명해보겠습니다.Github에서 PR이 발생하면 Argo ApplicationSet 리소스가 해당 PR을 감지하고 Helm 차트를 배포 하는 방식으로 진행 해보겠습니다.Argo ApplicationSet 이란 ?ArgoCD의 Application을 자동화해서 관리할 수 있도록 도와주는 컨트롤러 리소스 입니다.Prview 환경에서 App..

Pipeline 2025.09.16

“Helm + ArgoCD + ApplicationSet으로 구축하는 PR Preview 환경 (2편: Helm 차트 구성)”

“Helm + ArgoCD + ApplicationSet으로 구축하는 PR Preview 환경 (1편: 아키텍처)”앞선 글과 이어지는 내용 입니다.2편 글에서는 Preview 환경을 Helm 차트로 어떻게 만들었는지 설명해보도록 하겠습니다.Helm 차트를 왜 선택했는가?PR 마다 네임스페이스가 달라지고, 각 어플리케이션 파드 별로 이미지가 달라지는 상황에서 k8s yaml을 일일히 변경하면 비효율적이고, 실수를 하게될 위험이 큽니다.Helm은 템플릿화가 가능해서, PR 번호나 이미지 태그 같은 값을 변수로 넘길 수 있어 변화가 잦은 Preview 환경에 적합하다 생각되어 선택하였습니다.이제 Helm 차트를 어떻게 생성하고 구성했는지 알아보겠습니다.Helm 차트 생성Helm 차트 생성 명령어helm cre..

Pipeline 2025.09.12

“Helm + ArgoCD + ApplicationSet으로 구축하는 PR Preview 환경 (1편: 아키텍처)”

PR Preview 환경을 구성하게 된 이유보통은 Prod / Dev / Test 이렇게 3개 환경을 두고 개발을 하죠.하지만 제가 있는 곳은 스타트업이다 보니 비용 압박 때문에 Prod / Test 딱 두 개만 있었습니다.문제는 여기서 시작됐습니다.Dev 환경이 없다 보니, 개발자분들이 기능을 테스트하려면 Test 환경을 뺏어 써야 했습니다.그러다 보니, QA 팀도 쓰고, 다른 팀도 쓰는데… 개발자가 자기 브랜치 테스트를 위해 올려버리면 Test 환경으로 사용하던 다른 팀원 분들의 동작이 멈추게 됩니다..“이거 왜 안 되지?” 하고 보면, 다른 사람이 방금 테스트 중이던 API가 바뀌어 있던 경험… 다들 해보셨을 겁니다.그러다 알아보던 중, 다른 회사들은 개발자가 PR 올리면 자동으로 Preview 환..

Pipeline 2025.09.11

Karpenter로 EKS에서 Spot 인스턴스 자동 프로비저닝하기

사전 준비EKS 클러스터EKS의 노드그룹Helm1. Karpenter 설치먼저 Karpenter를 설치하기 전, Karpenter-Controller가 사용할 IRSA가 필요합니다.1-1. IRSA 생성을 위한 IAM Role 생성먼저 EKS의 ID 제공업체 확인해줍니다.# 클러스터 정보 확인aws eks describe-cluster \ --name \ --query "cluster.identity.oidc.issuer" \ --output text이제 Role 생성할 때 필요한 신뢰 관계를 json 파일로 만들어 줍니다.cat > role.json :oidc-provider/oidc.eks..amazonaws.com/id/" }, "Action": "sts:AssumeRole..

AWS 2025.09.03
반응형