쿠버네티스를 정복하기위한 나의 여정
쿠버네티스를 정복하기위한 나의 여정
서론
개발의 세계에서 끊임없이 변화하고 도전하는 것은 개발자의 숙명입니다. 백엔드 개발자로서 제가 CI/CD와 쿠버네티스의 생태계로 뛰어든 것도 바로 이러한 이유였습니다. 처음 ECS 를 통해 애플리케이션을 배포했을 때, 그 경험은 저에게 자부심을 주었을 뿐만 아니라 컨테이너 환경에서 운영되는 앱의 장점을 몸소 체험하는 계기가 되었습니다. 하지만 문서화된 지식만으로는 동료들이 제가 설계한 ECS 환경에 앱을 배포하는데 어려움을 겪는 모습을 보며 더 자연스럽게 배포 프로세스를 간소화하는 방법을 찾게 되었습니다. 그래서 시작한 것이 쿠버네티스 여정입니다, 이 글을 통해 여러 개발자가 직면하고 있는 배포의 복잡한 프로세스를 간소화하고 개발자라면 누구나 한 시간 안에 앱을 배포할 수 있는 그 날을 위해 함께 여정을 했으면 합니다.
제1부: 기초 다지기
컨테이너와 개인 저장소의 세계
Docker 와 컨테이너 환경을 구축한 것이 기술 여정의 첫걸음이었습니다. Amazon ECR 같은 개인 저장소를 활용하는 방법을 배우며, 기술적인 이해뿐만 아니라 새로운 사고방식도 함께 익혔습니다. 앞으로 다가올 대부분의 배포 프로세스는 컨테이너 환경에서 이루어질 것이기 때문에, 이 단계는 여정의 중요한 부분입니다.
쿠버네티스와 입문
익숙해진 ECS 생태계를 떠나 쿠버네티스 학습을 선택한 것은 쿠버네티스가 제공하는 다양한 기능과 확장성을 경험하고 싶기 때문입니다. 쿠버네티스 클러스터를 구축하고 노드를 직접 관리해보면서 GUI 로만 관리하던 ECS 배포 프로세스를 좀 더 이해할 수 있을 것이라 생각합니다.
CI/CD 맛보기
앱을 배포할 때 적절한 CI/CD 파이프라인을 구축하는 것은 앱을 관리하고 확장하는데 중요한 요소입니다. 깃허브액션, 젠킨스 등과 같은 도구를 활용한 안전한 배포를 이해하는 것은 쿠버네티스 운영뿐만 아니라 다양한 환경에서 필수요소입니다.
제2부: 실력 키우기
쿠버네티스의 서비스와 배포 시작하기
서비스와 배포 설정을 통해 쿠버네티스가 제공하려는 것이 뭘까라는 것을 알아가기 시작했습니다. 이 과정에서 제 동료들이 겪고 있던 배포의 어려운 문제들을 해결하는 데 큰 도움을 줄 수 있을 것이라 생각했습니다.
공개적으로 애플리케이션 노출하기
쿠버네티스를 통해 애플리케이션을 public 환경에 노출하는 방법을 배우는 것은 제 개발 역량을 한 단계 끌어올린 경험이었습니다. 보안성과 안정성은 물론이고 네트워크에 대한 공부도 하게 되었습니다.
제3부: 전문가로 거듭나기
모니터링과 로깅으로 깊이 있는 통찰 얻기
Prometheus, Grafana, ELK 스택과 같은 도구를 활용한 모니터링과 로깅은 제 개발 여정에서 빼놓을 수 없는 부분이었습니다. 단순히 배포하는 것을 넘어, 애플리케이션의 성능과 안정성을 지키는 것이 중요했습니다. 특히 로깅 프로세스를 개발 초기단계에 설정하는 것이 얼마나 중요한지 배웠습니다.
CI/CD 워크플로우 완성하기
CI/CD 파이프라인을 구축하는 과정은 제 개발 여정의 정점이었습니다. 이 단계를 통해 기술적인 능력뿐만 아니라, 동료 개발자들이 보다 신속하고 효율적으로 작업할 수 있는 환경을 마련하는 데 큰 의미가 있었습니다.
결론
누구든지 한 시간 이내에 애플리케이션을 배포할 수 있는 그날을 향한 목표는 이제 현실로 다가오고 있습니다. 이 여정은 단순한 개인적 성취를 넘어서, 기술이 팀의 업무 방식을 어떻게 변화시킬 수 있는지를 보여주는 사례가 될 수 있습니다. 여기서 소개한 로드맵은 단순화되고 향상된 배포 프로세스를 추구하는 모든 이들에게 유용한 지침이 될 것입니다. 쿠버네티스와 CI/CD의 발전하는 세계를 계속 탐험하면서, 이 길은 때로는 도전적이지만, 궁극적으로는 우리 모두에게 배움과 기회를 제공했으면 합니다.
이 여정은 쿠버네티스의 상세한 내용을 다루지 않습니다. 쿠버네티스를 배우고 싶다면, 쿠버네티스 공식 문서를 참고하세요. 이 글은 추후 작성될 문서에 따라 수정될 수 있습니다.