2020.05.27

IDG 블로그 | 현실로 확인된 인트라 클라우드 지연과 대처법

David Linthicum | InfoWorld
클라우드 컴퓨팅 세상의 잘 알려지지 않은 아킬레스건이 하나 있는데, 바로 클라우드 내의 지연이 퍼블릭 클라우드 기반 애플리케이션에서 엄청난 악영향을 미친다는 것이다.

클라우드 간 지연(Inter-cloud Latency)은 퍼블릭 클라우드 간에 정보를 주고받는 과정에서 생기는 지연을 의미한다. 붐비는 개방형 인터넷을 이용하는 원격 클라이언트나 애플리케이션이 AWS나 애저 같은 클라우드 서비스 간에 커뮤니케이션을 한다고 생각하면 된다.
 
ⓒ Getty Images Bank

일반적인 가정은 애플리케이션과 애플리케이션, 애플리케이션과 데이터 스토리지 간의 커뮤니케이션은 동일한 클라우드 서비스 내에서는 지연이 거의 없다는 것이다. 어쨌든 같은 클라우드 플랫폼 상에 있고, 시스템 구성 요소 간에는 거대한 데이터 대역폭이 내장되어 있을 것이기 때문이다. 퍼블릭 클라우드 플랫폼 상의 인트라 클라우드 솔루션은 지연 문제가 생겨서는 안된다.

대체로 사실이지만, 언제나 그런 것은 아니다. 필자는 대기업 환경에서 인트라 클라우드 지연(Intra-cloud Latency)이 클라우드 네이티브 애플리케이션의 성능을 떨어뜨리는 사례를 많이 본다. 게다가 이런 지연 문제에 맞닥뜨린 기업은 이 문제를 해결할 지식이나 툴이 없다.

클라우드 간 지연은 쉽게 해결할 수 있다. 그저 양쪽을 연결하는 대역폭을 늘려주면 된다. 퍼블릭 클라우드 서비스 업체도 이런 지연 문제를 해결을 위해 추가 회선을 판매하는 것을 마다할 이유가 없다.

하지만 인트라 클라우드 지연은 진단과 해법이 그리 간단하지 않다. 다음과 같은 몇몇 핵심 징후를 살펴봐야 한다.
 
  • 엉성한 애플리케이션 설계는 애플리케이션과 데이터 간의 너무 ‘수다스러운’ 커뮤니케이션을 낳는다. 이런 수다가 내부 대역폭을 장악하고 성능 저하를 야기한다.
  • 퍼블릭 클라우드의 내부 문제, 예를 들면, 특정 지역 데이터센터 간의 대역폭이 좁은 것 등이 원인이 될 수 있다. 이 때문에 중국과 호주 간에는 아무런 지연이 없으면서 지역적으로는 더 가까운 호주와 뉴질랜드 간에는 엄청난 지연이 발생할 수도 있다.
  • 클라우드 기반 애플리케이션의 구성요소 자체가 문제일 수도 있다. 예를 들어, 데이터베이스가 요청 애플리케이션에 보내줘야 할 대용량 결과를 전송하지 못하는 경우다. 이런 문제는 보통 캐시를 제대로 튜닝하지 않는 등 데이터베이스 자체의 한계 때문으로, 네트워크의 문제가 아니다.

그렇다면, 이런 인트라 클라우드 지연을 어떻게 방지해야 할까?

최선의 방어책은 테스트하고, 테스트하고, 조금 더 테스트하는 것이다. 배치 후 실제로 사용하게 될 환경 구성을 그대로 사용하는지 확실히 해야 한다. 프로덕션 환경은 애플리케이션과 데이터가 전 세계에 흩어지게 된다면, 같은 지역에서 테스트하는 것은 큰 도움이 되지 않는다. 비용이 좀 더 들더라도 이들 테스트를 데브옵스 프로세스와 툴체인으로 진행해 자동화하고, 그래서 지속적으로 이루어질 수 있도록 하기를 권장한다.

인트라 클라우드 지연은 매우 까다로운 문제이다. 논리적으로는 존재하지 않는 문제이기 때문에 더욱 해결하기 어렵다. 하지만 필자는 이런 문제를 직접 목격했으며, 클라우드 아키텍트라면 생각해 봐야 할 또 하나의 문제이다. editor@itworld.co.kr


2020.05.27

IDG 블로그 | 현실로 확인된 인트라 클라우드 지연과 대처법

David Linthicum | InfoWorld
클라우드 컴퓨팅 세상의 잘 알려지지 않은 아킬레스건이 하나 있는데, 바로 클라우드 내의 지연이 퍼블릭 클라우드 기반 애플리케이션에서 엄청난 악영향을 미친다는 것이다.

클라우드 간 지연(Inter-cloud Latency)은 퍼블릭 클라우드 간에 정보를 주고받는 과정에서 생기는 지연을 의미한다. 붐비는 개방형 인터넷을 이용하는 원격 클라이언트나 애플리케이션이 AWS나 애저 같은 클라우드 서비스 간에 커뮤니케이션을 한다고 생각하면 된다.
 
ⓒ Getty Images Bank

일반적인 가정은 애플리케이션과 애플리케이션, 애플리케이션과 데이터 스토리지 간의 커뮤니케이션은 동일한 클라우드 서비스 내에서는 지연이 거의 없다는 것이다. 어쨌든 같은 클라우드 플랫폼 상에 있고, 시스템 구성 요소 간에는 거대한 데이터 대역폭이 내장되어 있을 것이기 때문이다. 퍼블릭 클라우드 플랫폼 상의 인트라 클라우드 솔루션은 지연 문제가 생겨서는 안된다.

대체로 사실이지만, 언제나 그런 것은 아니다. 필자는 대기업 환경에서 인트라 클라우드 지연(Intra-cloud Latency)이 클라우드 네이티브 애플리케이션의 성능을 떨어뜨리는 사례를 많이 본다. 게다가 이런 지연 문제에 맞닥뜨린 기업은 이 문제를 해결할 지식이나 툴이 없다.

클라우드 간 지연은 쉽게 해결할 수 있다. 그저 양쪽을 연결하는 대역폭을 늘려주면 된다. 퍼블릭 클라우드 서비스 업체도 이런 지연 문제를 해결을 위해 추가 회선을 판매하는 것을 마다할 이유가 없다.

하지만 인트라 클라우드 지연은 진단과 해법이 그리 간단하지 않다. 다음과 같은 몇몇 핵심 징후를 살펴봐야 한다.
 
  • 엉성한 애플리케이션 설계는 애플리케이션과 데이터 간의 너무 ‘수다스러운’ 커뮤니케이션을 낳는다. 이런 수다가 내부 대역폭을 장악하고 성능 저하를 야기한다.
  • 퍼블릭 클라우드의 내부 문제, 예를 들면, 특정 지역 데이터센터 간의 대역폭이 좁은 것 등이 원인이 될 수 있다. 이 때문에 중국과 호주 간에는 아무런 지연이 없으면서 지역적으로는 더 가까운 호주와 뉴질랜드 간에는 엄청난 지연이 발생할 수도 있다.
  • 클라우드 기반 애플리케이션의 구성요소 자체가 문제일 수도 있다. 예를 들어, 데이터베이스가 요청 애플리케이션에 보내줘야 할 대용량 결과를 전송하지 못하는 경우다. 이런 문제는 보통 캐시를 제대로 튜닝하지 않는 등 데이터베이스 자체의 한계 때문으로, 네트워크의 문제가 아니다.

그렇다면, 이런 인트라 클라우드 지연을 어떻게 방지해야 할까?

최선의 방어책은 테스트하고, 테스트하고, 조금 더 테스트하는 것이다. 배치 후 실제로 사용하게 될 환경 구성을 그대로 사용하는지 확실히 해야 한다. 프로덕션 환경은 애플리케이션과 데이터가 전 세계에 흩어지게 된다면, 같은 지역에서 테스트하는 것은 큰 도움이 되지 않는다. 비용이 좀 더 들더라도 이들 테스트를 데브옵스 프로세스와 툴체인으로 진행해 자동화하고, 그래서 지속적으로 이루어질 수 있도록 하기를 권장한다.

인트라 클라우드 지연은 매우 까다로운 문제이다. 논리적으로는 존재하지 않는 문제이기 때문에 더욱 해결하기 어렵다. 하지만 필자는 이런 문제를 직접 목격했으며, 클라우드 아키텍트라면 생각해 봐야 할 또 하나의 문제이다. editor@itworld.co.kr


X