목록 분류 전체보기 (295)
Diagram EKS는 2가지 VPC로 구성되어 있다. Kubernetes control plane를 AWS에서 관리하는 AWS VPC, 그리고 사용자가 직접 관리하는 Customer VPC가 있다. 사용자는 K8S의 control plane를 직접 관리하지 않고, 실질적으로 사용해야 하는 서비스들을 AWS EC2를 Worker node로 하는 Customer VPC에 집중하도록 한다. Cluster endpoint access 이때 이 cluster의 Endpoint, 즉 AWS VPC의 kubernetes api server의 접근 가능 VPC를 설정할 수 있다. public은 요청자의 VPC에 상관없이 endpoint에 접속할 수 있고, 반대로 private 은 cluster 내 VPC 또는 그와..
EKS 모니터링하기 / Cloudwatch 세팅부터 Metric slack 알람까지 1. EKS의 Metric 정보를 fluentbit와 cloudwatch agent를 이용하여 Cloudwatch로 모니터링한다. 2. Cloudwatch의 알람을 Slack으로 전송한다. docs : https://catalog.us-east-1.prod.workshops.aws/workshops/9c0aa9ab-90a9-44a6-abe1-8dff360ae428/ko-KR/90-monitoring/100-build-insight CWagent 설치와 Fluentbit 를 Daemonset 으로 선언 cwagent-fluent-bit-quickstar.yaml 다운 받는다. wget https://raw.githubuse..
NO_PUBKEY B53DC80D13EDEF05 Google cloud에서 반환하는 gpg key 포맷이 'OpenPGP ASCII armor'로 변경되면서 기존 kubernetes docs에서 소개하는 Installing kubeadm 방식을 사용하는 경우 gpg key이 올바르지 않는 문제가 발생한다. 혹시 Kubeadmin, Kubelet, Kubectl 을 설치하는 과정에서 apt repository를 등록하고 apt update로 package 업데이트 시 아래와 같은 key 에러(NO_PUBKEY B53DC80D13EDEF05)를 만났다면 이전 방식으로 설치를 진행하진 않았는지 점검한다. Err:2 https://packages.cloud.google.com/apt kubernetes-xeni..
2023.04.27 / 책임의 설렘회사 안드로이드 팀은 배포 자동화가 안되어 있었고 이번에 내 태스크로 안드로이드 팀 CI/CD 를 주셨다. 이 정도 규모의 일에, 다른 팀과 협업하고 리드해야 하는 일에 티켓 메인 assignee로 내 이름이 올라간 건 처음이었던 것 같다. 팀 리더 분들과 미팅하고 작업자로 내 이름이 불려졌을 때 너무 설렜다. 엄청 무서웠지만 또 엄청 기뻤다. 항상 레거시를 욕해왔다. 답답하고 와닿지 않고, 잘 읽히지 않는 구조나 코드가 마음에 안들었다. 아예 기반 작업이 없이 작업하면 편할 줄 알았는데 레거시가 없는 상태로 구조를 고민하고, 사용 시나리오를 고민하고. 정말 차라리 레거시의 딱 명확한 기반이나 흐름이 그리웠다. 사소한 것부터 큰 구조까지 고민을 정말 열심히 한 것 같..
Dynamic secret정적인 Secret은 위험하다. 사용자가 모두 같은 키 공유하기 때문에 하나의 키만 탈취당해도 모든 권한을 갖는다. 마찬가지로 하나의 키를 공유하여 여러 서비스가 사용하고 있기에 퇴사자가 생기거나 탈취 상황에서 키를 만료시키기 쉽지 않다. 극단적인 예로 하나의 AWS 키를 모든 개발자와 CI/CD agent가 사용하다가 퇴사자가 나쁜 마음을 먹고 키를 사용한다고 가정해 보자. 키를 revoke -> renew 하는 사이 시간 동안 모든 개발 작업, CI/CD 동작들이 멈출 것이다.Dynamic secret은 미리 정의한 사용자 허가 범위에 따라 임시 키를 만들어 사용자에게 반환한다. 그 임시 키는 사용자마다 공통되지 않고, 만료 기간이 정의되어 있어 기간 외엔 사용할 수 없는 키..
Vault 시작하기 Vault의 가장 기본적인 기능들을 소개한다. 0. Vault dev server 실행 1. Secret Engine의 개념과 Secret 생성 2. Seal / Unseal 3. Auth engine / Auth method 4. Policy로 접근 가능 리소스, 액션 제한 5. Entity, 여러 인증 방식을 사용자로 묶어 관리 6. Group, 여러 Entity를 집합으로 관리 0. 간단한 Dev server 실행 Dev server 설치가 간단해서 로컬에서 먼저 테스트해 보기 좋다. 실 서버는 정책이나 설정, Audit을 저장할 저장소가 필요하지만 개발 서버는 인 메모리로 실행되어 Vault 외 준비할 것들이 없다. 1. vault 설치 brew tap hashicorp/tap..
About Vault 회사에서 키 관리를 위해 HashiCorp 사의 Vault를 도입하였다. 이 글에서는 내가 키 관리를 하면서 어떤 상황들을 고려해야 했는지, Vault는 뭐고 Vault는 그 문제들을 어떻게 해결했는지를 소개하려고 한다. 혼자 공부할 때는 키 관리에 이렇게까지 신경 쓰지 못 했다. 로컬에 들고 있거나 잘해봐야 github private 저장소에 올려 관리하는 정도였다. 회사에서는 여러 사람들이 키를 사용하고, 퇴사자를 고민해야 하고, 사용자 안에서도 권한을 분리해야 하는 등의 여러 요구 사항을 만나면서 이제는 당연하지만 지금까지 고려하지 못했던 것들을 고민할 수 있게 되었다. 이렇게 키 관리에 대한 고민을 전혀 못하고 있던 나에게 팀에서 고려 해야하는 상황과 공부 방향, 정책을 함께..
AWS 자원 생성 시에 태깅을 강제하자AWS의 비용을 계산하고 유휴 자원을 관리하려고 한다. 문제는 어떤 팀의, 어떤 목적 등 자원의 출처와 사용처를 알기 어려웠다.이런 배경 아래, 자원 생성하는 과정에서 태깅을 강제하는 정책을 고민했다. 이를 IAM Policy로 풀었던 경험과 필요 개념, 간단한 팁을 공유하고자 한다. 요구 사항 0. 기존 Policy 정책/사용자 그룹은 가능한 건드리지 않도록 한다. 1. 사용자는 정책으로 지정한 자원을 생성하는 경우 태그를 붙여야만 한다.2. 단순히 태그의 Key 값만 일치하면 생성을 허용할 수 있는 조건이 있을 수 있다.3. 태그의 Key에 미리 지정된 Values 만이 Value가 되어야 생성을 허용하는 조건이 있을 수 있다. IAM policy 기본 구조 AW..