블로그

5가지 멀티 클라우드 배포 과제(및 해결 방법)

F5 썸네일
F5
2020년 11월 19일 게시

요즘은 멀티 클라우드 아키텍처를 칭찬하는 기사를 찾지 않고는 기술 블로그를 읽기가 힘듭니다. 그럴 만한 이유가 있습니다. 멀티 클라우드는 비용 절감부터 안정성 향상에 이르기까지 다양한 이점을 제공합니다.

하지만 멀티 클라우드 전략은 몇 가지 과제를 안겨주기도 하는데, 특히 애플리케이션 배포와 관련된 과제가 그렇습니다. 멀티 클라우드 열풍에 뛰어들기 전에 멀티 클라우드 아키텍처가 배포 전략에 어떤 영향을 미칠지 평가하고 해당 문제점을 해결할 준비가 되었는지 확인하는 것이 중요합니다.

이 문서에서는 멀티 클라우드 환경에서 흔히 발생하는 배포 과제와 이를 완화하기 위한 팁을 소개합니다.

도전 1: 공급

두 개 이상의 클라우드가 있는 경우 애플리케이션을 배포하기 전에 두 개 이상의 환경을 프로비저닝해야 합니다.

어느 정도 인프라 코드(IaC) 도구는 이 프로세스를 간소화하는 데 도움이 될 수 있습니다. 하나의 IaC 템플릿을 사용하여 동일한 방식으로 여러 클라우드를 프로비저닝할 수 있습니다.

하지만 IaC가 이런 과제를 해결하는 데 얼마나 많은 도움을 줄 수 있는지에는 한계가 있습니다. 특정 클라우드 공급업체가 제공하는 IaC 도구를 사용하는 경우 다른 클라우드와의 호환성이 거의 없거나 전혀 없을 수 있습니다. 따라서 각 클라우드에 대해 다른 IaC 도구를 사용해야 할 수 있으며, 이는 부분적으로 IaC의 목적을 저해합니다. 모든 클라우드에서 작동할 수 있는 IaC 도구가 있더라도 각 클라우드에 대해 정확히 동일한 템플릿을 사용할 수 없기 때문에 구성을 수동으로 조정해야 할 가능성이 있습니다.

IaC가 멀티 클라우드 프로비저닝 과제를 해결할 수 없는 상황에서는 기본 클라우드에서 워크로드를 완전히 추상화하는 솔루션을 사용하는 것이 더 나은 방법입니다. 이렇게 하면 각 클라우드를 별도로 프로비저닝하는 것에 대해 걱정할 필요가 없습니다.

도전 2: 애플리케이션 배포

프로비저닝과 마찬가지로 앱을 실제로 배포하는 프로세스는 여러 클라우드에 인스턴스를 배포하는 경우 복잡해질 수 있습니다. 각 클라우드에는 서로 다른 배포 프로세스가 필요합니다.

사용하는 각 클라우드에 자동으로 애플리케이션 인스턴스를 배포하려면 타사 릴리스 자동화 도구를 사용해 보세요. 이렇게 하면 프로세스가 간소화되지만 IaC 툴링의 경우와 마찬가지로 각 클라우드에 배포하는 데 정확히 동일한 구성을 사용할 수 없으므로 일부 수동 변경이 필요할 수 있습니다.

여기서도 클라우드에서 워크로드를 호스팅하는 데 필요한 워크로드를 추상화하고 여러 클라우드에 걸쳐 완벽하게 일관된 배포 프로세스를 제공하는 솔루션은 다중 클라우드 아키텍처의 배포 과제를 완화하는 데 있어 릴리스 자동화 도구를 사용하는 것보다 더 나아갑니다.

도전 3: 부하 분산

여러 클라우드에서 여러 애플리케이션 인스턴스를 호스팅하는 경우 각 인스턴스가 이상적인 양의 트래픽을 처리하는지 어떻게 확인할 수 있나요? 한 클라우드가 유휴 상태인 동안 다른 클라우드에 너무 많은 트래픽이 유도되는 것을 어떻게 방지할 수 있나요? 인스턴스를 추가하거나 제거해야 하는 시점을 어떻게 알 수 있나요?

이것들은 중요한 질문들입니다. 멀티 클라우드 아키텍처에서 부하를 적절하게 분산하지 못하면 성능 문제가 발생하고 비용이 낭비될 수 있습니다. 이는 멀티 클라우드 아키텍처가 제공해야 하는 것과 정반대입니다.

안타깝게도 멀티 클라우드 환경에서는 이러한 질문에 답하기가 매우 어렵습니다. 클라우드 공급업체 자체가 다른 공급업체의 클라우드와 호환되는 로드 밸런싱 솔루션을 제공하지 않기 때문에 각 클라우드를 별도로 신중하게 모니터링하여 다양한 클라우드와 애플리케이션 인스턴스 간의 트래픽을 어떻게 분산할 것인지 결정해야 합니다.

여러 클라우드에 배포할 수 있는 공통 네트워킹 및 모니터링 플랫폼과 부하를 자동으로 연결하고 분산하는 애플리케이션 전송 네트워크를 사용하면 이러한 과제를 피하고 멀티 클라우드 전략이 제공해야 할 이점을 실제로 누릴 수 있습니다.

도전 4: 출구

클라우드 제공업체는 탐욕스럽습니다. 그들은 고객의 작업 부하와 데이터가 영원히 클라우드 내부에 보관되기를 원합니다. 데이터를 옮기는 경우, 즉 데이터 유출을 수행하는 경우 상당한 수수료를 부과합니다.

이는 데이터를 한 클라우드에서 다른 클라우드로 자주 이동해야 하는 멀티 클라우드 아키텍처의 경우, 이탈 요금으로 인해 클라우드 컴퓨팅 비용이 상당히 증가할 수 있음을 의미합니다.

기본적으로 여러 클라우드 간에 데이터가 자주 이동할 필요가 없도록 멀티 클라우드 아키텍처를 설계하면 이러한 위험을 완화할 수 있습니다. 예를 들어, 애플리케이션은 한 클라우드에 있지만 수집해야 하는 데이터는 다른 클라우드에 호스팅되는 상황은 피하세요. 그렇게 되면 클라우드 간 데이터 이동이 많이 필요하기 때문입니다.

또 다른 유용한 전략은 자주 사용되는 데이터 중 일부를 저장하는 애플리케이션 전송 네트워크를 사용하는 것입니다. 애플리케이션 전송 네트워크는 다양한 보안 및 성능상의 이점을 제공하는 것 외에도, 한 클라우드에 있는 애플리케이션이 다른 클라우드로 데이터를 이동해야 하는 빈도를 줄일 수 있습니다. 대신, 애플리케이션 전송 네트워크 내의 데이터 저장소를 사용할 수 있습니다.

도전 5: 모니터링

단일 클라우드에 대한 가시성을 유지하는 것만으로도 충분히 어려운 일입니다. 여러 개의 클라우드가 혼합되어 있는 경우, 실행 중인 모든 서비스와 구성을 모니터링하는 것은 정말 엄청난 작업이 됩니다.

멀티 클라우드 환경을 지원하도록 설계된 APM(애플리케이션 성능 모니터링) 도구는 이 작업에 다소 도움이 될 수 있습니다. 하지만 그것은 당신을 그 정도까지만 데려갈 것입니다. 애플리케이션 중 하나에 문제가 발생하는 것처럼 보이면 경고를 보내지만, 어떤 클라우드가 문제를 일으키는지 파악한 다음 영향을 받는 각 클라우드와 관련된 툴링을 사용하여 문제를 해결하는 것은 사용자의 몫입니다.

또는 기본 클라우드에서 작업 부하를 추상화하여 하나의 "논리적 클라우드"와 하나의 배포 도구 세트만 모니터링할 수 있도록 고려하세요. 이러한 접근 방식을 사용하면 애플리케이션과 인프라에 대한 가시성을 유지하기 위해 처리해야 하는 움직이는 부분의 수가 줄어듭니다.

결론

멀티 클라우드 아키텍처에서 애플리케이션 배포를 관리하는 것은 본질적으로 어렵습니다. 다양한 유형의 자동화 도구가 프로비저닝, 배포, 모니터링과 같은 작업을 간소화하는 데 도움이 될 수 있지만 수동 작업의 필요성을 완전히 없애지는 못합니다.

다양한 도구를 사용하여 멀티클라우드 배포 과제를 해결하려고 하는 대신, 멀티클라우드 아키텍처 자체를 설계하는 방식을 변경하는 것이 더 나은 방법입니다. VoltMeshVoltConsole 과 같은 솔루션을 사용하면 일관되고 중앙화된 방식으로 여러 클라우드에 애플리케이션을 배포하고 연결할 수 있으며, Volterra의 글로벌 애플리케이션 전송 네트워크를 활용하여 워크로드 성능과 보안을 최적화할 수도 있습니다.