OpenStack에 F5 애플리케이션 딜리버리 서비스를 추가하는 방법

소개

서비스형 인프라(IaaS)를 제공하는 주요 클라우드 플랫폼으로 빠르게 자리 잡고 있는 OpenStack은 현재 프라이빗 클라우드, 퍼블릭 클라우드 및 관리형 프라이빗 클라우드를 지원하고 있습니다. OpenStack 클라우드에서 미션 크리티컬 프로덕션 애플리케이션을 호스팅하는 사례가 늘어남에 따라, 계층 4~7을 위한 고급 애플리케이션 전송 서비스가 필수 요소로 부상하고 있습니다. 이러한 서비스는 보안, 확장성 및 최적화 기능을 강화하여 미션 크리티컬 애플리케이션이 안전하고 빠르며 가용성이 높은 상태를 유지하도록 합니다. F5는 OpenStack 기반 클라우드를 비롯해 데이터 센터, 퍼블릭 클라우드 및 프라이빗 클라우드 전반에서 고급 애플리케이션 전송 서비스를 제공하는 선도적인 공급업체입니다. F5 애플리케이션 전송 서비스는 OpenStack 클라우드에 통합되도록 설계할 수 있으며, 사용 가능한 옵션을 사전에 검토하면 OpenStack 아키텍처와 배포를 효율적으로 계획하는 데 도움이 됩니다.

OpenStack이란 무엇인가요?

OpenStack은 클라우드 컴퓨팅을 제공하는 데 사용되는 오픈 소스 소프트웨어 플랫폼입니다. NASA와 RackSpace Hosting의 공동 프로젝트로 시작된 OpenStack은 현재 소프트웨어와 OpenStack 커뮤니티를 활성화한다는 사명 아래 OpenStack 재단에서 관리하고 있습니다.

현재 여러 상용 기업이 자체 OpenStack 배포판을 제작하거나 지원, 컨설팅 또는 사전 구성된 어플라이언스와 같은 부가 서비스를 제공하고 있습니다.

OpenStack은 클라우드 컴퓨팅 환경을 구축하는 데 필요한 다양한 서비스를 제공하는 여러 구성 요소로 이루어져 있습니다. 이러한 구성 요소에 대해서는 다른 자료에 충분히 설명되어 있습니다. 하지만 F5 OpenStack 배포와 직접 관련된 모듈도 여러 개 있습니다.

OpenStack의 기반을 이루는 핵심 요소는 RESTful API이며, 이를 통해 인프라 구성 요소를 설정하고 자동화할 수 있습니다. 멀티테넌트 셀프서비스 클라우드를 구축하거나 DevOps 방식을 지원하는 인프라를 조성하는 등 다양한 OpenStack 사용 사례에서는 API 기반 오케스트레이션이 필수적입니다. 배포 시간을 몇 주에서 몇 분으로 단축하거나 하루에 수백 개의 서비스를 배포할 수 있다는 점은 클라우드 플랫폼으로 전환하는 주요 동기가 되곤 합니다. 이를 효과적으로 구현하려면 인프라의 모든 구성 요소가 자동화 프레임워크에 포함되어야 합니다. 많은 애플리케이션이 실제 운영 환경에 적합한 수준을 갖추려면 애플리케이션 보안이나 액세스 제어와 같은 고급 애플리케이션 딜리버리 서비스가 필요하므로, 애플리케이션 딜리버리 서비스를 OpenStack 오케스트레이션 및 프로비저닝 도구와 통합하는 것이 매우 중요합니다.

프로젝트, 테넌트 및 네트워크

멀티테넌시는 OpenStack의 중요한 개념입니다. OpenStack에서는 사용자 그룹을 프로젝트 또는 테넌트라고 합니다. (두 용어는 같은 의미로 사용됩니다.) 프로젝트에는 컴퓨팅, 스토리지 또는 이미지와 같은 리소스에 대한 할당량을 지정할 수 있습니다. 멀티테넌시 아키텍처를 설계할 때 가장 중요한 결정 사항 중 하나는 테넌트용 네트워크를 설계하는 방식입니다. F5® BIG-IP® 플랫폼은 OpenStack 멀티테넌시와의 상호 운용성을 지원하기 위해 다양한 멀티테넌시 및 네트워크 분리 옵션을 제공합니다.

프로바이더 네트워킹

프로바이더 네트워크는 일반적으로 플랫(태그 없음) 네트워크를 사용하거나, 더 흔하게는 VLAN(802.1Q 태그 지정) 네트워크를 사용합니다. 이는 기존 데이터 센터 네트워킹과 매우 유사합니다. OpenStack 네트워크는 관리자가 정의하고 생성하며 테넌트 간에 공유됩니다.

경우에 따라 테넌트의 컴퓨팅 인스턴스에는 공급자 네트워크에 직접 연결되는 인터페이스가 있을 수 있습니다. 테넌트는 자체 네트워크를 정의하지 않고, 공급자 관리자가 정의한 IP 주소 범위를 사용하여 구성된 공급자 네트워크에 연결하기만 합니다. 그 밖의 경우에는 테넌트가 공급자 네트워크 내에 가상 네트워크 구성을 생성합니다.

테넌트 네트워킹

관리자는 테넌트가 고유한 네트워크 아키텍처를 만들 수 있도록 설정할 수 있습니다. 이러한 아키텍처는 대개 컴퓨팅 노드의 Open vSwitch 인스턴스를 사용하는 OpenStack Neutron을 통해 제어되지만, 다른 소프트웨어 정의 네트워킹(SDN) 솔루션을 사용할 수도 있습니다. VLAN 또는 GRE나 VXLAN 기술을 사용하는 투명 이더넷 터널을 통해 테넌트 컴퓨팅 인스턴스 간에 통신하고 다른 테넌트로부터 격리할 수 있습니다. 2016년 초 기준으로 GRE 터널링이 가장 일반적인 배포 방식이었습니다. 테넌트는 자체 네트워크와 IP 주소 범위를 만들 수 있으며, 이러한 범위는 테넌트 간에 서로 겹칠 수도 있습니다. 각 테넌트에는 해당 네트워크 외부와 통신할 수 있도록 OpenStack 라우터가 있을 수 있습니다. 이를 위해 테넌트에 하나 이상의 유동 IP 주소를 할당하며, 테넌트 라우터는 이를 구성된 테넌트 사설 IP 주소로 변환합니다. (OpenStack Neutron의 유동 IP 주소와 BIG-IP의 유동 IP 주소는 서로 다른 개념입니다. BIG-IP 플랫폼에서 테넌트 격리를 관리하는 방법은 뒤에서 설명합니다.)

F5 애플리케이션 딜리버리 서비스

F5 제품은 확장성, 가용성 및 다계층 보안을 제공하도록 설계된 다양한 고급 애플리케이션 딜리버리 서비스를 제공합니다. 주요 예시는 다음과 같으며, 이에 국한되지는 않습니다.

BIG-IP 플랫폼

The BIG-IP 플랫폼은 물리적, 가상 및 클라우드 에디션으로 제공됩니다. 이 플랫폼은 BIG-IP 소프트웨어 모듈을 통해 애플리케이션 서비스를 제공합니다. BIG-IP 플랫폼에서는 애플리케이션의 요구 사항에 맞게 하나 이상의 소프트웨어 모듈을 실행할 수 있으며, 플랫폼을 독립 실행형 장치 또는 고가용성 클러스터로 배포할 수 있습니다.

BIG-IP 플랫폼은 매우 높은 성능을 제공하는 상태 저장형 양방향 제로 카피 프록시입니다. 이 기본 아키텍처 원칙을 이해하면 BIG-IP 플랫폼이 서비스를 제공하는 방식을 파악하고 아키텍처 선택을 명확히 하는 데 도움이 됩니다.

그림 1: BIG-IP 플랫폼 아키텍처

클라이언트는 BIG-IP 디바이스 또는 인스턴스에 연결되고, 해당 디바이스나 인스턴스는 백엔드 서버에 연결됩니다(또는 DNS 서비스와 같은 일부 경우에는 애플리케이션 트래픽을 처리하고 클라이언트에 직접 응답합니다). 이로써 클라이언트와 서버 간에 TCP 세션이 완전히 재생성되는 TCP “에어 갭”이 형성됩니다. 이 논리적 간극 내에서 BIG-IP 플랫폼은 애플리케이션 전송 서비스를 제공합니다. 애플리케이션 트래픽이 플랫폼을 통과할 때 이를 검사, 변경 및 제어할 수 있으므로 BIG-IP 플랫폼은 인바운드 및 아웃바운드 애플리케이션 트래픽을 모두 완벽하게 제어할 수 있습니다.

BIG-IP 플랫폼은 네트워크 및 웹 애플리케이션 방화벽 모두에 대해 ICSA Labs 인증도 획득했으며, 이 인증 과정에서 트래픽 분리와 플랫폼 보안을 엄격하게 테스트하므로 플랫폼 보안에 대한 신뢰성을 한층 더 높여 줍니다.

통합 구성: F5와 OpenStack

OpenStack과 F5의 애플리케이션 전송 서비스 및 플랫폼을 결합하면 OpenStack에서 호스팅되는 애플리케이션에 프로덕션급 서비스를 제공할 수 있습니다. OpenStack 내에서 F5 애플리케이션 전송 서비스에 액세스하는 방법은 두 가지입니다. Neutron의 서비스형 부하 분산(LBaaS) 버전 2 서비스와 Heat 오케스트레이션입니다. (F5는 Neutron과 LBaaS 버전 1의 통합도 지원하지만, OpenStack 커뮤니티는 OpenStack Liberty 릴리스부터 버전 1 API를 더 이상 사용하지 않습니다.)

LBaaS

Neutron LBaaS는 컴퓨팅(따라서 애플리케이션) 인스턴스를 위한 기본적인 부하 분산 서비스를 제공합니다. 이러한 서비스는 다양한 부하 분산 플랫폼에서 공통으로 제공되는 핵심 기능의 일부로 제한됩니다.

LBaaS 서비스 제공 모델은 서비스를 제공하는 리소스를 서비스 자체와 분리하여 추상화합니다. 서비스를 제공하는 리소스는 OpenStack 테넌트 리소스 내부가 아니라 OpenStack 인프라의 일부로 존재합니다. 이 모델을 "클라우드 아래(under the cloud)"라고도 합니다.

그림 2: 클라우드 하부 LBaaS 배포

OpenStack LBaaS는 부하 분산 구성을 생성하기 위해 여러 논리적 객체를 사용합니다.

객체 모델은 그림 3에 나와 있습니다.

그림 3: OpenStack LBaaS 객체 모델

모든 OpenStack 작업과 마찬가지로 LBaaS는 RESTful API를 통해 관리됩니다. 테넌트는 이 API에 REST 호출을 보내 LBaaS 객체를 생성, 업데이트 및 삭제할 수 있으며, 테넌트의 API 호출부터 BIG-IP 인스턴스에 구성 변경 사항이 적용되기까지 여러 단계를 거칩니다.

그림 4: OpenStack LBaaS 아키텍처

LBaaS 객체와 이를 BIG-IP 인스턴스의 구성으로 생성하거나 업데이트하는 API 호출 간의 매핑은 F5 OpenStack LBaaS 드라이버에서 처리합니다. LBaaS 드라이버를 사용하면 BIG-IP 인스턴스가 OpenStack 기반 클라우드 내에서 부하 분산 서비스 공급자 역할을 할 수 있습니다.

F5 LBaaS 드라이버는 실제로 두 개의 개별 구성 요소로 이루어져 있습니다:

  • Neutron API 서비스가 실행되는 서버에 설치되는 F5 LBaaS 플러그인
  • 에이전트 프로세스를 실행할 호스트에 설치되는 F5 LBaaS 에이전트 프로세스(드라이버 포함)입니다. 각 장치 서비스 그룹(클러스터의 BIG-IP 장치 모음)에는 별도의 에이전트 프로세스가 필요합니다.

LBaaS 드라이버는 테넌트가 수행한 LBaaS API 호출의 결과로 작업을 수신하고, 이를 F5 iControl® API 호출로 변환하여 BIG-IP 디바이스 또는 가상 에디션에서 구성 객체를 생성하거나 업데이트합니다. 테넌트가 격리된 테넌트 네트워크와 네트워크 오버레이 터널 또는 VLAN을 사용하는 경우, LBaaS 드라이버를 통해 단일 BIG-IP 인스턴스 또는 고가용성(HA) 구성에서 여러 테넌트에 서비스를 제공할 수 있습니다. F5 LBaaS 플러그인은 BIG-IP 인스턴스와 Nova에 필요한 API 호출을 생성하여 테넌트 트래픽이 공유 BIG-IP 인스턴스의 테넌트 격리 리스너 객체(BIG-IP 용어로 VIP)로 라우팅되도록 합니다.

테넌트 격리

멀티 테넌트 환경에서 Nova의 핵심 역할 중 하나는 테넌트가 서로 격리되도록 하는 것입니다. BIG-IP LBaaS 구성 요소는 여러 BIG-IP 멀티 테넌시 기능을 사용하여 테넌트 트래픽을 분리합니다.

이러한 멀티테넌시 기능이 언제 어떻게 사용되는지 자세히 알아보려면 F5 OpenStack LBaaS 드라이버 및 에이전트 추가 정보를 참조하세요.

LBaaS는 OpenStack 내에 부하 분산 서비스를 배포할 수 있는 간단한 API 기반 시스템을 제공하여 다수의 클라이언트에 기본적인 부하 분산 기능을 제공합니다. 하지만 이 API는 포괄적인 ADC(Application Delivery Controller) 기능 중 일부만 제공합니다. 이 표에서는 프로토콜 지원, 추가 서비스, 상태 모니터와 같은 몇 가지 주요 애플리케이션 전송 속성을 기준으로 LBaaS와 기본 BIG-IP 서비스를 비교합니다.

완전한 기능을 갖춘 애플리케이션 계층 프록시의 고급 기능이 필요한 경우, OpenStack Heat 오케스트레이션 서비스와 관련 템플릿을 사용하여 F5 애플리케이션 딜리버리 서비스를 배포하면 간단한 자동 서비스 생성과 보다 복잡한 서비스 구성을 결합할 수 있습니다.

Heat 오케스트레이션 서비스 및 템플릿

OpenStack Heat는 템플릿을 기반으로 실행 중인 애플리케이션을 생성하는 오케스트레이션 서비스입니다. Heat 템플릿은 하나 이상의 텍스트 파일에 인프라를 기술하며, Heat 서비스는 필요한 구성 요소를 생성하기 위해 적절한 API 호출을 실행합니다. 사용자 지정 플러그인을 사용하면 Heat 서비스를 핵심 모듈 이상으로 확장할 수 있습니다.

The F5 Heat 플러그인을 사용하면 Heat 템플릿을 통해 Heat 서비스가 실행되는 서버에서 네트워크를 통해 연결할 수 있는 모든 BIG-IP 장치 또는 가상 에디션에 고급 애플리케이션 전송 구성을 생성할 수 있습니다. 이 연결은 Heat 플러그인에서 구성되지 않으므로 BIG-IP 인스턴스와 테넌트 인스턴스 간의 연결 및 라우팅도 필요합니다.

Heat 템플릿은 사람이 읽기 쉽고 다루기 편하도록 설계된 간단한 마크업 언어인 YAML을 사용합니다. Heat 템플릿은 선언형이므로 원하는 인프라 구성 요소를 정의하기만 하면 기본 공급자가 정의된 구성을 생성합니다.

Heat 템플릿을 F5 iApps® 템플릿 시스템과 함께 사용하면 더욱 고급화된 애플리케이션 전송 시나리오를 구현할 수 있습니다. iApps 템플릿은 필요한 템플릿과 인스턴스별 값을 전달하기만 하면 애플리케이션 전송 구성을 반복해서 생성할 수 있도록 지원합니다. 웹 애플리케이션 방화벽 서비스, 애플리케이션 가속, 고급 부하 분산 알고리즘 등의 고급 기능을 사용하는 복잡한 전송 구성도 간단한 API 호출로 구현할 수 있습니다.

Heat 템플릿은 개별 테넌트 네트워크 환경(“클라우드상”) 내의 BIG-IP 가상 에디션 인스턴스뿐만 아니라 기반 물리적 네트워크에 배포된 BIG-IP 어플라이언스에서도 작동합니다. BIG-IP 디바이스는 테넌트 내의 다른 컴퓨팅 노드와 동일하게 취급되므로 Neutron 네트워킹 API 호출에 참여할 필요가 없습니다.

그림 5: BIG-IP 어플라이언스를 사용한 클라우드 배포
그림 6: BIG-IP 가상 에디션을 사용한 오버더클라우드 배포

F5 Heat 플러그인은 F5 Github 리포지토리에서 제공됩니다. 이 리포지토리에는 Heat 엔진을 실행하는 서버에 설치되는 Heat 플러그인과 샘플 Heat 템플릿이 모두 포함되어 있습니다.

유연한 플랫폼 옵션

F5 애플리케이션 딜리버리 서비스는 다양한 플랫폼에서 제공되며, 모두 동일한 핵심 운영 체제와 F5 마이크로커널에서 실행되므로 동일한 애플리케이션 딜리버리 기능을 제공합니다.

F5 어플라이언스 및 F5 VIPRION® 섀시

F5 하드웨어 플랫폼은 다수의 클라이언트 또는 테넌트를 지원하거나 높은 처리량이 필요한 환경에 탁월한 성능과 대규모 확장성을 제공합니다. 단일 HA 페어로 수백 개의 테넌트와 수백만 개의 클라이언트를 지원할 수 있습니다. F5 하드웨어 장치는 연결 속도에 대한 서비스 수준 계약(SLA)을 보장하며, SSL 및 TCP 처리 전용 하드웨어를 사용하여 기반 컴퓨팅 환경의 부하를 크게 줄여 줍니다. 네트워크 보안 서비스와 분산 서비스 거부(DDoS) 공격 완화가 필요한 경우 F5 하드웨어 플랫폼은 탁월한 성능과 높은 수준의 보호 기능을 제공합니다. 서로 중첩되는 여러 주소 공간과 네트워크 오버레이 프로토콜을 지원하므로 대부분의 멀티 테넌트 환경에서 하드웨어 장치를 사용할 수 있습니다.

F5 BIG-IP 가상 에디션

F5 BIG-IP 가상 에디션은 대부분의 하이퍼바이저(KVM 포함)에서 사용할 수 있으며, Amazon AWS 및 Microsoft Azure와 같은 퍼블릭 클라우드 서비스형 인프라(IaaS) 공급자에서도 사용할 수 있습니다. BIG-IP 가상 에디션(VE)은 랩 에디션부터 프로덕션용 버전까지 다양한 용량으로 제공되며, 25Mb~10Gb의 처리량 범위에서 사용량 증가에 따라 업그레이드할 수 있습니다. 볼륨 라이선스와 유연한 라이선스 풀을 통해 테스트 및 개발 환경에서 BIG-IP 인스턴스의 수명 주기를 동적으로 관리할 수 있습니다. 퍼블릭 클라우드 환경에서는 사용량 기반 요금제도 이용할 수 있습니다. BIG-IP 가상 에디션은 하드웨어 플랫폼과 동일한 애플리케이션 전송 서비스를 제공하지만, 어플라이언스의 특수 하드웨어와 확장성은 제공하지 않습니다.

BIG-IP 가상 에디션은 테넌트 네트워크 내에 완전히 포함될 수 있습니다. OpenStack에서는 단순히 또 하나의 컴퓨팅 인스턴스로 인식되며, Heat 템플릿을 통해 구성하거나 LBaaS용 공급자로 사용할 수 있습니다.

1자세한 내용은 F5 및 OpenStack 통합 가이드를 참조하십시오.

F5 LBaaS 플러그인은 여러 F5 에이전트 및 드라이버 인스턴스를 수용할 수 있으므로, 동일한 LBaaS 구성 내에서 하드웨어 장치와 BIG-IP 가상 에디션을 함께 사용할 수 있습니다.

모든 아키텍처 결정이 그렇듯이, 올바른 선택은 솔루션의 개별 요구 사항에 가장 적합한 것입니다. BIG-IP 하드웨어 또는 가상 에디션을 사용하여 확장 가능한 고성능 솔루션을 구축할 수 있습니다. 전반적인 확장성 및 서비스 요구 사항을 바탕으로 인프라 아키텍트는 하드웨어, 소프트웨어 또는 이 둘의 조합 중에서 적합한 방향을 결정해야 합니다. 단순히 서비스를 프로비저닝하려는 소비자나 테넌트에게는 제공 플랫폼 자체보다 LBaaS와 Heat 중 무엇을 선택할지가 더 중요합니다.

고가용성

고가용성은 미션 크리티컬 네트워크 및 애플리케이션 스택의 핵심 요소이며, 예상대로 BIG-IP 플랫폼은 강력한 HA 아키텍처를 갖추고 있습니다. BIG-IP 장치와 가상 에디션은 독립 실행형 장치(예: 테스트 및 개발 환경), 고가용성 쌍 또는 최대 4개 장치로 구성된 N-way 활성 장치 그룹으로 배포할 수 있습니다. 이러한 모든 배포 유형은 OpenStack 플랫폼에서 지원됩니다.

확장성

LBaaS 또는 테넌트 BIG-IP 리소스에 용량을 추가할 수 있으면 관리자나 테넌트가 애플리케이션 처리량 또는 테넌트 수 증가에 대응할 수 있습니다. 서비스 중단 없이 수직 또는 수평으로 확장할 수 있는 기능은 민첩하고 확장 가능한 클라우드를 구축하는 데 필수적입니다.

BIG-IP 플랫폼은 수직 및 수평 확장이 모두 가능합니다. 어플라이언스와 가상 에디션은 라이선스 업그레이드를 통해 수직 확장할 수 있으며, VIPRION 섀시는 하드웨어 블레이드를 추가하여 수직 확장할 수 있습니다. BIG-IP LBaaS 플러그인은 여러 에이전트와 드라이버(각각 단일 BIG-IP 인스턴스 또는 클러스터를 관리함)를 관리하여 수평 확장을 지원합니다. 여러 에이전트를 사용하는 경우 F5 LBaaS 플러그인은 기본적으로 특정 테넌트의 모든 LBaaS 로드 밸런서 객체가 하나의 BIG-IP 장치(또는 클러스터)에 할당된 상태로 유지되도록 합니다.

테넌트 내에서 BIP-IP VE 인스턴스를 사용하는 경우, 라이선스를 통해 인스턴스의 성능을 확장하거나 새로운 워크로드를 처리할 인스턴스를 추가할 수 있습니다.

결론

OpenStack 배포 환경에서 핵심 프로덕션 애플리케이션을 호스팅하는 사례가 늘어남에 따라, OpenStack 내에서 강력한 고품질 애플리케이션 딜리버리 서비스의 필요성도 커지고 있습니다. F5 애플리케이션 딜리버리 서비스는 이러한 핵심 애플리케이션에 필요한 용량, 보안 및 고급 기능을 제공하는 동시에 OpenStack 기반 클라우드가 제공하는 민첩성과 낮은 운영 오버헤드를 지원합니다.