인프라 아키텍처: 제4의 플레인을 만드는 컨테이너

F5 에코시스템 | 2019년 7월 22일

기존 네트워크 인프라는 일반적으로 데이터, 제어, 관리라는 세 가지 아키텍처 평면으로 구성됩니다.

이들에 대한 정확한 정의는 인프라의 유형과 구체적인 구현 방식에 따라 달라질 수 있지만, 이러한 전형적인 구분은 대부분의 네트워크 인프라에 대체로 적용됩니다.

  • 데이터 플레인
    • 현대 용어로는 데이터 경로라고도 하는 데이터 플레인은 패킷(데이터)이 전달되는 경로입니다. 데이터 플레인은 패킷을 수신하여 올바른 목적지로 전달하는 역할을 합니다.
  • 제어 평면
    • 일반적으로 제어 평면은 데이터가 전달될 위치를 결정합니다. 라우팅 프로토콜은 제어 평면 기능의 대표적인 예이며, 오늘날 더욱 동적으로 이루어질 수 있는 상위 수준의 의사 결정도 이에 해당합니다. 구체적인 구현 방식은 다양하며, 데이터 평면이 의사 결정을 위해 제어 평면에 데이터를 전달하는 방식부터 제어 평면이 데이터를 투명하게 관찰하고 특정 트리거에 따라 동작하는 방식까지 폭넓게 적용될 수 있습니다. 또한 제어 평면은 장치의 상태를 모니터링하고 통계를 수집하는 역할을 담당하는 경우가 많습니다.
  • 관리 평면
    • 관리 플레인은 제어 플레인과 상호 작용하는 영역이므로 세 가지 플레인 중 가장 눈에 잘 띕니다. 기존 관리 플레인은 CLI(명령줄 인터페이스)를 사용하는 반면, 최신 관리 플레인은 API(애플리케이션 프로그래밍 인터페이스)를 선호합니다. 어떤 방식을 사용하든 관리 플레인을 통해 운영자는 제어 플레인에서 적용할 정책을 설정할 수 있습니다. 여기에는 부하 분산 알고리즘과 IP 주소 및 디바이스 유형과 같은 특성을 기반으로 하는 허용/거부 정책 등의 구성 옵션이 포함됩니다.

기존 플레인 아키텍처

하지만 내부적으로 작동하며 운영자에게는 거의 보이지 않는 또 다른 종류의 오케스트레이션이 있습니다. 이는 인간 운영자가 맡던 일부 책임을 대신한다는 점을 제외하면 관리와는 아무런 관련이 없습니다.

여기서 중요한 차이점은 이러한 작업이 배포 이벤트로 인해 실행되는 것이 아니라, 실행 중 환경의 변화에 따라 자동으로 트리거된다는 것입니다. 하지만 무엇이 변경되었는지에 대한 정보는 매우 중요하므로, 반드시 어딘가에서 가져와야 합니다.

기존 운영 모델에서는 이러한 정보를 일반적으로 변경 티켓이나 요청에서 얻습니다. 현대적인 운영 모델, 특히 컨테이너 환경에서는 검색 메커니즘을 통해 서비스 레지스트리에서 이 정보를 얻습니다.

서비스 레지스트리 및 검색

컨테이너 환경에서는 IP 주소가 애플리케이션 환경에 사실상 중요하지 않다고 가정합니다. 하지만 클라이언트와 애플리케이션 사이의 경로를 따라 데이터를 전달하려면 여전히 장치 간에 데이터를 라우팅하고 포워딩해야 하므로, 인프라에는 IP 주소가 중요합니다. 현대적인 환경에서 이러한 IP 주소는 대개 짧은 기간(컨테이너/서비스의 수명) 동안만 존재합니다.

다음의 조사 결과를 살펴보세요. 출처: DataDog(강조는 인용자):

오케스트레이터의 빠른 도입(사실 4 참조)으로 인해 컨테이너의 수명이 더욱 짧아지는 것으로 보입니다. 컨테이너가 자동으로 시작되고 중지되면서 교체 주기가 빨라지기 때문입니다. 오케스트레이터를 사용하는 조직에서 컨테이너의 일반적인 수명은 약 12시간입니다. 오케스트레이션을 사용하지 않는 조직에서는 컨테이너의 평균 수명이 6일입니다.

출처: <https://www.datadoghq.com/docker-adoption>

운영자인 여러분이 6일마다 라우팅 테이블이나 로드 밸런싱 풀을 업데이트해야 한다고 상상해 보십시오. 하물며 12시간마다 해야 한다면 어떻겠습니까? 다른 일은 거의 할 수 없을 것입니다. 컨테이너 클러스터의 변경 사항을 관리하기 위해 수동 모드로 운영해야 하는 기간이 길어질수록 잘못 구성할 가능성도 상당히 커질 것입니다.

A service registry - like Consul과 같은 서비스 레지스트리는 컨테이너 배포의 핵심 구성 요소가 됩니다. 서비스 레지스트리는 인스턴스와 서비스 및 이와 연결된 IP 주소를 추적합니다. 이런 점에서 서비스 레지스트리는 "컨테이너와 서비스를 위한 DNS"에 비유할 수 있습니다.

따라서 서비스 레지스트리는 클러스터 내 컨테이너의 현재 특성을 추적합니다. 디스커버리는 서비스 레지스트리에 연결하여(API를 사용하거나 메시지 큐를 구독하는 방식으로) 일치하는 인스턴스를 IP 주소에 매핑하는 프로세스입니다.

즉, 컨테이너 클러스터 내부의 특정 서비스나 인스턴스로 트래픽을 라우팅해야 하는 인프라는 IP 주소를 조회할 수 있어야 합니다. 컨테이너가 애플리케이션에서 네트워크를 보이지 않게 추상화하더라도, 데이터를 한 곳에서 다른 곳으로 전송하려면 여전히 네트워크에 의존하기 때문입니다.

네 번째 플레인: 오케스트레이션

이를 통해 컨테이너 오케스트레이션 환경과 상호 작용하는 새로운 아키텍처 계층이 인프라에 도입됩니다. 이 계층, 즉 오케스트레이션 계층은 컨테이너 환경과 통합되며 서비스 검색과 같은 기능을 활용해 서비스와 인스턴스를 자동으로 검색합니다. 따라서 로드 밸런서는 풀의 구성원을 자동으로 검색하고 환경 변화에 따라 풀을 지속적으로 업데이트할 수 있습니다. 컨테이너의 평균 수명이 일주일도 되지 않는 상황에서 갈수록 번거로워지는 로드 밸런싱 풀 수동 업데이트 작업을 줄여 운영 부담을 완화할 수 있습니다.

최신 인프라 아키텍처

이 플레인은 운영자와 상호 작용하기 위한 것이 아닙니다. 구성, 모니터링 및 운영은 여전히 관리 플레인을 통해 수행됩니다. 서비스 레지스트리의 위치는 관리 플레인에서 구성되지만, 오케스트레이션 플레인이 제어 플레인에 연결하고 변경 사항을 전달하는 데 사용합니다.

다음과 같이 오케스트레이션 플레인을 정의할 수 있습니다.

  • 오케스트레이션 플레인은 인프라 아키텍처에서 외부에 가장 잘 드러나지 않는 플레인 중 하나입니다. 오케스트레이션 플레인과의 상호 작용은 관리 플레인을 통해 이루어지며, 관리 플레인은 주로 오케스트레이션 플레인이 적절한 서비스 레지스트리를 참조하도록 지정하는 역할을 합니다. 오케스트레이션 플레인은 컨테이너화된 리소스가 올바르게 전달되고 가용성을 유지할 수 있도록 컨트롤 플레인의 동적 구성 요소를 업데이트합니다.

이 플레인을 제어 플레인 및 데이터 플레인과 함께 장치에 통합해야 하는지, 아니면 단순히 관리 플레인 위에 덧씌워진 계층에 불과한지에 대해서는 여전히 의문이 남아 있습니다(후자의 경우 다이어그램이 약간 달라지겠지만, 플레인과 구성 요소 간의 상호 작용에는 별다른 영향을 미치지 않습니다). 이미 많은 기존 장치가 컨테이너 환경과 통합되고 관리 플레인을 통해 변경 사항을 적용하는 확장 기능을 제공함으로써 새롭게 부상하는 이 플레인을 지원하고 있습니다. 이는 기존 아키텍처를 리팩터링하여 최신 환경으로 기능을 확장한 좋은 사례입니다. 하지만 궁극적으로는 이상적인 해결책이 아닐 수도 있습니다.

왜 이것이 중요한가?

처음에는 인프라에 네 번째 플레인을 도입하는 것이 별로 중요하지 않아 보일 수 있습니다. 결국 그 역할은 운영자가 지루한 작업에 대해 져야 하는 책임을 일부 덜어 주는 것입니다. 나쁠 리가 없죠.

나쁜 것은 아니지만, 정적 구성에서 동적 구성으로의 이러한 전환이 컨트롤 플레인의 가장 중요한 일부 기능에 영향을 미친다는 점을 이해해야 합니다. 서비스 디스커버리의 중요성이 매우 커지므로 가용성과 보안을 반드시 보장해야 합니다. 사실상 서비스 디스커버리는 전체 애플리케이션 인프라가 의존하는 단일 장애 지점이 됩니다.

서비스 레지스트리는 대부분의 현대적 애플리케이션이 기반으로 삼는 것과 동일한 전제, 즉 장애에 대응할 수 있도록 설계된다는 전제하에 구축됩니다. 방금 검색한 IP 주소가 해당 인스턴스로 트래픽을 전달하기도 전에 사라지는 상황이 발생할 수 있습니다. 대부분의 인프라는 이때 재전송할 수 있지만, 그 과정에는 시간이 걸립니다. 디지털 경제에서는 마이크로초도 중요하므로, 검색에 의존하는 현대적 아키텍처에서는 시간 초과나 검색 간격과 같은 기존 옵션도 큰 차이를 만듭니다. 또한 상태와 가용성을 최대한 신속하게 파악하는 능력이 사용자의 만족과 이탈을 가를 수 있으므로 모니터링은 훨씬 더 중요해집니다. 이 두 가지는 모두 현대 조직의 모든 구성원이 인식하고 각자의 지표와 기대치에 반영해야 하는 비즈니스 차원의 사안입니다.

인프라에서 오케스트레이션 플레인을 구현하는 방식과 어떤 서비스 레지스트리를 선택하는지는 사용할 기술을 결정하는 과정에서 중요한 요소가 됩니다. 이러한 선택은 컨테이너 기반 아키텍처를 통해 제공되는 애플리케이션의 가용성과 성능 모두에 영향을 미치므로 신중하게 고려해야 합니다.

공유
태그: 2019

작성자 소개

Lori Mac Vittie
Lori Mac Vittie수석 엔지니어 겸 최고 에반젤리스트 | F5

Lori MacVittie는 F5 CTO 오피스의 수석 엔지니어이자 최고 에반젤리스트로, 애플리케이션 딜리버리, 자동화 전략 및 인프라 분야에서 깊이 있는 전문성을 보유하고 있습니다. AI 에이전트를 위한 가드레일을 정의하고, 취약한 멀티클라우드 아키텍처를 분석하며, 확장 가능한 시스템의 한계를 탐구하는 등 복잡한 문제를 명확하게 풀어내는 것으로 잘 알려져 있습니다. 애플리케이션 개발, IT 아키텍처, 네트워크 및 시스템 운영 전반에 걸쳐 30년 이상의 업계 경험을 쌓았습니다. F5에 합류하기 전에는 수상 경력이 있는 기술 편집자로 활동했습니다. MacVittie는 컴퓨터 과학 석사 학위를 보유하고 있으며, 보안, 클라우드 및 엔터프라이즈 아키텍처 분야를 아우르는 다수의 저서를 집필한 작가입니다. 또한 보드게임과 비디오 게임을 열정적으로 즐기며, 치즈에 대해서는 거리낌 없이 확고한 견해를 갖고 있습니다.

Lori Mac Vittie의 다른 블로그 게시물

관련 블로그 게시물

성평등을 향한 여정: 사이버 보안 분야에서 성공적인 커리어를 개척하는 방법에 관한 Jenn Gile과의 Q&A
F5 에코시스템 | 2023. 07. 13.

성평등을 향한 여정: 사이버 보안 분야에서 성공적인 커리어를 개척하는 방법에 관한 Jenn Gile과의 Q&A

F5의 ‘성평등을 향한 여정’ 시리즈 네 번째 Q&A에서는 Rachael Shah와 NGINX 제품 마케팅 책임자 Jenn Gile이 사이버 보안 직종에 대한 오해를 바로잡고, 사이버 보안 분야의 성별 격차를 해소하기 위한 조언과 그 이점에 대해 이야기합니다.

TLS 검사에서 피터 파커 원칙 다루기
F5 에코시스템 | 2019. 12. 09.

TLS 검사에서 피터 파커 원칙 다루기

“큰 힘에는 큰 책임이 따른다.” 볼테르와 처칠도 이와 비슷한 말을 남겼지만, 이 문구는 스파이더맨 코믹스에서 벤 삼촌의 말로 가장 널리 알려져 있습니다. 물론 이 문구가 문화적으로 널리 통용되는 이유 중 하나는 TLS 검사를 비롯해 수많은 상황과 주제에 적용할 수 있기 때문입니다.

Venafi와 F5를 통한 머신 아이덴티티 보호
F5 에코시스템 | 2018. 12. 11.

Venafi와 F5를 통한 머신 아이덴티티 보호

‘머신 아이덴티티’란 간단히 말해 자동화된 프로세스가 자신의 신원을 식별할 수 있도록 하고, 다른 자동화 시스템과 프로세스가 관련 리소스에 적절한 수준의 접근 권한을 부여하도록 하는 방법을 의미합니다. 이 개념 자체는 새로운 것이 아닙니다. 비교적 새로운 점은 이를 구현해야 하는 규모입니다.

마이너와 미니언: 데이터 유출만이 비용을 초래하는 것은 아닙니다
F5 에코시스템 | 2018. 07. 23.

마이너와 미니언: 데이터 유출만이 비용을 초래하는 것은 아닙니다

물론 데이터 유출은 더 큰 비용을 초래할 수 있고(적어도 지금은), 실패 사실을 세상에 드러낼 수밖에 없게 합니다(통지 의무가 있으니까요). 하지만 보안을 단순히 데이터 노출 문제로만 봐서는 안 됩니다. 요즘은 데이터가...

내 클라우드에서 나가!
F5 에코시스템 | 2016. 10. 12.

내 클라우드에서 나가!

F5의 Jay Kelley가 전하는 최신 소식에는 Microsoft Office 365용 신규 ID 및 액세스 솔루션을 배포할 때 고려해야 할 사항이 정리되어 있습니다.

Shift(웹 앱) 보안 레터
F5 에코시스템 | 2015. 07. 06.

Shift(웹 앱) 보안 레터

웹 앱 보안을 개발 초기 단계로 앞당기세요. F5 블로그에서 DevOps 파이프라인 초기에 보안을 통합하여 취약점을 예방하고 시간을 절약하는 방법을 알아보세요.