본문 바로가기

DevOps63

[AEWS4기] EKS Blue/Green 업그레이드 실습 새로운 EKS 클러스터 생성새 클러스터는 기존 EKS 클러스터와 같은 VPC 에 생성한다.Network connectivity리소스 간 원활한 통신이 보장되어, 워크로드와 데이터 마이그레이션이 한층 수월하다.Shared resourcesNAT 게이트웨이, VPN 연결, Direct Connect 등 기존 VPC 리소스를 재사용할 수 있어 복잡성과 비용을 줄일 수 있다.Security groups두 클러스터에 걸쳐 일관된 보안 그룹 규칙을 유지할 수 있으므로 보안 관리가 단순해진다.Service discoveryAWS Cloud Map이나 유사한 서비스 디스커버리 메커니즘을 사용하는 경우, 클러스터 간에 서비스들이 서로를 더 쉽게 찾을 수 있다.Subnet utilization기존 서브넷을 효율적으로 활용.. 2026. 5. 4.
[AEWS4기] EKS 업그레이드 전략 비교 In-place vs Blue/Green In-place가 합리적인 선택일까, 어쩔 수 없는 선택일까얼마 전 AWSKRUG DevOps 소모임에서 참석자들을 대상으로 EKS 업그레이드를 어떤 방식으로 하는지 현장 설문을 한 적이 있다. 약 30명 정도의 인원이 참석했었는데 충격적인 건 In-place 업그레이드를 선택한 사람이 단 한명도 없었다.나는 회사에서 In-place 방식을 쓰고 있었지만 손을 들 수가 없었다. 왜냐하면 나 스스로도 왜 In-place를 사용하고 있냐는 질문에 제대로 답을 해본 적이 없었기 때문이다. 그저 그렇게 해왔으니까, 그게 자연스러우니까. 그 정도였다. 마침 AEWS 4기 7주차 주제가 EKS 업그레이드 실습이었다. 좋은 기회다 싶어서 이번 글에서는 두 업그레이드 방식의 장·단점을 제대로 비교해보고, 마지막에는 내.. 2026. 5. 4.
[AEWS4기] FluxCD로 CI/CD 환경 구성하기 현재 회사에서 사내 업무에 활용할 AI Agent를 직접 개발하고 있다. 운영 환경을 EKS로 결정했고, 단순히 컨테이너를 굴리는 수준이 아니라 스터디를 통해 배운 CI/CD 지식을 활용해 GitOps를 실제 환경에 적용해보고 싶었다. CI/CD 도구는 앞 글에서 고민한대로 FluxCD를 선택했다. 레포지토리 구성총 3개의 레포지토리로 구성했다. 레포지토리관리도구책임 범위terraform-infraTerraformAWS 리소스 + FluxCD 부트스트랩fleet-infraFluxCD플랫폼 애드온applicationFluxCDAI Agent 배포 Manifest그 외 AI Agent 별 소스코드 레포지토리 왜 3개의 레포지토리로 구성을 했나?처음엔 단일 레포지토리(monorepo)도 고민했다. 관리 포.. 2026. 4. 27.
[AEWS4기] ArgoCD vs FluxCD GitOps 도구의 양대 산맥이라 불리는 FluxCD와 ArgoCD를 비교 분석해 보았다.사내에서 GitOps를 샌드박스 환경에서 시범 도입을 하려고 하는데 어떤 것이 좋을 지 판단을 해야하는 것이 계기였다.당연히 ArgoCD가 업계에서 가장 널리 사용되는 GitOps 도구이기 때문에 딱히 다른 대안을 생각하지 않았었는데, 얼마 전 LinkedIn 글에서 FluxCD가 급부상하고 있다는 글을 보면서 제대로 비교 분석을 해서 선택을 하기로 했다. 핵심 개념 비교항목FluxCDArgoCD개발 주체CNCFCNCF최초 출시2016년2018년CNCF 상태Graduated (2022)Graduated (2022)아키텍처컨트롤러 기반 (모듈형)서버-클라이언트 기반UI 제공기본 미제공강력한 자체 Web UI 제공Mul.. 2026. 4. 27.
[AEWS4기] EKS Trouble shooting : Karpenter MaxPods 값 설정의 함정 개발계정에서 실제 겪은 상황이라 깊게 파고 들긴 했지만, 운영환경에서는 빈번하게 발생하지 않는 케이스로 판단된다자세한 내용은 마지막 결론을 참고하세요 문제 발견회사 개발 계정에서 HPA에 의해 Pod가 스케일 아웃되던 중, 일부 Pod가 ContainerCreating 상태에서 Running으로 전환되지 않는 현상이 발생했다. Pending 상태였다면 Karpenter나 Cluster Autoscaler가 노드를 추가했겠지만, 노드는 추가적으로 스케일링 되지 않았다.(아래는 그 상황을 재현하기 위해 개인 PC 에 테스트로 실습 진행)상황 요약cpu / Memory 리소스는 여유가 있었음kubelet 기준 maxPods 도 넘지 않음App node에 있는 (default namespace) pod를 조회.. 2026. 4. 17.
[AEWS4기] Pod Identity를 활용한 EKS Managed Addon 권한 부여 테라폼으로 EKS 모듈로 addon Externaldns 배포 시, Externaldns를 위한 Pod Identity 설정을 같이 배포해보기 스터디에서 사용 중인 Terraform 코드는 ExternalDNS 애드온에 필요한 IAM 정책을 노드그룹 Role에 직접 포함시키는 방식으로 구성되어 있다. 이 방식은 동작에는 문제가 없지만, 노드 위에서 실행되는 모든 Pod가 ExternalDNS 권한을 갖게 되므로 최소 권한 원칙에 위배된다.이를 개선하기 위해 Pod Identity를 활용하여 ExternalDNS Pod에만 필요한 IAM 역할을 부여하는 방식으로 Terraform 코드를 수정하고 실습을 진행해 보았다. IAM Role 생성resource "aws_iam_role" "external_dns.. 2026. 4. 13.

let textNodes = document.querySelectorAll("div.tt_article_useless_p_margin.contents_style > *:not(figure):not(pre)"); textNodes.forEach(function(a) { a.innerHTML = a.innerHTML.replace(/`(.*?)`/g, '$1'); });