보안 / 클라우드

멀티클라우드 정책 및 프로세스 이식성을 위한 OPA 활용

Tim Hinrichs | InfoWorld 2020.12.14
멀티클라우드 전략이 완전한 주류로 부상함에 따라 기업과 개발팀은 여러 클라우드 환경에 걸친 일관성있는 접근 방법을 찾아야 한다. 멀티클라우드 자체는 보편적이다. 클라우드를 사용하는 기업 중 거의 전부인 93%가 멀티클라우드 전략을 두고 있다. 즉, 아마존 웹 서비스, 구글 클라우드 플랫폼 또는 마이크로소프트 애저와 같은 퍼블릭 클라우드 서비스 업체를 두 곳 이상 사용한다. 또한 이들 기업 중 87%는 퍼블릭 클라우드와 온프레미스 클라우드 환경을 혼합한 하이브리드 클라우드 전략을 시행 중이다. 
 
ⓒ Getty Images Bank

기업이 애초에 클라우드로 전환하는 주된 이유는 성능과 가용성, 확장성, 그리고 컴퓨팅, 스토리지, 네트워크, 데이터베이스 기능의 비용 효율성을 개선하는 데 있다. 그 이후 주로 업체 종속을 피하기 위한 이유로 멀티클라우드 전략을 도입한다. 

그러나 멀티클라우드는 최초의 클라우드 네이티브 논리에서 확장된 또 다른 매력적인 가능성을 제시한다. 바로 클라우드 컴퓨팅 아키텍처를 추상화해서 클라우드 서비스 업체 간에 자동으로, 단절 없이(또는 신속하게) 이식해 성능, 가용성, 비용 절감을 극대화하거나 서비스 업체 한 곳이 다운되더라도 업타임을 유지할 수 있는 역량이다. 쿠버네티스와 같이 AWS, GCP, 애저, 프라이빗 클라우드를 불문하고 어느 환경에서나 동일하게 실행되는 플랫폼을 보면 기업이 이와 같은 멀티클라우드 이식성을 달성하는 방법을 어느 정도 알 수 있다. 

그러나 명쾌한 이론과 달리, 실제 환경에서의 멀티클라우드 이식성은 복잡한 문제다. 서비스 업체별 기능, API, 이식하기 어려운 데이터 레이트와 같은 종속성으로 인해 진정한 애플리케이션 및 워크로드 이식성을 달성하려면 복잡한 과정이 필요하다. 실제로 멀티클라우드 이식성은 조직이 여러 클라우드 환경 간에 일관성을 달성해야만 제대로 구현된다. 이를 위해 기업에는 여러 솔루션과 클라우드, API에 걸쳐 작동하면서 클라우드 네이티브 비즈니스 간에 기술과 사람, 프로세스를 손쉽게 이식할 수 있게 해주는 수준의 정책 추상화가 필요하다. 개별 애플리케이션은 클라우드 간에 매끄럽게 이식되지 않을 수도 있지만 조직의 전체적인 접근 방법은 이식되어야 한다. 
 

멀티클라우드에 일관적인 정책 및 프로세스 생성 

도메인을 가리지 않는다는 이유로 인기를 얻게 된 툴 중 하나는 OPA(Open Policy Agent)다. 스타이라(Styra)가 개발해서 클라우드 네이티브 컴퓨팅 재단(Cloud Native Computing Foundation)에 기증한 OPA는 개발팀이 클라우드 네이티브 영역 전반에서 일관된 컨텍스트 인식 정책 및 인증을 구축, 확장, 적용할 수 있게 해주는 오픈소스 정책 엔진이다. OPA를 사용하면 개발팀은 클라우드 인프라, 쿠버네티스, 마이크로서비스 API, 데이터베이스, 서비스 메시, 애플리케이션 인증 등 수에 관계없이 어느 환경, 어느 적용 지점에서나 정책을 작성하고 적용할 수 있고, 따라서 조직은 멀티클라우드 및 하이브리드 클라우드 환경 전반의 정책 적용 측면에서 이식 가능한 접근 방법을 취할 수 있다. 

또한 코드형 정책(policy-as-code) 툴인 OPA를 통해 조직은 기업 위키와 사람들의 머리속에 있는 정책을 기계 처리가 가능한 정책 라이브러리에 코드화해서 넣을 수 있다. 코드형 정책은 조직에서 수에 관계없이 클라우드에 자동으로 정책을 적용할 수 있게 해줄 뿐만 아니라, 보안, 운영 및 규정 준수 위험을 더 조기에 포착하고 방지하기 위해 정책을 개발 단계에 통합(shift left)해 여러 클라우드에 걸쳐 작업하는 개발팀에 더 가까운 지점에 주입할 수 있게 해준다. 
 

OPA와 테라폼/쿠버네티스의 조합 

한 가지 예로, 많은 개발자가 현재 OPA를 테라폼(Terraform) 및 AWS-CDK와 같은 코드형 인프라(Infrastructure as Code) 툴과 함께 사용한다. 개발자들은 서비스 업체가 호스팅하는 인프라에 선언적 변경을 수행하기 위해 IaC 툴을 사용해 원하는 인프라 구성 상태를 기술해서 어떤 변경이 필요한지를 테라폼이 파악하도록 한다. 그런 다음 개발자는 코드형 정책 툴인 OPA를 사용해 테라폼이 제안한 변경을 검증하는 정책을 작성하고, 프로덕션에 적용하기 전에 잘못된 구성이나 기타 문제점을 테스트한다. 

이와 동시에 OPA는 일상적인 인프라 변경을 자동으로 승인해서 수작업으로 이뤄지는 피어 리뷰의 필요성과 이에 수반되는 사람의 실수 가능성을 줄인다. 이는 개발자에게 온전성 검사(sanity check)를 위한 중요한 안전망을 제공해서 개발자가 위험 없이 다양한 구성을 실험할 수 있게 해준다. 클라우드 인프라 자체는 서비스 업체 간의 이식이 불가능하지만 접근 방법은 기본적으로 이식이 가능하다. 

비슷한 맥락에서, 개발자는 OPA를 사용해 여러 클라우드, 나아가 다양한 쿠버네티스 배포판 간에도 쿠버네티스를 제어, 보호, 운영화할 수 있다. 쿠버네티스는 컨테이너화된 애플리케이션 모음을 배포, 확장, 관리하기 위한 표준으로 자리잡았다. 쿠버네티스가 이식 가능한 것과 마찬가지로, 그 위에서 실행하는 OPA 정책 역시 이식할 수 있다. 

OPA의 쿠버네티스 사용 사례는 많다. 인기 있는 예는 OPA를 쿠버네티스 승인 컨트롤러(admission controller)로 사용해서 컨테이너가 적절한 구성과 권한으로 올바르게 배포되도록 하는 것이다. 또한 개발자는 OPA를 사용해서 쿠버네티스 인그레스 및 이그레스 의사 결정을 제어할 수도 있다. 예를 들어 충돌하는 호스트 이름을 가진 인그레스를 금지해서 애플리케이션이 다른 인터넷 트래픽을 훔칠 수 없도록 하는 정책을 쓸 수 있다. 멀티클라우드에서는 여러 클라우드에 걸쳐 각 쿠버네티스 배포판이 전사적인 보안 정책을 입증 가능하도록 준수하는지 확인할 수 있는 역량이 무엇보다 중요하다. 
 

표준 클라우드 네이티브 빌딩 블록 생성 

여러 퍼블릭 클라우드 간에 매끄럽게 애플리케이션을 이식하기 위해서 기업은 먼저 모든 클라우드 네이티브 환경에 대해 개발자를 위한 표준 빌딩 블록을 만들어야 한다. 이 과정에서 개발자는 OPA를 사용해서 정책을 만들 뿐만 아니라 CI/CD 파이프라인 전반에서 보안, 규정 준수 및 운영 표준의 적용을 자동화해야 한다. 이는 모든 멀티클라우드 환경을 위한 반복 가능한 규모(repeatable scale)를 실현하는 동시에 개발 속도를 높이고 수작업으로 인한 오류를 줄여준다. 

OPA를 통해 코드형 정책을 구현할 수 있다는 것은 기업이 퍼블릭 클라우드에 테라폼과 같은 툴을 사용하고 컨테이너 관리에 쿠버네티스를 사용하면서 정책에 OPA를 사용할 수 있음을 의미한다. 그 외에 다양한 마이크로서비스 API와 앱 인증 툴을 사용하면서 정책에 OPA를 사용하는 동시에 CI/CD 파이프라인 또는 개발자 컴퓨터에서 이 OPA 정책을 실행할 수 있다. 

간단히 말해 조직은 멀티클라우드 이식성을 위해 애플리케이션을 리버스 엔지니어링하는 데 시간을 낭비할 필요 없이 전체 클라우드 네이티브 스택에 걸쳐 반복 가능한 프로세스를 구축하고 공통된 기술력을 사용하는 데 초점을 맞출 수 있다. edtior@itworld.co.kr

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.