컨테이너에서 앱을 확장할 때 F5 BIG-IP를 사용하여 계층 제거하기

F5 에코시스템 | 2018년 8월 02일

아니면 좌절감에 흘리는 ‘눈물’일까요? ¯\_(ツ)_/¯ 어쩌면 둘 다일지도 모르죠.

네트워크 아키텍처와 애플리케이션 아키텍처는 서로 연관되어 있습니다. 일반적으로 우리는 애플리케이션 아키텍처의 변화와 전환이 솔루션과 아키텍처 측면에서 네트워크에 어떤 영향을 미치는지 이야기하곤 합니다. 하지만 그 반대도 마찬가지입니다. 네트워크의 아키텍처와 동작 방식 역시 애플리케이션과 그 아키텍처에 상당히 큰 영향을 미칠 수 있습니다.

구체적으로 말하자면, 모놀리식 애플리케이션이 수많은 마이크로서비스로 분해되는 현상이 SOA 시대가 아니라 지금 나타나는 이유 중 하나는 네트워크에 있습니다. 더 정확히 말하면 네트워크 속도 때문입니다. SOA 시대에는 네트워크의 특성(그리고 물리 법칙)으로 인한 제약 때문에 서너 개가 넘는 서비스의 결과를 조합해 하나의 응답을 만드는 것이 불가능했습니다. 엄밀히 말해 불가능한 것은 아니었지만, 호출할 때마다 발생하는 지연 시간 때문에 바람직하지 않았습니다.

오늘날에는 더 빠르고 대역폭이 넓은 네트워크와 한 자릿수 이상 빨라진 컴퓨팅 성능 덕분에 이러한 분해가 가능해졌습니다. 이를 더욱 수월하게 만드는 것은 도넛에 커피가 따라오듯 마이크로서비스와 흔히 함께 사용되는 컨테이너의 특성입니다. 서로 통신해야 하는 두 서비스 사이의 ‘네트워크’는 가상으로 구성되는 경우가 많기 때문에(패킷이 실제로 호스트 서버를 벗어나지 않아 ‘네트워크 회선에 실리는’ 과정에서 발생하는 지연을 겪지 않음), 단일 요청에 응답하기 위해 호출할 수 있는 서비스의 수는 SOA 시대에 현실적으로 가능했던 수준보다 훨씬 많습니다.

하지만 그렇다고 해서 요청에 응답하기 위해 거쳐야 하는 연결과 홉의 수나 아키텍처가 애플리케이션 성능에 미치는 영향을 간과해도 된다는 뜻은 아닙니다. 컴퓨팅 성능이 향상되고 네트워크 대역폭이 넓어졌더라도 운영 오버헤드는 여전히 해결해야 할 문제이며, 성능을 저해하는 요인이기 때문입니다. 운영 오버헤드를 줄이고 성능을 개선하는 가장 쉬운 방법 중 하나는 아키텍처에서 불필요한 계층을 제거하여 복잡성을 낮추는 것입니다.

컨테이너 환경의 복잡성 줄이기

대부분의 컨테이너 배포 환경에서는 컨테이너 환경 내 마이크로서비스/앱의 규모를 관리하기 위해 클러스터 내부에 특정 유형의 로드 밸런서를 사용합니다. 이는 대개 API의 L7 라우팅(즉, 인그레스 제어)을 담당해야 하는 반면, 기본 로드 밸런싱 구조는 L7 라우팅 언어인 HTTP를 지원하지 않는 iptables를 기반으로 하기 때문입니다. 따라서 컨테이너 클러스터 내부에는 여러 L7 로드 밸런서가 존재합니다.

이제 대부분의 배포 환경에서는 외부 트래픽을 클러스터 외부에서 클러스터 내부의 적절한 로드 밸런서로 전달하기 위한 로드 밸런싱도 필요합니다. 이를 위해 일반적인 로드 밸런싱을 사용하여 요청을 내부의 적절한 로드 밸런서로 분산합니다.

외부의 로드 밸런서는 BIG-IP 클러스터 내부의 로드 밸런서는 내부 lb라고 부르겠습니다. 제 블로그니까요.

문제는 내부 로드 밸런서 인스턴스 수가 변동한다는 것입니다(때로는 급격하게 변동합니다). 변경이 발생할 때마다 BIG-IP가 이를 알아야 합니다. 기존에는 BIG-IP 관리자가 직접 풀을 수정해야 하는 수동 작업이었습니다. 이는 개발자와 DevOps에게는 답답한 일이고, NetOps에게는 번거로운 일입니다. 다시 말해, 아무도 이런 방식으로 작업하고 싶어 하지 않습니다.

이러한 이유로 F5 Container Connector와 같은 솔루션이 존재합니다. F5 Container Connector는 컨테이너 오케스트레이터와 통합되어 환경을 모니터링하는 컨테이너 네이티브 서비스입니다. 내부 로드 밸런서에 영향을 미치는 변경 사항이 발생하면 BIG-IP를 업데이트하는 프로세스가 시작됩니다. 따라서 수요가 증감하더라도 BIG-IP는 자동으로 최신 상태를 유지하며, 활성 상태이고 정상적으로 작동하는 내부 로드 밸런서에 요청을 적절히 분산할 수 있습니다. 수동으로 수정할 필요가 없습니다.

이 2계층 확장 아키텍처는 SSL/TLS를 종료할 수 있는 편리한 인바운드 지점(BIG-IP)을 제공하여 측정 가능한 성능 향상을 실현한다는 장점이 있습니다. 훌륭하죠.

하지만 여기서 멈출 이유가 있을까요? BIG-IP은 L7 라우팅을 제공할 수 있습니다. F5 Container Connector 서비스를 사용하면 내부 로드 밸런서를 완전히 제거하여 성능을 더욱 향상하고 운영 오버헤드를 줄일 수 있습니다. 정말입니다. BIG-IP은 Kubernetes 및 Red Hat OpenShift의 인그레스 컨트롤러 역할을 할 수 있습니다.

인그레스 역할을 BIG-IP로 이전하면 전체 확장 계층 중 하나인 내부 로드 밸런서가 제거되어 성능이 즉시 향상됩니다. 또한 외부 로드 밸런서가 is an F5 BIG-IP이므로, 컨테이너 클러스터 내부가 아닌 접점에 봇 방어 기능을 갖춘 고급 WAF와 같은 보안 중심의 애플리케이션 서비스를 추가로 배포할 수 있습니다(또는 아예 배포하지 않을 수도 있습니다).

운영 팀 간의 충돌

컨테이너가 프로덕션 환경에 더 자주 배포됨에 따라(실제로 그렇게 될 것입니다), 이러한 개선 사항을 구현하고 애플리케이션의 확장성, 속도 및 보안을 보장하려면 DevOps와 NetOps 간의 협력이 더욱 강화되어야 합니다. 결국 단순히 버튼을 누르고 셀프서비스 파이프라인을 이용하는 것만으로는 충분하지 않습니다. 아키텍처는 DevOps와 NetOps 양측의 의견을 반영해 설계해야 하는 핵심 요소입니다. 그렇지 않으면 애플리케이션 성능 등을 개선할 기회를 놓칠 수 있습니다.

애플리케이션 성능은 팀 전체가 함께 만들어 내는 결과이기 때문입니다. 애플리케이션 성능은 코드(AppDev), 코드가 배포되는 플랫폼(DevOps), 네트워크 아키텍처, 그리고 애플리케이션의 보안과 확장성을 지원하는 애플리케이션 서비스(NetOps)의 영향을 받습니다. 가능한 경우 계층을 제거해 아키텍처를 최적화하는 것은 운영 및 비즈니스 측면에서 합리적인 선택입니다. 하지만 이를 위해서는 팀의 모든 구성원이 참여해야 합니다.

그러니 피자와 맥주를 주문하고 DevOps와 NetOps 담당자들을 한자리에 모아 대화를 시작하세요. 여러분도 컨테이너 환경에서 불필요한 계층을 제거해 애플리케이션 성능을 개선할 수 있는지 알아보세요.

공유
태그: 2018

작성자 소개

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 파이프라인 초기에 보안을 통합하여 취약점을 예방하고 시간을 절약하는 방법을 알아보세요.