개인적인 기록/YIL(Yesterday I Learned)

Weekly 15 회고

Jerry_이정훈 2022. 4. 16. 13:28
728x90

from unsplash

이번 주도 아주 많은 일이 있었다. 하지만 오늘은 4월 16일. 세월호를 기억하고 반성하는 하루를 살아야겠다.

 

비용 절감 관련일을 했다. 내가 생각하는 DevOps 엔지니어 덕목은 빠르고 정확하고 비용 효과적인 일처리다. 아직 2달 뿐이 안되어서 정신이 없기는 한데 해야할 일을 조금씩 해야한다. 우리 회사는 그동안 비용 절감 관련 일을 하지 않았다. 비용보다는 속도가 중요하다고 생각하는 편이었다. 상황에 따라 맞다. 하지만 회사가 좀 더 성장하는 단계에서 비용 역시 중요한 요소다.

 

AWS 비용 중 EC2, RDS 비용이 대부분이다. 이번 주는 RDS 현황을 파악하고 사용하지 않는 RDS는 삭제하고 사용하는 RDS는 Read 인스턴스 숫자를 줄이고 RI 사용을 유도하고 있다. 추가로 인스턴스 타입을 줄이는 것도 해야한다.

 

사용하지 않는 것 같은(?) RDS를 삭제하기 위해 회사 공지를 하고 다른 사람에게 물어보고 하는 다소 귀찮음이 있는 작업을 했다. 실 커넥션, 사용량을 확인하는 등 당연한 일들을 귀찮다고 생각하지 않는 자세가 필요한 일이었다. 

 

그리고 비용 관련해서는 매주 Weekly 비용 관련 레포트를 만들어서 회사 내 공유하려고 한다. 그동안은 얼마나 사용하는지 제대로 공유도 안되어 막 사용하는 경향이 있는 것 같다. 정기 레포트이니 레포트 생성을 최대한 자동화해서 추가 공수가 들지 않도록 하는게 주요한 요소다.

 

중, 장기적으로 실 운영 서비스를 위한 RDS는 몰라도 적어도 개발, 스테이지 DB는 K8s에 설치하는 걸 해야한다. 바쁘다고 안하고 있는데 충분히 가능한 일을 안하고 있다.

 

OpenVPN을 검토했는데 아쉽게도 회사 계정과 SSO 연동을 위해서 구글 LDAP을 사용해야 하는데 LDAP을 사용하려면 구글 비즈니스의 계정을 기존 Starter(월 $6)에서 Premium($15)으로 업그레이드 해야 한다고 하여 포기 하였다. VPN은 아마도 상용 TailScale을 사용할 것 같다. 

 

EC2 RI 적용을 하면서 노드 타입을 실수로 선정하여 AWS 파트너에게 정정을 요청하였다. 원래는 RI 변경이 안된다고 하는데 그러면 사용하지도 않는 비용이 계속 발생한다. 실수를 안하고 싶은데 실수를 하게되고 그러면 참 괴롭다. 위축되지 않도록 해야겠다.

 

스테이지 클러스터의 eks 버전을 1.18에서 1.22로 무려 4단계나 올렸다. 스테이지라 하루에 다 올렸다. 반복 노가다 성 작업이라 정신이 몽롱했다. 하루 종일 별 생각없이 업데이트 버튼만 눌렀다. 마스터, 워커 노드 각각 업데이트 하는데 1단계 올릴 때마다 40분은 걸렸다. 1.21까지는 큰 문제 없었으나 1.22로 올릴 때 ingress API 버전 불일치로 ingress를 새로 만드는 이슈가 있었다.

 

운영 클러스터도 1.18에서 1.19로 새벽에 서비스 끊고 작업했다. 그런데 스테이지에서 발생하지 않았던 traefik 인그레스를 인식하지 못해서 예상된 2시간 작업을 초과하여 3시간 작업하였다. traefik은 포기하고 새로운 nginx ingress를 하나 더 만들어서 겨우 서비스 복구 하였다. 

 

위와 같은 장애 상황은 장애 부검이 필요하다. traefik 복구가 안된 문제보다는 ingress-nginx를 2개 사용하는 경우 문제가 없는지 좀 더 자세히 살펴볼 예정이다. 

 

이번 주 대형 장애는 Cluster Autoscaler가 오동작하여 기존 파드를 삭제한 거다. 파드가 전용 노드를 사용하는데 파드가 재시작하면서 새로운 노드가 실행되고 새로운 노드에서 실행된 파드는 15분 정도 지나면 자동 재시작되어 노드가 죽었다 살았다를 반복하는 어처구니 없는 일이 계속 반복되었다. 

 

2일 고생 후 어떤 분이 Cluster Autoscaler 관련 유사 현상을 발견하여 cluster autoscaler 파드의 버전을 올리는 작업을 진행했다. cluster autoscaler의 버전이 eks 버전에 맞는 것을 사용하고 있지 않고 예전 버전을 사용하고 있었던 것이다. 아직 완전히 종료된 장애는 아닌데 아마도 해당 문제로 강력하게 추측되고 있다. 

 

그동안 cluster autoscaler의 정확한 기능을 모르고 버전도 체크하고 있지 않았다. 하나 더 알아가서 좋기는 하지만 장애가 발생해서 즐겁지는 않는 경험이다. 이것저것 챙겨야 할게 많은 쿠버네티스다. DevOps가 나 혼자인데 꼭 한 명 더 있으면 좋겠다. 물론 회사의 매출이 늘어야겠지만.




반응형