세션명: 데브옵스_DevOps의 혁신: Amazon EKS를 활용한 플랫폼 엔지니어링 적용하기
일시: 2024.05.17 17:20 ~ 18:00
장소: 코엑스 컨벤션 센터
작성자 : CTC 이승준
플랫폼 엔지니어링이라는 용어는 들어봤지만 정확한 의미를 알지 못했습니다. 이번 세션에서는 플랫폼 엔지니어링의 개념과 구성에 대해 배우고 싶습니다. 또한, 무신사에서 플랫폼 엔지니어링이 필요했던 이유와 구성 사례를 알고 내부에 어떤 부분을 적용할 수 있는지에 대해 고민해보고 싶습니다.
세션 소개
본 강연에서는 Amazon EKS를 활용하여 내부 플랫폼을 구축하고 개발자의 작업 속도를 가속화하는 방법을 탐구합니다. 플랫폼 엔지니어링의 개념을 소개하고, 고객들이 Amazon EKS에서 효과적인 플랫폼을 구축하고 확장할 수 있도록 지원하는지에 대한 모범 사례를 제공합니다. "무신사"와 같은 혁신적인 기업이 Amazon EKS를 활용하여 플랫폼 엔지니어링을 어떻게 적용하고 있는지에 대한 실제 사례를 통해, 참가자들은 AWS에서 플랫폼 엔지니어링을 통한 DevOps 혁신 방법을 배우게 됩니다. 이 강연은 개발자, 시스템 관리자, 그리고 IT 리더들에게 플랫폼 엔지니어링을 통한 효율적인 개발 환경 구축 방법을 소개합니다.
"Amazon EKS를 활용한 플랫폼 엔지니어링 적용하기"에서는 플랫폼 엔지니어링에 고려해야 할 사항을 설명합니다. 또한, 무신사에서의 플랫폼 엔지니어링 도입 과정과 이를 통해 개선된 내용을 소개합니다. 플랫폼 엔지니어링은 내부 플랫폼을 통해 개발자에 개발 환경 구성, 반복 업무 등에 업무를 개선하여 주 업무에 생산성을 높이는 것 입니다.
개발 인프라를 구성 및 관리하는 방법으로 4가지가 소개되었습니다.
•
중앙화된 방식 : 개발팀과 인프라를 관리하는 팀이 분리된 방식으로 다만 인프라 팀에 부하 발생 시 개발팀에 개발 환경을 배포까지 오랜시간이 걸리는 문제가 있습니다.
•
탈중앙화 데브옵스 : 개발팀에서 인프라를 직접 구성하는 방식으로 빠른 구성이 가능하지만 잘못된 구성으로 보안에 취약성이 존재할 수 있습니다.
•
임베디드 데브옵스 : 개발팀에 데브옵스 인원을 함께 구성하는 방식이나 실제로 개발팀 마다 데브옵스를 배치하는 방식은 현실적으로 어려웠습니다.
•
플랫폼이 지원하는 골든패스 : 중앙화된 방식과 비슷해보이지만 최소한에 값만 입력받아 인프라를 구성할 수 있도록 추상화하여 개발팀에서 손쉽게 구성하는 방식입니다.
4가지 중 플랫폼이 지원하는 골든패스 방식이 빠른 개발환경 구성 및 보안 거버넌스 준수에 가장 적합합니다.
플랫폼 구성을 위해서는 소유권, 추상화의 수준, 도입, 문제해결을 고려해야합니다.
•
소유권 : 리소스에 대한 소유권으로 관리 주체가 명확해야 합니다.
•
추상화의 수준 : 템플릿에 구성에 가장 중요한 부분으로 실사용자와 충분한 논의를 통해 결정이 필요합니다.
•
도입 : 개발자가 손쉽게 사용할 수 있도록 가이드 문서 제공이 필요합니다.
•
문제해결 : 도입된 플랫폼에 안정성과 관찰성을 제공해야 합니다.
무신사는 반복 업무로 인한 피로도 증가, 복잡성에 따른 효율성 저하, 구축 대기 시간 증가 등의 문제를 해결하기 위해 플랫폼 엔지니어링을 도입했습니다. 초기에는 내부 인력의 부담을 줄이기 위해 최소한의 항목으로 시작했습니다.
셀프 서비스 지향 아키텍처는 복잡한 것을 단순하게 만들어 개발자가 셀프 서비스가 가능하도록 했습니다. 서비스를 구축하는 과정 중 추상화할 수 있는 부분부터 순차적으로 진행했고 인프라 생성 영역을 추상화했습니다. 이를 통해 개발자는 최소 값만 입력하여 인프라를 구성할 수 있습니다.
소프트웨어 카탈로그화를 통해 다양한 이점이 있습니다. 도입되는 서비스가 많아질수록 업무에 필요한 정보를 찿는데 많은 시간을 투자하게 됩니다. 이렇게 정보를 카탈로그화하여 정보를 찿는 부분을 개선할 수 있었습니다. 또 각 서비스에 링크를 모아 관리하여 효율을 높혔으며 서비스 집중화로 인해 거버넌스 보장도 가능해졌습니다.
가드레일은 개발자가 거버넌스를 준수할 수 있도록 정책을 설정하는 것으로 AWS에 컨트롤 타워를 활용했습니다. 개발자 리소스 생성을 위한 별도의 샌드박스 계정을 생성하고 해당 계정에 정책(SCP)를 할당하여 개발자가 생성하는 리소스들에 보안 정책을 지킬 수 있도록 설정했습니다.
FinOps는 인프라 리소스 사용량과 비용을 개발자가 손쉽게 확인할 수 있도록 대시보드를 만들었습니다. 이를 통해 개발자가 서비스별 인프라 사용량과 비용을 확인하고 최적화하며 최종적으로 비용을 절감할 수 있도록 구성했습니다.
이렇게 구성한 플랫폼을 통해 인지 부하 감소, 정보 접근성 향상, 자율성과 거버넌스, 비용 최적화를 이룰 수 있었습니다. 구성에서 중요했던 점은 실현 가능한 작은 것 부터 진행하는 것이였습니다.
결론
해당 세션을 들으며 플랫폼 엔지니어링을 통해 추구하는 방향을 알 수 있었습니다. 또 무신사 사례를 보며 플랫폼 엔지니어링을 통해 실제 개발자들의 업무 환경을 개선할 수 있다는 것을 알 수 있었습니다. 플랫폼 엔지니어링이 개발자 외에 다른 분야 업무도 개선 할 수 있을 것으로 생각되어 플랫폼 엔지니어링과 같은 방식을 업무에 도입해보고 싶습니다.